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 dataclasses import dataclass
from omegaconf import OmegaConf, DictConfig from omegaconf import OmegaConf, DictConfig
import os 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 @dataclass
class Zotero: class Zotero:
@@ -10,25 +20,30 @@ class Zotero:
library_id: str library_id: str
library_type: str library_type: str
def getattr(self, name): def getattr(self, name: str):
return getattr(self, name) return getattr(self, name)
def _setattr(self, name, value): def _setattr(self, name: str, value: Any):
setattr(self, name, value) setattr(self, name, value)
@dataclass @dataclass
class Database: class Database:
name: str name: str
path: str path: str | Path
temp: str temp: str | Path
def getattr(self, name): def getattr(self, name: str):
return getattr(self, name) return getattr(self, name)
def _setattr(self, name, value): def _setattr(self, name: str, value: Any):
setattr(self, name, value) 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 @dataclass
class Mail: class Mail:
@@ -59,13 +74,13 @@ class Mail:
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; <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>""" 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) return getattr(self, name)
def _setattr(self, name, value): def _setattr(self, name: str, value: Any):
setattr(self, name, value) setattr(self, name, value)
def setValue(self, **kwargs): def setValue(self, **kwargs: Any):
for key, value in kwargs.items(): for key, value in kwargs.items():
if hasattr(self, key): if hasattr(self, key):
setattr(self, key, value) setattr(self, key, value)
@@ -79,7 +94,7 @@ class Icons:
self._colors = None self._colors = None
self._icons = None self._icons = None
def assign(self, key, value): def assign(self, key: str, value: Any):
setattr(self, key, value) setattr(self, key, value)
@property @property
@@ -87,7 +102,7 @@ class Icons:
return self._path return self._path
@path.setter @path.setter
def path(self, value): def path(self, value: Any):
self._path = value self._path = value
@property @property
@@ -95,7 +110,7 @@ class Icons:
return self._colors return self._colors
@colors.setter @colors.setter
def colors(self, value): def colors(self, value: Any):
self._colors = value self._colors = value
@property @property
@@ -103,10 +118,10 @@ class Icons:
return self._icons return self._icons
@icons.setter @icons.setter
def icons(self, value): def icons(self, value: Any):
self._icons = value self._icons = value
def get(self, name): def get(self, name: str):
return self.icons.get(name) return self.icons.get(name)
@@ -151,11 +166,11 @@ class Config:
return Zotero(**self._config.zotero) return Zotero(**self._config.zotero)
@property @property
def zotero_attr(self, name): def zotero_attr(self, name: str):
return getattr(self.zotero, name) return getattr(self.zotero, name)
@zotero_attr.setter @zotero_attr.setter
def zotero_attr(self, name, value): def zotero_attr(self, name: str, value: Any):
self.zotero._setattr(name, value) self.zotero._setattr(name, value)
@property @property
@@ -163,30 +178,34 @@ class Config:
return Database(**self._config.database) return Database(**self._config.database)
@property @property
def database_attr(self, name): def database_attr(self, name: str):
return getattr(self.database, name) return getattr(self.database, name)
@database_attr.setter @database_attr.setter
def database_attr(self, name, value): def database_attr(self, name: str, value: Any):
self.database._setattr(name, value) self.database._setattr(name, value)
@property
def openAI(self):
return OpenAI(**self._config.openAI)
@property @property
def mail(self): def mail(self):
return Mail(**self._config.mail) return Mail(**self._config.mail)
def mail_attr(self, name): def mail_attr(self, name: str):
return getattr(self.mail, name) 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) 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) 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) 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) OmegaConf.update(self._config, f"icons.{name}", value)
@property @property