def validate(self): """Raises a ValueError if the submission is not valid""" validate_directory(self._submission, '2019', ['metadata.yaml', 'english', 'surprise'] + (['code'] if self._is_open_source else []), self._log) # detect if we have auxiliary 1 and 2 embeddings (because in this # case we must check they are described in metadata) do_aux1 = self._detect_auxiliary('auxiliary_embedding1') if do_aux1: self._log.info(' found auxiliary_embedding1') do_aux2 = self._detect_auxiliary('auxiliary_embedding2') if do_aux2: self._log.info(' found auxiliary_embedding2') if do_aux2 and not do_aux1: raise ValueError( 'found auxiliary_embedding2 but not auxiliary_embedding1') # check metadata.yaml file self._validate_metadata(do_aux1, do_aux2) # check 2019/code directory validate_code(os.path.join(self._submission, 'code'), '2019/code', self._is_open_source, self._log) # check the submission data self._validate_language('english', do_aux1, do_aux2) self._validate_language('surprise', do_aux1, do_aux2)
def _validate_track1_language(self, lang, duration): # ensure the expected files are here expected_files = self._get_track1_filelist(lang, duration) validate_directory( os.path.join(self._submission, 'track1', lang, duration), f'2017/track1/{lang}/{duration}', expected_files, self._log) # ensure each file is correctly formatted errors = parallelize(self._validate_track1_file, self._njobs, ((os.path.join(self._submission, 'track1', lang, duration, f), lang, duration) for f in expected_files)) if errors: log_errors(self._log, errors, f'2017/track1/{lang}/{duration}')
def _get_languages(self, track, suffix=''): all_languages = ['english', 'french', 'mandarin', 'LANG1', 'LANG2'] languages = validate_directory(os.path.join(self._submission, track), f'2017/{track}', [l + suffix for l in all_languages], self._log) languages = [l.replace(suffix, '') for l in languages] return languages
def validate(self): """Raises a ValueError if the submission is not valid""" existing = validate_directory( self._submission, '2017', ['metadata.yaml'] + (['code'] if self._is_open_source else []), self._log, ['track1', 'track2']) if 'track1' not in existing and 'track2' not in existing: raise ValueError('2017 submission must contain at least ' 'a track1 or track2 directory') # check metadata.yaml file self._validate_metadata() # check 2017/code directory validate_code(os.path.join(self._submission, 'code'), '2017/code', self._is_open_source, self._log) # check the submission data if 'track1' in existing: self._validate_track1() if 'track2' in existing: self._validate_track2()