indenting_writer.py 629 B

123456789101112131415161718192021222324252627
  1. import sys
  2. class IndentingWriter:
  3. def __init__(self, spaces=2, out=sys.stdout, initial=0):
  4. self.spaces = spaces
  5. self.out = out
  6. self.state = initial
  7. self.newline = True
  8. def indent(self):
  9. self.state += self.spaces
  10. def dedent(self):
  11. self.state -= self.spaces
  12. def writeln(self, s=""):
  13. if self.newline:
  14. self.out.write(' '*self.state)
  15. self.out.write(s + '\n')
  16. self.newline = True
  17. def write(self, s=""):
  18. if self.newline:
  19. self.out.write(' '*self.state)
  20. self.out.write(s)
  21. self.newline = False