Spaces:
Running
Running
import logging | |
import sys | |
from types import ModuleType | |
from typing import Set | |
# log level (levels print what it says + all levels listed below it) | |
# DEBUG print full traces <-- lowest level + print tracing of every instruction | |
# INFO print compiler functions + distributed graphs | |
# WARN print warnings | |
# ERROR print exceptions | |
log_level: int = logging.DEBUG | |
# Verbose will print full stack traces on warnings and errors | |
verbose = False | |
# the name of a file to write the logs to | |
log_file_name: None = None | |
class _AccessLimitingConfig(ModuleType): | |
def __setattr__(self, name, value) -> None: | |
if name not in _allowed_config_names: | |
raise AttributeError(f"{__name__}.{name} does not exist") | |
return object.__setattr__(self, name, value) | |
_allowed_config_names: Set[str] = {*globals().keys()} | |
sys.modules[__name__].__class__ = _AccessLimitingConfig | |