Buckets:
ktongue/docker_container / .vscode-server /extensions /ms-python.python-2026.2.0-linux-arm64 /python_files /lib /jedilsp /jedi /debug.py
| import os | |
| import time | |
| from contextlib import contextmanager | |
| from typing import Callable, Optional | |
| _inited = False | |
| def _lazy_colorama_init(): | |
| """ | |
| Lazily init colorama if necessary, not to screw up stdout if debugging is | |
| not enabled. | |
| This version of the function does nothing. | |
| """ | |
| try: | |
| if os.name == 'nt': | |
| # Does not work on Windows, as pyreadline and colorama interfere | |
| raise ImportError | |
| else: | |
| # Use colorama for nicer console output. | |
| from colorama import Fore, init # type: ignore[import] | |
| from colorama import initialise | |
| def _lazy_colorama_init(): # noqa: F811 | |
| """ | |
| Lazily init colorama if necessary, not to screw up stdout is | |
| debug not enabled. | |
| This version of the function does init colorama. | |
| """ | |
| global _inited | |
| if not _inited: | |
| # pytest resets the stream at the end - causes troubles. Since | |
| # after every output the stream is reset automatically we don't | |
| # need this. | |
| initialise.atexit_done = True | |
| try: | |
| init(strip=False) | |
| except Exception: | |
| # Colorama fails with initializing under vim and is buggy in | |
| # version 0.3.6. | |
| pass | |
| _inited = True | |
| except ImportError: | |
| class Fore: # type: ignore[no-redef] | |
| RED = '' | |
| GREEN = '' | |
| YELLOW = '' | |
| MAGENTA = '' | |
| RESET = '' | |
| BLUE = '' | |
| NOTICE = object() | |
| WARNING = object() | |
| SPEED = object() | |
| enable_speed = False | |
| enable_warning = False | |
| enable_notice = False | |
| # callback, interface: level, str | |
| debug_function: Optional[Callable[[str, str], None]] = None | |
| _debug_indent = 0 | |
| _start_time = time.time() | |
| def reset_time(): | |
| global _start_time, _debug_indent | |
| _start_time = time.time() | |
| _debug_indent = 0 | |
| def increase_indent(func): | |
| """Decorator for makin """ | |
| def wrapper(*args, **kwargs): | |
| with increase_indent_cm(): | |
| return func(*args, **kwargs) | |
| return wrapper | |
| def increase_indent_cm(title=None, color='MAGENTA'): | |
| global _debug_indent | |
| if title: | |
| dbg('Start: ' + title, color=color) | |
| _debug_indent += 1 | |
| try: | |
| yield | |
| finally: | |
| _debug_indent -= 1 | |
| if title: | |
| dbg('End: ' + title, color=color) | |
| def dbg(message, *args, color='GREEN'): | |
| """ Looks at the stack, to see if a debug message should be printed. """ | |
| assert color | |
| if debug_function and enable_notice: | |
| i = ' ' * _debug_indent | |
| _lazy_colorama_init() | |
| debug_function(color, i + 'dbg: ' + message % tuple(repr(a) for a in args)) | |
| def warning(message, *args, format=True): | |
| if debug_function and enable_warning: | |
| i = ' ' * _debug_indent | |
| if format: | |
| message = message % tuple(repr(a) for a in args) | |
| debug_function('RED', i + 'warning: ' + message) | |
| def speed(name): | |
| if debug_function and enable_speed: | |
| now = time.time() | |
| i = ' ' * _debug_indent | |
| debug_function('YELLOW', i + 'speed: ' + '%s %s' % (name, now - _start_time)) | |
| def print_to_stdout(color, str_out): | |
| """ | |
| The default debug function that prints to standard out. | |
| :param str color: A string that is an attribute of ``colorama.Fore``. | |
| """ | |
| col = getattr(Fore, color) | |
| _lazy_colorama_init() | |
| print(col + str_out + Fore.RESET) | |
Xet Storage Details
- Size:
- 3.5 kB
- Xet hash:
- f23ac9915a5c27a6b8afd2cb1f6970b13602269bad7d2e70d2b9f0b62e30c1da
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.