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 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
|
||||||
|
|||||||
Reference in New Issue
Block a user