class Logger:
- """A logging object"""
def __init__(self, file):
self.logger = logging.getLogger('myapp')
def __init__(self, file):
self.first_row = 7
- self.original_col = 0
- self.new_col = 3
+ self.original_col = 1
+ self.new_col = 2
self.book = xlrd.open_workbook(file)
self.sheet = self.book.sheet_by_index(0)
self.original_refs = self.original_refs()
class CremItemFile:
- def __init__(self, media):
+ def __init__(self):
+ self.media = ''
+
+ def set_media(self, media):
self.media = media
def is_wav(self):
try:
- self.audio_file = audiolab.sndfile(self.media, 'read')
- if self.audio_file.get_nframes() and self.audio_file.get_nframes() != 0:
+ audio_file = audiolab.Sndfile(self.media, 'r')
+ if audio_file.get_nframes() and audio_file.get_nframes() != 0:
return True
except IOError:
return False
self.encoding = self.audio_file.get_encoding()
-
class CremCheck:
def __init__(self, root_dir, log_file):
def check(self):
for dir in self.dir_list:
collection = CremCollection(self.root_dir + dir)
- #self.logger.write(collection.dir, 'VERIFICATION')
+ self.logger.write(collection.dir, '***** VERIFICATION *****')
xls_list = collection.xls_list()
wav_list = collection.wav_list()
- # check collection dir name
if not check_name(COLLECTION_PATTERN, dir):
self.logger.write_error(collection.dir, 'Dossier mal nommé')
- break
-
- # check if XLS file exists
if len(xls_list) == 0:
self.logger.write_error(collection.dir, 'PAS de fichier XLS dans le dossier collection')
- break
elif len(xls_list) > 1:
self.logger.write_error(collection.dir, 'Plusieurs fichiers XLS dans le dossier collection')
- break
else:
xls = CremXLS(self.root_dir + os.sep + dir + os.sep + xls_list[0])
- # check if number of refs equals the number of WAV files
if len(wav_list) != len(xls.new_refs):
print len(wav_list)
print len(xls.new_refs)
self.logger.write_error(collection.dir, 'Le nombre de références du fichier XLS diffère du nombre de fichiers')
temp_list = []
+ item_file = CremItemFile()
for item in xls.new_refs:
- # check new items refs
if not check_name(ITEM_PATTERN, item):
self.logger.write_error(collection.dir, 'La référence ' + str(item) + ' est mal formattée')
if item[0:17] != collection.dir_name :
self.logger.write_error(collection.dir, 'La référence ' + str(item) + ' ne correspond pas à la collection')
- # check if WAV files exist
name_wav = item + '.wav'
- name_WAV = item + '.WAV'
- if not name_wav in wav_list or name_WAV in wav_list:
+ if not name_wav in wav_list:
self.logger.write_error(collection.dir, 'Le fichier ' + str(item) + '.wav n\'existe pas')
+ else:
+ item_file.set_media(collection.dir + os.sep + str(item))
+ #print collection.dir + str(item)
+ if not item_file.is_wav():
+ self.logger.write_error(collection.dir, 'Le fichier ' + str(item) + '.wav n\'est pas valide')
+ else:
+ self.logger.write(collection.dir, 'Le fichier ' + str(item) + '.wav est valide')
- # check unicity
if not item in temp_list:
temp_list.append(item)
else:
self.logger.write_error(collection.dir, 'La référence ' + str(item) + ' est multiple')
- #self.logger.write(collection.dir, 'FIN')
+ self.logger.write(collection.dir, '***** FIN *****')
def main():