include chatgpt section to config

This commit is contained in:
2025-06-03 13:14:13 +02:00
parent bb4c4c4003
commit e29b630405

View File

@@ -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:
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px;
margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>"""
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