summaryrefslogtreecommitdiff
path: root/morphlib
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2013-02-21 11:40:11 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2013-02-21 11:40:11 +0000
commita36d1414c114ac9c56ec2852ecc50a14f8add12c (patch)
tree14aac4258ca7f5ad20920bf7675186ad4bae2370 /morphlib
parent884a075316940f698ac129860f972d35e24afcfb (diff)
parent42829e9d9aee1592cbd5391cdb30ab24f43370d1 (diff)
downloadmorph-a36d1414c114ac9c56ec2852ecc50a14f8add12c.tar.gz
Merge branch 'samthursfield/edit-morph' of git://git.baserock.org/baserock/baserock/morph
This merge includes modifying edit-morph to use self.output.write instead of print for output.
Diffstat (limited to 'morphlib')
-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)