# HG changeset patch # User cat@eee # Date 1265897302 18000 # Node ID de23e595bb5ccd3a138e2264012773c0199ee13b # Parent 8a76f597d2f98ee9e65c0b8f09d6f90be074bb28 experiments with line flattening diff -r 8a76f597d2f9 -r de23e595bb5c cmd2.py --- a/cmd2.py Wed Feb 10 19:44:27 2010 -0500 +++ b/cmd2.py Thu Feb 11 09:08:22 2010 -0500 @@ -425,6 +425,10 @@ self.shortcuts = sorted(self.shortcuts.items(), reverse=True) self.keywords = self.reserved_words + [fname[3:] for fname in dir(self) if fname.startswith('do_')] + import pdb; pdb.set_trace() + def linelist(arg): + result = [] + self.settable = (l.strip() for l in self.settable if l.strip()) self.settable = dict(ljust(l.split(None,1), 2, '') for l in self.settable) self.doubleDashComment = pyparsing.NotAny(pyparsing.Or(options_defined)) + pyparsing.Literal('--') + pyparsing.restOfLine diff -r 8a76f597d2f9 -r de23e595bb5c flatten_lines.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flatten_lines.py Thu Feb 11 09:08:22 2010 -0500 @@ -0,0 +1,15 @@ +import doctest +def flatten(texts): + ''' + >>> flatten([['cow', 'cat'], '', 'fish', ['bird']]) + ['cow', 'cat', 'fish', 'bird'] + ''' + result = [] + if isinstance(texts, basestring): + result.extend(texts.splitlines()) + else: + for text in texts: + result.extend(flatten(text)) + result = [r.strip() for r in result if r.strip()] + return result +doctest.testmod()