diff options
-rwxr-xr-x | clab | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -33,7 +33,7 @@ class Entry(object): self._dict = parsed_yaml def as_yaml(self): - return yaml.safe_dump(self._dict, default_flow_style=False) + return yaml.dump(self._dict, default_flow_style=False) def get_single(self, key, default): names = self.get_subdict(key) @@ -103,6 +103,20 @@ class CommandLineAddressBook(cliapp.Application): metavar='DIR', default=[os.path.expanduser('~/.local/share/clab')]) + def setup(self): + # Configure yaml.dump (but not yaml.safe_dump) to print multiline + # strings prettier. + + def text_representer(dumper, data): + if '\n' in data: + return dumper.represent_scalar( + u'tag:yaml.org,2002:str', data, style='|') + return dumper.represent_scalar( + u'tag:yaml.org,2002:str', data, style='') + + yaml.add_representer(str, text_representer) + yaml.add_representer(unicode, text_representer) + def load_address_book(self): book = AddressBook() for database in self.settings['database']: |