chore(codebase): import fixes, restructuring
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
@@ -5,19 +7,18 @@ from typing import Any, Optional, Union
|
||||
|
||||
import regex
|
||||
|
||||
from src.logic.openai import name_tester, run_shortener, semester_converter
|
||||
from src.logic.semester import Semester
|
||||
from src.core.semester import Semester
|
||||
|
||||
|
||||
@dataclass
|
||||
class Prof:
|
||||
id: Optional[int] = None
|
||||
_title: Optional[str] = None
|
||||
firstname: Optional[str] = None
|
||||
lastname: Optional[str] = None
|
||||
fullname: Optional[str] = None
|
||||
mail: Optional[str] = None
|
||||
telnr: Optional[str] = None
|
||||
id: int | None = None
|
||||
_title: str | None = None
|
||||
firstname: str | None = None
|
||||
lastname: str | None = None
|
||||
fullname: str | None = None
|
||||
mail: str | None = None
|
||||
telnr: str | None = None
|
||||
|
||||
# add function that sets the data based on a dict
|
||||
def from_dict(self, data: dict[str, Union[str, int]]):
|
||||
@@ -37,7 +38,7 @@ class Prof:
|
||||
self._title = value
|
||||
|
||||
# add function that sets the data from a tuple
|
||||
def from_tuple(self, data: tuple[Union[str, int], ...]) -> "Prof":
|
||||
def from_tuple(self, data: tuple[Union[str, int], ...]) -> Prof:
|
||||
self.id = data[0]
|
||||
self._title = data[1]
|
||||
self.firstname = data[2]
|
||||
@@ -92,12 +93,12 @@ class BookData:
|
||||
self.year = regex.sub(r"[^\d]", "", str(self.year)) if self.year else None
|
||||
self.in_library = True if self.signature else False
|
||||
|
||||
def from_dict(self, data: dict) -> "BookData":
|
||||
def from_dict(self, data: dict) -> BookData:
|
||||
for key, value in data.items():
|
||||
setattr(self, key, value)
|
||||
return self
|
||||
|
||||
def merge(self, other: "BookData") -> "BookData":
|
||||
def merge(self, other: BookData) -> BookData:
|
||||
for key, value in other.__dict__.items():
|
||||
# merge lists, if the attribute is a list, extend it
|
||||
if isinstance(value, list):
|
||||
@@ -142,12 +143,12 @@ class BookData:
|
||||
return "eBook"
|
||||
return "Druckausgabe"
|
||||
|
||||
def from_string(self, data: str) -> "BookData":
|
||||
def from_string(self, data: str) -> BookData:
|
||||
ndata = json.loads(data)
|
||||
|
||||
return BookData(**ndata)
|
||||
|
||||
def from_LehmannsSearchResult(self, result: Any) -> "BookData":
|
||||
def from_LehmannsSearchResult(self, result: Any) -> BookData:
|
||||
self.title = result.title
|
||||
self.author = "; ".join(result.authors) if result.authors else None
|
||||
self.edition = str(result.edition) if result.edition else None
|
||||
@@ -177,10 +178,10 @@ class BookData:
|
||||
|
||||
@dataclass
|
||||
class MailData:
|
||||
subject: Optional[str] = None
|
||||
body: Optional[str] = None
|
||||
mailto: Optional[str] = None
|
||||
prof: Optional[str] = None
|
||||
subject: str | None
|
||||
body: str | None
|
||||
mailto: str | None
|
||||
prof: str | None
|
||||
|
||||
|
||||
class Subjects(Enum):
|
||||
@@ -242,7 +243,7 @@ class Apparat:
|
||||
prof_id_adis: str | None = None
|
||||
konto: int | None = None
|
||||
|
||||
def from_tuple(self, data: tuple[Any, ...]) -> "Apparat":
|
||||
def from_tuple(self, data: tuple[Any, ...]) -> Apparat:
|
||||
self.id = data[0]
|
||||
self.name = data[1]
|
||||
self.prof_id = data[2]
|
||||
@@ -273,7 +274,7 @@ class ELSA:
|
||||
semester: str | None = None
|
||||
prof_id: int | None = None
|
||||
|
||||
def from_tuple(self, data: tuple[Any, ...]) -> "ELSA":
|
||||
def from_tuple(self, data: tuple[Any, ...]) -> ELSA:
|
||||
self.id = data[0]
|
||||
self.date = data[1]
|
||||
self.semester = data[2]
|
||||
@@ -289,27 +290,27 @@ class ApparatData:
|
||||
|
||||
@dataclass
|
||||
class XMLMailSubmission:
|
||||
name: Optional[str] = None
|
||||
lastname: Optional[str] = None
|
||||
title: Optional[str] = None
|
||||
telno: Optional[int] = None
|
||||
email: Optional[str] = None
|
||||
app_name: Optional[str] = None
|
||||
subject: Optional[str] = None
|
||||
semester: Optional[Semester] = None
|
||||
books: Optional[list[BookData]] = None
|
||||
name: str | None
|
||||
lastname: str | None
|
||||
title: str | None
|
||||
telno: int | None
|
||||
email: str | None
|
||||
app_name: str | None
|
||||
subject: str | None
|
||||
semester: Semester | None
|
||||
books: list[BookData] | None
|
||||
|
||||
|
||||
@dataclass
|
||||
class Book:
|
||||
author: str = None
|
||||
year: str = None
|
||||
edition: str = None
|
||||
title: str = None
|
||||
location: str = None
|
||||
publisher: str = None
|
||||
signature: str = None
|
||||
internal_notes: str = None
|
||||
author: str | None
|
||||
year: str | None
|
||||
edition: str | None
|
||||
title: str | None
|
||||
location: str | None
|
||||
publisher: str | None
|
||||
signature: str | None
|
||||
internal_notes: str | None
|
||||
|
||||
@property
|
||||
def has_signature(self) -> bool:
|
||||
@@ -354,18 +355,18 @@ class Book:
|
||||
|
||||
@dataclass
|
||||
class SemapDocument:
|
||||
subject: str = None
|
||||
phoneNumber: int = None
|
||||
mail: str = None
|
||||
title: str = None
|
||||
subject: str | None
|
||||
phoneNumber: int | None
|
||||
mail: str | None
|
||||
title: str | None
|
||||
personName: str | None
|
||||
personTitle: str | None
|
||||
title_suggestions: list[str] = None
|
||||
semester: Union[str, Semester] = None
|
||||
books: list[Book] = None
|
||||
eternal: bool = False
|
||||
personName: str = None
|
||||
personTitle: str = None
|
||||
title_length = 0
|
||||
title_max_length = 0
|
||||
title_length: int = 0
|
||||
title_max_length: int = 0
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
"""."""
|
||||
@@ -376,6 +377,8 @@ class SemapDocument:
|
||||
|
||||
@property
|
||||
def nameSetter(self):
|
||||
from src.services.openai import name_tester, run_shortener
|
||||
|
||||
data = name_tester(self.personTitle)
|
||||
name = f"{data['last_name']}, {data['first_name']}"
|
||||
if data["title"] is not None:
|
||||
@@ -394,6 +397,8 @@ class SemapDocument:
|
||||
|
||||
@property
|
||||
def renameSemester(self) -> None:
|
||||
from src.services.openai import semester_converter
|
||||
|
||||
if self.semester:
|
||||
if ", Dauer" in self.semester:
|
||||
self.semester = self.semester.split(",")[0]
|
||||
|
||||
Reference in New Issue
Block a user