Exemple #1
0
 def testFilledExporter(self):
   """Export two FSTs."""
   exporter = export.Exporter(self._filename)
   exporter['FST1'] = pynini.accep('1234')
   exporter['FST2'] = pynini.accep('4321')
   exporter.close()
   stored_fsts = _read_fst_map(self._filename)
   self.assertLen(stored_fsts, 2)
   self.assertTrue(stored_fsts['FST1'])
   self.assertTrue(stored_fsts['FST2'])
Exemple #2
0
 def main(unused_argv):
     try:
         unused_argv.pop(0)
         if unused_argv:
             raise app.UsageError(
                 f'Unexpected command line arguments: {unused_argv}')
         exporter = export.Exporter(FLAGS.output)
         generator_main(exporter)
         exporter.close()
     except:
         FLAGS.stderrthreshold = 'fatal'
         raise
Exemple #3
0
def generator_main(file_name: str, graphs: Dict[str, pynini.FstLike]):
    """
    Exports graph as OpenFst finite state archive (FAR) file with given file name and rule name.

    Args:
        file_name: exported file name
        graphs: Mapping of a rule name and Pynini WFST graph to be exported
    """
    exporter = export.Exporter(file_name)
    for rule, graph in graphs.items():
        exporter[rule] = graph.optimize()
    exporter.close()
    print(f"Created {file_name}")
Exemple #4
0
def _generator_main(file_name: str, graph: pynini.FstLike, rule_name: str):
    """
    Exports graph as OpenFst finite state archive (FAR) file with given file name and rule name. 

    Args:
        file_name: exported file name
        graph: Pynini WFST graph to be exported
        rule_name: rule name for graph in created FAR file

    """
    exporter = export.Exporter(file_name)
    exporter[rule_name] = graph.optimize()
    exporter.close()
    print(f'Created {file_name}')
Exemple #5
0
 def testFilledExporterWithFarTypes(self):
   """Export two FSTs different far types."""
   for far_type in ['default',  'sttable', 'stlist']:
     # TODO(b/123775699): Currently pytype thinks `export.Exporter.__init__`'s
     # `far_type` arg expects Any here, but inside `__init__` itself, it
     # correctly expects the `Literal` type, `pynini.FarType`. This silences
     # what could have been an error: its labeling `far_type` as type `str`
     # though it is guaranteed to take values of type `pynini.FarType`.
     exporter = export.Exporter(self._filename, far_type=far_type)
     exporter['FSTA'] = pynini.accep('1234')
     exporter['FSTB'] = pynini.accep('4321')
     exporter.close()
     stored_fsts = _read_fst_map(self._filename)
     self.assertLen(stored_fsts, 2)
     self.assertTrue(stored_fsts['FSTA'])
     self.assertTrue(stored_fsts['FSTB'])
Exemple #6
0
 def main(unused_argv):
   try:
     unused_argv.pop(0)
     if unused_argv:
       raise app.UsageError(
           f'Unexpected command line arguments: {unused_argv}')
     target_file_pair = _get_target_file_map(FLAGS.outputs)
     if not target_file_pair:
       raise app.UsageError(
           '--outputs must specify at least one name=file pair.')
     exporter_map = {
         designator: export.Exporter(filename)
         for designator, filename in target_file_pair.items()
     }
     generator_main(exporter_map)
     for ex in exporter_map.values():
       ex.close()
   except:
     FLAGS.stderrthreshold = 'fatal'
     raise
Exemple #7
0
def _generator_main(file_name, graph, name):
    exporter = export.Exporter(file_name)
    exporter[name] = graph.optimize()
    exporter.close()
    print(f'Created {file_name}')
Exemple #8
0
 def testEmptyExporter(self):
   """Export an empty grammar."""
   exporter = export.Exporter(self._filename)
   exporter.close()
   self.assertTrue(os.path.isfile(self._filename))