mirror of
https://github.com/kennethreitz/clint.git
synced 2026-06-05 23:00:18 +00:00
list based makes much more sense
This commit is contained in:
+29
-12
@@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user