diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2013-02-08 10:51:06 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2013-02-18 15:45:12 +0000 |
commit | dec7732a7b39896cb56b1cf639eee26e5f3cdef4 (patch) | |
tree | 61a53bf12d9e8cff69a14d0b814f362a34291a28 /morphlib | |
parent | 6f3cbfeed92ef3fabb91622eb58c6ffe5c63289b (diff) | |
download | morph-dec7732a7b39896cb56b1cf639eee26e5f3cdef4.tar.gz |
Allow forcing output format (useful for edit-morph script)
Diffstat (limited to 'morphlib')
-rw-r--r-- | morphlib/morph2.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/morphlib/morph2.py b/morphlib/morph2.py index 488b7d3b..a95312c6 100644 --- a/morphlib/morph2.py +++ b/morphlib/morph2.py @@ -234,7 +234,7 @@ class Morphology(object): result = live_dict[key] return result - def update_text(self, text, output_fd): + def update_text(self, text, output_fd, convert_to=None): '''Write out in-memory changes to loaded morphology text Similar in function to update_file(). @@ -242,11 +242,15 @@ class Morphology(object): ''' original_dict, dumper = self._load_morphology_dict(text) - output_dict = self._apply_changes(self._dict, original_dict) + if convert_to == 'json': # pragma: no cover + dumper = self._dump_json + elif convert_to == 'yaml': # pragma: no cover + dumper = morphlib.yamlparse.dump + output_dict = self._apply_changes(self._dict, original_dict) dumper(output_dict, output_fd) - def update_file(self, filename, output_fd=None): # pragma: no cover + def update_file(self, filename, output_fd=None, **kws): # pragma: no cover '''Write out in-memory changes to on-disk morphology file This function reads the original morphology text from 'filename', so @@ -258,4 +262,4 @@ class Morphology(object): text = f.read() with output_fd or morphlib.savefile.SaveFile(filename, 'w') as f: - self.update_text(text, f) + self.update_text(text, f, **kws) |