Esempio n. 1
0
    def parse(self):
        drills = []

        drill_data = []
        for i, line in enumerate(self.stream):
            if drill_data:
                if self.is_blank(line):
                    drill = SubstitutionDrill(self.config, drill_data)
                    drills.append(drill)
                    drill_data = []
                else:
                    word = line.strip()
                    drill_data.append(self.recordings(word))
            else:
                if not self.is_blank(line):
                    m = SENTENCE_RE.match(line)
                    if m:
                        self.pre = m.group('pre')
                        self.post = m.group('post')
                        word = m.group('word')
                        drill_data.append(self.recordings(word))
                    else:
                        raise ParseError("line %i: invalid sentence %s" %
                                         (i, line))

        if drill_data:
            drill = SubstitutionDrill(self.config, drill_data)
            drills.append(drill)

        return drills
    def setup(self):
        self.recdir, self.tmp = mkdtemp(), mkdtemp()
        config = SoundConfig(recdir=self.recdir, tmpdir=self.tmp)

        data = [(Recording(config, 'manges', 'manges'),
                 Recording(config, 'je_manges', 'je manges')),
                (Recording(config, 'dors',
                           'dors'), Recording(config, 'je_dors', 'je dors'))]
        self.drill = SubstitutionDrill(config, data)