- Notifications
You must be signed in to change notification settings - Fork1
HfstOutputStream
eaxelson edited this pageFeb 8, 2018 ·13 revisions
A stream for writing binary transducers.
An example:
res = ['foo:bar','0','0 - 0','"?":?','a* b+']ostr = hfst.HfstOutputStream(filename='testfile1.hfst')for re in res: ostr.write(hfst.regex(re)) ostr.flush()ostr.close()For more information on HFST transducer structure, seehere.
Open a stream for writing binary transducers.
kwargsArguments recognized are filename, hfst_format, type.filenameThe name of the file where transducers are written. If the file exists, it is overwritten. Iffilenameis not given, transducers are written to standard output.hfst_formatWhether transducers are written in hfst format (default is True) or as such in their backend format.typeThe type of the transducers that will be written to the stream. Default ishfst.get_default_fst_type().
ostr = hfst.HfstOutputStream() # a stream for writing default type transducers in hfst format to standard outputtransducer = hfst.regex('foo:bar::0.5')ostr.write(transducer)ostr.flush()ostr = hfst.HfstOutputStream(filename='transducer.sfst', hfst_format=False, type=hfst.ImplementationType.SFST_TYPE) # a stream for writing SFST_TYPE transducers in their back-end format to a filetransducer1 = hfst.regex('foo:bar')transducer1.convert(hfst.ImplementationType.SFST_TYPE) # if not set as the default typetransducer2 = hfst.regex('bar:baz')transducer2.convert(hfst.ImplementationType.SFST_TYPE) # if not set as the default typeostr.write(transducer1)ostr.write(transducer2)ostr.flush()ostr.close()Flush the stream.
Write one or moretransducers in binary format to the stream.
transducers: An HfstTransducer or an iterable object of several HfstTransducers.
All transducers that are written to the stream must have the same type as the stream, else a TransducerTypeMismatchException is thrown.
Throws:
Close the stream.If the stream points to standard output, nothing is done.