diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-10-06 22:46:33 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-10-06 22:46:33 +0300 |
commit | 3f19ba98354b19ec0d95f5053b020132bf69df71 (patch) | |
tree | 835b28a966a781029806f41fd6fafc7032f66924 | |
parent | f9495680d7e018d50f39f0e9096939299db65fcc (diff) | |
download | clab-3f19ba98354b19ec0d95f5053b020132bf69df71.tar.gz |
Show results of find with pretty multiline strings
-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']: |