add openai model to config, rework logging to use appdirs logging dir

This commit is contained in:
2025-06-03 15:28:14 +02:00
parent 9684229fc2
commit 3fbb8bbd52
22 changed files with 101 additions and 84 deletions

View File

@@ -7,6 +7,7 @@ from pathlib import Path
@dataclass
class OpenAI:
api_key: str
model: str
def getattr(self, name: str):
return getattr(self, name)

View File

@@ -1,17 +1,25 @@
__version__ = "0.2.1"
__author__ = "Alexander Kirchner"
__all__ = ["__version__", "__author__", "Icon", "settings"]
from config import Config
import os
from config import Config
from appdirs import AppDirs
app = AppDirs("SemesterApparatsManager", "SAM")
LOG_DIR = app.user_log_dir
CONFIG_DIR = app.user_config_dir
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
if not os.path.exists(CONFIG_DIR):
os.makedirs(CONFIG_DIR)
settings = Config("config/config.yaml")
if not os.path.exists(settings.database.temp.expanduser()):
settings.database.temp.expanduser().mkdir(parents=True, exist_ok=True)
from .utils.icon import Icon
__version__ = "0.2.1"
__author__ = "Alexander Kirchner"
if not os.path.exists("logs"):
os.mkdir("logs")
# open and close the file to create it

View File

@@ -6,11 +6,11 @@ from src.backend.database import Database
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
db = Database()

View File

@@ -1,12 +1,18 @@
import os
import sqlite3 as sql
import tempfile
from pathlib import Path
from src import settings
from typing import Any, List, Optional, Tuple, Union
import datetime
import json
import os
import sqlite3 as sql
import sys
import tempfile
from dataclasses import asdict
from pathlib import Path
from string import ascii_lowercase as lower
from string import digits, punctuation
from typing import Any, List, Optional, Tuple, Union
import loguru
from src import LOG_DIR, settings
from src.backend.db import (
CREATE_ELSA_FILES_TABLE,
CREATE_ELSA_MEDIA_TABLE,
@@ -19,20 +25,17 @@ from src.backend.db import (
CREATE_TABLE_SUBJECTS,
CREATE_TABLE_USER,
)
from pathlib import Path
from src.errors import AppPresentError, NoResultError
from src.logic import ApparatData, BookData, Prof, Apparat, ELSA
from src.logic import ELSA, Apparat, ApparatData, BookData, Prof
from src.logic.constants import SEMAP_MEDIA_ACCOUNTS
from src.utils.blob import create_blob
from .semester import Semester
from string import ascii_lowercase as lower, digits, punctuation
import loguru
import sys
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -3,11 +3,11 @@ import datetime
from dataclasses import dataclass
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -5,11 +5,11 @@ from src.backend import Database
from src.logic.webrequest import BibTextTransformer, WebRequest
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
# logger.add(sys.stderr, format="{time} {level} {message}", level="INFO")

View File

@@ -7,11 +7,11 @@ from PyQt6.QtCore import pyqtSignal as Signal
from src.backend import Database
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
# from src.transformers import RDS_AVAIL_DATA

View File

@@ -5,7 +5,7 @@ from PyQt6.QtCore import QThread
from PyQt6.QtCore import pyqtSignal as Signal
from src.backend.database import Database
from src import LOG_DIR
from src.logic.webrequest import BibTextTransformer, WebRequest
# from src.transformers import RDS_AVAIL_DATA
@@ -15,7 +15,7 @@ import sys
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -1,8 +1,9 @@
from openai import OpenAI
from src import settings
import json
from src import LOG_DIR
model = "gpt-4o"
model = settings.openAI.model
api_key = settings.openAI.api_key
client = OpenAI(api_key = api_key)

View File

@@ -11,10 +11,11 @@ from src.transformers import ARRAYData, BibTeXData, COinSData, RDSData, RISData
from src.transformers.transformers import RDS_AVAIL_DATA, RDS_GENERIC_DATA
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
# logger.add(sys.stderr, format="{time} {level} {message}", level="INFO")

View File

@@ -1,18 +1,21 @@
import pandas as pd
from docx import Document
from dataclasses import dataclass
from src.backend import Semester
from typing import Union, Any
from src.logic.openai import name_tester, run_shortener, semester_converter
import zipfile
from bs4 import BeautifulSoup
import loguru
import sys
import zipfile
from dataclasses import dataclass
from typing import Any, Union
import loguru
import pandas as pd
from bs4 import BeautifulSoup
from docx import Document
from src import LOG_DIR
from src.backend import Semester
from src.logic.openai import name_tester, run_shortener, semester_converter
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -6,7 +6,7 @@ from dataclasses import dataclass
from dataclasses import field as dataclass_field
from typing import Any, List
from src import LOG_DIR
from src.logic.dataclass import BookData
import loguru
import sys
@@ -14,7 +14,7 @@ import sys
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
###Pydatnic models

View File

@@ -1,20 +1,19 @@
import hashlib
import sys
import loguru
from PyQt6 import QtCore, QtWidgets
from src import LOG_DIR, Icon
from src.backend.admin_console import AdminCommands
from src.backend.database import Database
from .dialog_sources.login_ui import Ui_Dialog
import sys
import loguru
from src import Icon
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
class LoginDialog(Ui_Dialog):

View File

@@ -10,11 +10,11 @@ from .dialog_sources.Ui_mail_preview import Ui_eMailPreview as MailPreviewDialog
from .mailTemplate import MailTemplateDialog
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -6,11 +6,11 @@ from src.backend import AutoAdder
from .dialog_sources.parsed_titles_ui import Ui_Form
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
class ParsedTitles(QtWidgets.QWidget, Ui_Form):
def __init__(self, parent=None):

View File

@@ -4,11 +4,12 @@ from .dialog_sources.settings_ui import Ui_Dialog as _settings
from src.ui.widgets.iconLine import IconWidget
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -1,70 +1,68 @@
# encoding: utf-8
import atexit
import os
import time
import sys
import tempfile
import time
import webbrowser
from datetime import datetime
from pathlib import Path
from typing import Any, Union
import loguru
from natsort import natsorted
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtCore import QThread
from PyQt6.QtGui import QRegularExpressionValidator
from src import Icon
from src.backend import Database, BookGrabber, AvailChecker, DocumentationThread
from src.backend.semester import Semester
from src import LOG_DIR, Icon
from src.backend import AvailChecker, BookGrabber, Database, DocumentationThread
from src.backend.create_file import recreateFile
from src.backend.delete_temp_contents import delete_temp_contents as tempdelete
from src.ui import Ui_Semesterapparat
from src.backend.semester import Semester
from src.logic import (
APP_NRS,
Apparat,
# PROF_TITLES,
ApparatData,
BookData,
Prof,
SemapDocument,
csv_to_list,
word_to_semap,
SemapDocument,
Prof,
Apparat,
)
from src.ui import Ui_Semesterapparat
from src.ui.dialogs import (
popus_confirm,
MedienAdder,
About,
ApparatExtendDialog,
Mail_Dialog,
Settings,
BookDataUI,
DocumentPrintDialog,
LoginDialog,
Mail_Dialog,
MedienAdder,
ParsedTitles,
ReminderDialog,
DocumentPrintDialog,
Settings,
popus_confirm,
)
from src.ui.widgets import (
ElsaDialog,
MessageCalendar,
FilePicker,
CalendarEntry,
UserCreate,
SearchStatisticPage,
EditUser,
EditProf,
EditUser,
ElsaDialog,
FilePicker,
MessageCalendar,
SearchStatisticPage,
UserCreate,
)
from datetime import datetime
import loguru
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
log.add(
f"logs/{datetime.now().strftime('%Y-%m-%d')}.log",
f"{LOG_DIR}/{datetime.now().strftime('%Y-%m-%d')}.log",
rotation="1 day",
retention="1 month",
)

View File

@@ -6,11 +6,12 @@ from typing import Any
import darkdetect
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
color = "#ddfb00" if darkdetect.isDark() else "#2204ff"

View File

@@ -5,11 +5,11 @@ from src.logic import Prof
from src.backend import Database
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -11,11 +11,11 @@ from src.ui.widgets import FilePicker, DataGraph
from src.backend import recreateElsaFile
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")

View File

@@ -5,11 +5,12 @@ import pyqtgraph as pg
from PyQt6 import QtWidgets
import loguru
import sys
from src import LOG_DIR
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
def mergedicts(d1: dict[str, Any], d2: dict[str, Any]):

View File

@@ -6,7 +6,7 @@ from src.backend import Database, Semester
from src.logic import custom_sort, Prof, sort_semesters_list
from src.ui.dialogs import Mail_Dialog, ApparatExtendDialog, ReminderDialog
from src.ui.widgets import DataGraph, StatusWidget
from src import LOG_DIR
from natsort import natsorted
import loguru
import sys
@@ -14,7 +14,7 @@ import sys
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add("logs/application.log", rotation="1 MB", retention="10 days")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")