Index: third_party/colorama/initialise.py |
diff --git a/third_party/colorama/initialise.py b/third_party/colorama/initialise.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e54f8a8d0035f9c4f4da9983f6e862e7d990094f |
--- /dev/null |
+++ b/third_party/colorama/initialise.py |
@@ -0,0 +1,55 @@ |
+import atexit |
+import sys |
+ |
+from .ansitowin32 import AnsiToWin32 |
+ |
+ |
+orig_stdout = sys.stdout |
+orig_stderr = sys.stderr |
+ |
+wrapped_stdout = sys.stdout |
+wrapped_stderr = sys.stderr |
+ |
+atexit_done = False |
+ |
+ |
+def reset_all(): |
+ AnsiToWin32(orig_stdout).reset_all() |
+ |
+ |
+def init(autoreset=False, convert=None, strip=None, wrap=True): |
+ |
+ if not wrap and any([autoreset, convert, strip]): |
+ raise ValueError('wrap=False conflicts with any other arg=True') |
+ |
+ global wrapped_stdout, wrapped_stderr |
+ sys.stdout = wrapped_stdout = \ |
+ wrap_stream(orig_stdout, convert, strip, autoreset, wrap) |
+ sys.stderr = wrapped_stderr = \ |
+ wrap_stream(orig_stderr, convert, strip, autoreset, wrap) |
+ |
+ global atexit_done |
+ if not atexit_done: |
+ atexit.register(reset_all) |
+ atexit_done = True |
+ |
+ |
+def deinit(): |
+ sys.stdout = orig_stdout |
+ sys.stderr = orig_stderr |
+ |
+ |
+def reinit(): |
+ sys.stdout = wrapped_stdout |
+ sys.stderr = wrapped_stdout |
+ |
+ |
+def wrap_stream(stream, convert, strip, autoreset, wrap): |
+ if wrap: |
+ wrapper = AnsiToWin32(stream, |
+ convert=convert, strip=strip, autoreset=autoreset) |
+ if wrapper.should_wrap(): |
+ stream = wrapper.stream |
+ return stream |
+ |
+ |