OLD | NEW |
(Empty) | |
| 1 import atexit |
| 2 import sys |
| 3 |
| 4 from .ansitowin32 import AnsiToWin32 |
| 5 |
| 6 |
| 7 orig_stdout = sys.stdout |
| 8 orig_stderr = sys.stderr |
| 9 |
| 10 wrapped_stdout = sys.stdout |
| 11 wrapped_stderr = sys.stderr |
| 12 |
| 13 atexit_done = False |
| 14 |
| 15 |
| 16 def reset_all(): |
| 17 AnsiToWin32(orig_stdout).reset_all() |
| 18 |
| 19 |
| 20 def init(autoreset=False, convert=None, strip=None, wrap=True): |
| 21 |
| 22 if not wrap and any([autoreset, convert, strip]): |
| 23 raise ValueError('wrap=False conflicts with any other arg=True') |
| 24 |
| 25 global wrapped_stdout, wrapped_stderr |
| 26 sys.stdout = wrapped_stdout = \ |
| 27 wrap_stream(orig_stdout, convert, strip, autoreset, wrap) |
| 28 sys.stderr = wrapped_stderr = \ |
| 29 wrap_stream(orig_stderr, convert, strip, autoreset, wrap) |
| 30 |
| 31 global atexit_done |
| 32 if not atexit_done: |
| 33 atexit.register(reset_all) |
| 34 atexit_done = True |
| 35 |
| 36 |
| 37 def deinit(): |
| 38 sys.stdout = orig_stdout |
| 39 sys.stderr = orig_stderr |
| 40 |
| 41 |
| 42 def reinit(): |
| 43 sys.stdout = wrapped_stdout |
| 44 sys.stderr = wrapped_stdout |
| 45 |
| 46 |
| 47 def wrap_stream(stream, convert, strip, autoreset, wrap): |
| 48 if wrap: |
| 49 wrapper = AnsiToWin32(stream, |
| 50 convert=convert, strip=strip, autoreset=autoreset) |
| 51 if wrapper.should_wrap(): |
| 52 stream = wrapper.stream |
| 53 return stream |
| 54 |
| 55 |
OLD | NEW |