Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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}')
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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()