From e29b63040546a54fcfb61641c5a2be74cfca5441 Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Tue, 3 Jun 2025 13:14:13 +0200 Subject: [PATCH] include chatgpt section to config --- config/config.py | 67 +++++++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/config/config.py b/config/config.py index 8619b2a..9a50cb9 100644 --- a/config/config.py +++ b/config/config.py @@ -1,8 +1,18 @@ -from typing import Optional +from typing import Optional, Any from dataclasses import dataclass from omegaconf import OmegaConf, DictConfig import os +from pathlib import Path +@dataclass +class OpenAI: + api_key: str + + def getattr(self, name: str): + return getattr(self, name) + + def _setattr(self, name: str, value: Any): + setattr(self, name, value) @dataclass class Zotero: @@ -10,25 +20,30 @@ class Zotero: library_id: str library_type: str - def getattr(self, name): + def getattr(self, name: str): return getattr(self, name) - def _setattr(self, name, value): + def _setattr(self, name: str, value: Any): setattr(self, name, value) @dataclass class Database: name: str - path: str - temp: str + path: str | Path + temp: str | Path - def getattr(self, name): + def getattr(self, name: str): return getattr(self, name) - def _setattr(self, name, value): + def _setattr(self, name: str, value: Any): setattr(self, name, value) + def __post_init__(self): + if isinstance(self.path, str): + self.path = Path(self.path) + if isinstance(self.temp, str): + self.temp = Path(self.temp) @dataclass class Mail: @@ -59,13 +74,13 @@ class Mail:


""" - def getattr(self, name): + def getattr(self, name: str): return getattr(self, name) - def _setattr(self, name, value): + def _setattr(self, name: str, value: Any): setattr(self, name, value) - def setValue(self, **kwargs): + def setValue(self, **kwargs: Any): for key, value in kwargs.items(): if hasattr(self, key): setattr(self, key, value) @@ -79,7 +94,7 @@ class Icons: self._colors = None self._icons = None - def assign(self, key, value): + def assign(self, key: str, value: Any): setattr(self, key, value) @property @@ -87,7 +102,7 @@ class Icons: return self._path @path.setter - def path(self, value): + def path(self, value: Any): self._path = value @property @@ -95,7 +110,7 @@ class Icons: return self._colors @colors.setter - def colors(self, value): + def colors(self, value: Any): self._colors = value @property @@ -103,10 +118,10 @@ class Icons: return self._icons @icons.setter - def icons(self, value): + def icons(self, value: Any): self._icons = value - def get(self, name): + def get(self, name: str): return self.icons.get(name) @@ -151,11 +166,11 @@ class Config: return Zotero(**self._config.zotero) @property - def zotero_attr(self, name): + def zotero_attr(self, name: str): return getattr(self.zotero, name) @zotero_attr.setter - def zotero_attr(self, name, value): + def zotero_attr(self, name: str, value: Any): self.zotero._setattr(name, value) @property @@ -163,30 +178,34 @@ class Config: return Database(**self._config.database) @property - def database_attr(self, name): + def database_attr(self, name: str): return getattr(self.database, name) @database_attr.setter - def database_attr(self, name, value): + def database_attr(self, name: str, value: Any): self.database._setattr(name, value) + @property + def openAI(self): + return OpenAI(**self._config.openAI) + @property def mail(self): return Mail(**self._config.mail) - def mail_attr(self, name): + def mail_attr(self, name: str): return getattr(self.mail, name) - def set_mail_attr(self, name, value): + def set_mail_attr(self, name: str, value: Any): OmegaConf.update(self._config, f"mail.{name}", value) - def set_database_attr(self, name, value): + def set_database_attr(self, name: str, value: Any): OmegaConf.update(self._config, f"database.{name}", value) - def set_zotero_attr(self, name, value): + def set_zotero_attr(self, name: str, value: Any): OmegaConf.update(self._config, f"zotero.{name}", value) - def set_icon_attr(self, name, value): + def set_icon_attr(self, name: str, value: Any): OmegaConf.update(self._config, f"icons.{name}", value) @property