pytorch
27 строк · 879.0 Байт
1import logging
2import sys
3from types import ModuleType
4from typing import Set
5
6# log level (levels print what it says + all levels listed below it)
7# DEBUG print full traces <-- lowest level + print tracing of every instruction
8# INFO print compiler functions + distributed graphs
9# WARN print warnings
10# ERROR print exceptions
11log_level: int = logging.DEBUG
12# Verbose will print full stack traces on warnings and errors
13verbose = False
14
15# the name of a file to write the logs to
16log_file_name: None = None
17
18
19class _AccessLimitingConfig(ModuleType):
20def __setattr__(self, name, value) -> None:
21if name not in _allowed_config_names:
22raise AttributeError(f"{__name__}.{name} does not exist")
23return object.__setattr__(self, name, value)
24
25
26_allowed_config_names: Set[str] = {*globals().keys()}
27sys.modules[__name__].__class__ = _AccessLimitingConfig
28