include chatgpt section to config
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user