list based makes much more sense

This commit is contained in:
Kenneth Reitz
2011-03-19 11:32:27 -04:00
parent da571bec88
commit acafeda63c
+29 -12
View File
@@ -15,37 +15,54 @@ STDERR = sys.stderr.write
class Puts(object):
"""All-knowing puts"""
shared = dict(indent_level=0, indent_str='')
shared = dict(indent_level=0, indent_strings=[])
def __init__(self, indent=0, quote='', indent_char=' '):
# self.shared = Borg()
self.indent = indent
self.indent_char = indent_char
self.indent_quote = quote
self.indent_str = ''.join((
str(self.indent_quote),
(self.indent_char * (self.indent - len(self.indent_quote))),
self.indent_string = ''.join((
str(quote),
(self.indent_char * (indent - len(self.indent_quote))),
))
self.shared['indent_level'] += indent
self.shared['indent_str'] += self.indent_str
# self.shared['indent_level'] += indent
if len(self.indent_string):
self.shared['indent_strings'].append(self.indent_string)
# print self.shared['indent_strings']
def __enter__(self):
return self
def __exit__(self, type, value, traceback):
self.shared['indent_level'] += (-1 * self.indent)
self.indent_quote = ''
self.shared['indent_str'] = \
self.shared['indent_str'].replace(self.indent_str, '')
# print 'exiting! %s' % len(self.shared['indent_strings'])
# self.shared['indent_level'] += (-1 * self.indent)
# self.shared['indent_level'] += (-1 * self.indent)
# self.shared['indent_str'] =''
# self.indent_quote = ''
# self.indent=0
# self.shared['indent_str'] = \
# self.shared['indent_str'].replace(self.indent_str, '')
# print len( self.shared['indent_str'])
self.shared['indent_strings'].pop()
# print len( self.shared['indent_str'])
# print len(self.indent_str)
# print len(self.shared['indent_str'])
# print self.shared['indent_level']
# print self.shared['indent_str']
def __call__(self, s, newline=True, stream=STDOUT):
# print self.shared['indent_level']
_str = ''.join((
self.shared['indent_str'],
''.join(self.shared['indent_strings']),
str(s),
'\n' if newline else ''
))
STDOUT(_str)
stream(_str)