Source code for nnsight.schema.config
import os
from typing import Optional
import yaml
from pydantic import BaseModel
from ..log import remote_logger
[docs]
class ApiConfigModel(BaseModel):
HOST: str = "api.ndif.us"
SSL: bool = True
ZLIB: bool = True
APIKEY: Optional[str] = None
[docs]
class AppConfigModel(BaseModel):
REMOTE_LOGGING: bool = True
DEBUG: bool = True
CACHE_DIR:str = '~/.cache/nnsight/'
def __setattr__(self, name, value):
if name == "REMOTE_LOGGING":
self.on_remote_logging_change(value)
super().__setattr__(name, value)
def on_remote_logging_change(self, value: bool):
if value != self.REMOTE_LOGGING:
remote_logger.disabled = (not value)
self.__dict__["REMOTE_LOGGING"] = value
[docs]
class ConfigModel(BaseModel):
API: ApiConfigModel = ApiConfigModel()
APP: AppConfigModel = AppConfigModel()
def set_default_api_key(self, apikey: str):
self.API.APIKEY = apikey
self.save()
def set_default_app_debug(self, debug: bool):
self.APP.DEBUG = debug
self.save()
def save(self):
from .. import PATH
with open(os.path.join(PATH, "config.yaml"), "w") as file:
yaml.dump(self.model_dump(), file)