| |
| """ |
| utils/initialization |
| """ |
|
|
| import contextlib |
| import platform |
| import threading |
|
|
|
|
| def emojis(str=''): |
| |
| return str.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else str |
|
|
|
|
| class TryExcept(contextlib.ContextDecorator): |
| |
| def __init__(self, msg=''): |
| self.msg = msg |
|
|
| def __enter__(self): |
| pass |
|
|
| def __exit__(self, exc_type, value, traceback): |
| if value: |
| print(emojis(f"{self.msg}{': ' if self.msg else ''}{value}")) |
| return True |
|
|
|
|
| def threaded(func): |
| |
| def wrapper(*args, **kwargs): |
| thread = threading.Thread(target=func, args=args, kwargs=kwargs, daemon=True) |
| thread.start() |
| return thread |
|
|
| return wrapper |
|
|
|
|
| def notebook_init(verbose=True): |
| |
| print('Checking setup...') |
|
|
| import os |
| import shutil |
|
|
| from utils.general import check_font, check_requirements, is_colab |
| from utils.torch_utils import select_device |
|
|
| check_font() |
|
|
| import psutil |
| from IPython import display |
|
|
| if is_colab(): |
| shutil.rmtree('/content/sample_data', ignore_errors=True) |
|
|
| |
| if verbose: |
| gb = 1 << 30 |
| ram = psutil.virtual_memory().total |
| total, used, free = shutil.disk_usage("/") |
| display.clear_output() |
| s = f'({os.cpu_count()} CPUs, {ram / gb:.1f} GB RAM, {(total - free) / gb:.1f}/{total / gb:.1f} GB disk)' |
| else: |
| s = '' |
|
|
| select_device(newline=False) |
| print(emojis(f'Setup complete ✅ {s}')) |
| return display |
|
|