| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | import pathlibfrom .config import configfrom .exception import config_exceptionclass app_config(config):    def __defaults() -> dict:        return {            "database_uri": "sqlite:///database.db",            "users_file": "users.json",            "covers_dir": "covers/",            "thumbnails_dimension": "400",            "google_api_key": "",            "google_cx": ""        }    def __init__(self):        super().__init__(app_config.__defaults())    @property    def google_api_key(self) -> str | None:        api_key = self._get("google_api_key")        if len(api_key.strip()) == 0:            return None                return api_key    @property    def google_cx(self) -> str | None:        cx = self._get("google_cx")        if len(cx.strip()) == "0":            return None        return cx    @property    def database_uri(self) -> str:        return self._get("database_uri")    @property    def users_file(self) -> str:        return self._get("users_file")    @property    def covers_dir(self) -> str:        return self._get("covers_dir")    @property    def users_path(self) -> pathlib.Path:        return pathlib.Path(self.users_file)    @property    def thumbnails_dimension(self) -> int:        try:            return int(self._get("thumbnails_dimension"))                except:            raise config_exception("Thumbnails dimension must be integer.")    @property    def covers_path(self) -> pathlib.Path:        return pathlib.Path(self.covers_dir)
 |