summaryrefslogtreecommitdiff
path: root/morphlib/morph2.py
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2013-02-08 10:51:06 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2013-02-18 15:45:12 +0000
commitdec7732a7b39896cb56b1cf639eee26e5f3cdef4 (patch)
tree61a53bf12d9e8cff69a14d0b814f362a34291a28 /morphlib/morph2.py
parent6f3cbfeed92ef3fabb91622eb58c6ffe5c63289b (diff)
downloadmorph-dec7732a7b39896cb56b1cf639eee26e5f3cdef4.tar.gz
Allow forcing output format (useful for edit-morph script)
Diffstat (limited to 'morphlib/morph2.py')
-rw-r--r--morphlib/morph2.py12
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)