updated project structure

This commit is contained in:
Patrick vom Hagen
2024-01-26 15:41:22 +01:00
parent 6ea62d15d7
commit 3175327cf2
24 changed files with 89 additions and 49 deletions

74
main.py
View File

@@ -1,25 +1,61 @@
from src.format_csv import *
########################################
# -- Python Script für UCS Import -- #
# -- by Patrick vom Hagen 2024 -- #
########################################
###############################################################
# IMPORT - standard Python imports für benötigte Bibliotheken #
import pandas as pd # pandas für Datenmanagement
import chardet # chardet erkennt Formatierung - Umwandlung des erkannten Formats in UTF-8
import csv # zur Verarbeitung von .csv Dateien
import uuid # zur Generierung von neuen UUIDs
#############################
# Flags / globale Variablen #
del_zeros = False # Boolean, ob führende Nullen bei Klassen entfernt werden sollen
get_typos = False # Boolean, ob geringe Unterschiede zwischen den Listen ausgegeben werden sollen
test_user = [] # Array in dem Spezialuser gespeichert und wieder eingefügt werden
school_id = 'HL' # HL-Tag für Klassen
ox_context = 0 # OX Context pro Schule
mail_quota_lul = 2048 # MailUserQuota LuL
ox_quota_lul = 20480 # oxUserQuota LuL
mail_quota_sus = 1024 # MailUserQuota SuS
ox_quota_sus = 5120 # oxUserQuota LuL
#######################
# MAIN FUNCTION START #
if __name__ == "__main__":
oldlist = 'Data/alte-liste-utf.csv'
newlist = 'Data/neue-liste-utf.csv'
print("Schul-IT UCS-Import Tool:")
test = 'GPS/lehrer_HL0707113.csv_intern'
new_test = 'GPS/gpsLold.csv'
clean = 'GPS/gpsLold2.cvs'
# ----------------------------------------------------------------- #
# Step 1 - Dateien wählen, formatieren, einlesen | Variablen setzen #
# Liste nach Fehler prüfen und Zeichen ersetzen
check_file(test)
format_csv(test, new_test)
clean_data(new_test, clean)
# ToDo Daten mit UI einlesen
lehrer_liste_neu = "./Data/test_new.csv"
lehrer_liste_system = "./Data/test.csv"
# path_old_csv = input('Pfad zur alten Liste eingeben eingeben: ')
# format_csv(path_old_csv, oldlist)
# path_new_csv = input('Pfad zur neuen Liste eingeben eingeben: ')
# format_csv(path_new_csv, newlist)
schueler_liste_neu = "./Data/test_new.csv"
schueler_liste_system = "./Data/test.csv"
# Generierte Listen mit pandas öffnen
# Spaltennamen prüfen und überflüssige Spalten löschen
# Abgleich starten -collisions
# TODO Testuser + Spezialfälle Raumaccounts etc. "Tafel" "Raum"
# TODO Fehlerhafte Sonderzeichen erkennen (oxport_schueler.csv - 171)
# Variablen füllen:
school_id = input("Schul-ID eingeben (Format: 'HL070XXXX):")
ox_context = input("OX-Context der Schule eingeben:")
if input("Klassen mit führenden Nullen? (Y/N) ").lower() == "y":
del_zeros = False
else:
del_zeros = True
# ---------------------------------------------------- #
# Step 2 - auf name, vorname reduzieren und abgleichen #
# 2.1 Data Frames für Abgleich erstellen
# 2.2 Datei mit gesamten Anzahlen generieren und füllen
# 2.3 Nicht zuordnungsbare bzw. neue Einträge nach Abweichung zur Bestandsliste prüfen und ausgeben
# UUIDs zwischenspeichern?
# Step 3 - Import Data generieren - klasse, uuids, weiteres in einer Liste zusammenführen