refactor: update import statement and enhance word_to_semap function with AI parameter

This commit is contained in:
2025-09-01 14:32:05 +02:00
parent ce7d22b26b
commit af53b0310f

View File

@@ -9,7 +9,7 @@ from bs4 import BeautifulSoup
from docx import Document from docx import Document
from src import LOG_DIR from src import LOG_DIR
from src.backend import Semester from src.backend.semester import Semester
from src.logic.openai import name_tester, run_shortener, semester_converter from src.logic.openai import name_tester, run_shortener, semester_converter
log = loguru.logger log = loguru.logger
@@ -18,7 +18,6 @@ log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days") log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
@@ -111,6 +110,7 @@ class SemapDocument:
else: else:
self.title_suggestions = [] self.title_suggestions = []
pass pass
@property @property
def renameSemester(self) -> None: def renameSemester(self) -> None:
if ", Dauer" in self.semester: if ", Dauer" in self.semester:
@@ -141,8 +141,8 @@ def word_docx_to_csv(path: str) -> list[pd.DataFrame]:
text = text.replace("\n", "") text = text.replace("\n", "")
row_data.append(text) row_data.append(text)
if text == "Ihr Fach:": # if text == "Ihr Fach:":
row_data.append(get_fach(path)) # row_data.append(get_fach(path))
data.append(row_data) data.append(row_data)
df = pd.DataFrame(data) df = pd.DataFrame(data)
df.columns = df.iloc[0] df.columns = df.iloc[0]
@@ -265,7 +265,7 @@ def elsa_word_to_csv(path: str):
return tuple_to_dict(data, doctype), doctype return tuple_to_dict(data, doctype), doctype
def word_to_semap(word_path: str) -> SemapDocument: def word_to_semap(word_path: str, ai: bool = True) -> SemapDocument:
log.info("Parsing Word Document {}", word_path) log.info("Parsing Word Document {}", word_path)
semap = SemapDocument() semap = SemapDocument()
df = word_docx_to_csv(word_path) df = word_docx_to_csv(word_path)
@@ -286,8 +286,9 @@ def word_to_semap(word_path: str) -> SemapDocument:
appdata = {keys[i]: keys[i + 1] for i in range(0, len(keys), 2)} appdata = {keys[i]: keys[i + 1] for i in range(0, len(keys), 2)}
semap.title = appdata["Veranstaltung:"] semap.title = appdata["Veranstaltung:"]
semap.semester = appdata["Semester:"] semap.semester = appdata["Semester:"]
semap.renameSemester if ai:
semap.nameSetter semap.renameSemester
semap.nameSetter
books = df[2] books = df[2]
booklist = [] booklist = []
@@ -309,7 +310,5 @@ def word_to_semap(word_path: str) -> SemapDocument:
if __name__ == "__main__": if __name__ == "__main__":
else_df = elsa_word_to_csv( else_df = word_to_semap("C:/Users/aky547/Desktop/semap/db/temp/tmpzsz_hgdr.docx")
"C:/Users/aky547/Desktop/ELSA_Bestellung Scann Der Westen und der Rest.docx"
)
print(else_df) print(else_df)