From 3f19ba98354b19ec0d95f5053b020132bf69df71 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 6 Oct 2015 22:46:33 +0300 Subject: Show results of find with pretty multiline strings --- clab | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/clab b/clab index df4ec52..18bc9c3 100755 --- a/clab +++ b/clab @@ -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']: -- cgit v1.2.1