step2 abgeschlossen

This commit is contained in:
Patrick vom Hagen
2024-02-28 15:35:35 +01:00
parent 0632b1a7e1
commit a5348abe89
8 changed files with 367 additions and 34 deletions

47
main.py
View File

@@ -7,12 +7,14 @@
###############################################################
# IMPORT - standard Python imports für benötigte Bibliotheken #
from src import step1, step2, step3
from src import step1, step2, step3, Logger
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
import sys # zum Speichern der Konsolen Outputs in ein Log File
import os #
#############################
# Flags / globale Variablen #
@@ -28,10 +30,19 @@ ox_quota_lul = 20480 # oxUserQuota LuL
mail_quota_sus = 1024 # MailUserQuota SuS
ox_quota_sus = 5120 # oxUserQuota LuL
#######################
# MAIN FUNCTION START #
if __name__ == "__main__":
# Erstellt oder löscht Inhalte vorhandener Logdatei und loggt Konsolenausgaben
log_file_path = 'log.txt'
if os.path.exists(log_file_path):
open(log_file_path, 'w').close()
# sys.stdout = Logger.Logger(log_file_path)
print("Schul-IT UCS-Import Tool:\n")
dev = True
@@ -41,11 +52,11 @@ if __name__ == "__main__":
# ToDo Daten mit UI einlesen
# lehrer_liste_neu = "./Data/SaM/export_lehrer_SaM.csv"
lehrer_liste_neu = "./Data/Test/one.csv"
lehrer_liste_system = "./Data/Test/two.csv"
lehrer_liste_neu = "./Data/RoterHahn/exportLehrer.csv"
lehrer_liste_system = "./Data//RoterHahn/systemLehrer.csv"
# schueler_liste_neu = "./Data/SaM/export_schueler_SaM.csv"
# schueler_liste_system = "./Data/SaM/sys_schueler_SaM.csv"
schueler_liste_neu = "./Data/RoterHahn/exportSchueler.csv"
schueler_liste_system = "./Data/RoterHahn/systemSchueler.csv"
# Variablen füllen:
if not dev:
@@ -56,23 +67,22 @@ if __name__ == "__main__":
else:
del_zeros = True
print("Schul ID:", school_id, "OX-Context:", ox_context, "Nullen:", del_zeros)
print("Schul ID:", school_id, "\nOX-Context:", ox_context, "\nNullen:", del_zeros)
lul_new = step1.check_export_file(lehrer_liste_neu)
print("Spalten der Import Liste - Lehrer:", lul_new.columns)
# print("Spalten der Import Liste - Lehrer:", lul_new.columns)
lul_sys = step1.create_dataframe_system(lehrer_liste_system)
# sus_new = step1.check_export_file(schueler_liste_neu)
sus_new = step1.check_export_file(schueler_liste_neu)
# print("Spalten der Import Liste - Schüler:", sus_new.columns)
# sus_sys = step1.create_dataframe_system(schueler_liste_system)
sus_sys = step1.create_dataframe_system(schueler_liste_system)
# Test- und Funktionsuser auslagern
keywords = ['Test', 'test', 'Raum', 'raum', 'User', 'user', 'Tafel', 'tafel', 'Admin', 'admin']
lul_testuser_df = step1.extract_testusers(lul_sys, keywords)
print("Anzahl Test- / Systemuser LuL:", len(lul_testuser_df))
# sus_testuser_df = step1.extract_testusers(sus_sys, keywords)
# print("Anzahl Test- / Systemuser SuS:", len(sus_testuser_df))
# print(lul_testuser_df)
sus_testuser_df = step1.extract_testusers(sus_sys, keywords)
print("Anzahl Test- / Systemuser SuS:", len(sus_testuser_df))
# in Datasets aufteilen - Testuser, Abgleich, UUIDs
@@ -81,14 +91,17 @@ if __name__ == "__main__":
print("\nStep2: Listen abgleichen")
# 2.1 Data Frames für Abgleich erstellen
step2.print_status(lul_new, lul_sys, False)
# 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?
print(" Lehrer:innen:")
lul_matched, new_lul = step2.compare_data(lul_new, lul_sys, False)
print("\n Schüler:innen:")
sus_matched, new_sus = step2.compare_data(sus_new, sus_sys, True)
# Step 3 - Import Data generieren - klasse, uuids, weiteres in einer Liste zusammenführen
# ----------------------------------------------------------------------------------------#
# Step 3 - Import Data generieren - klasse, uuids, weiteres in einer Liste zusammenführen #
# Lul: Namen + UUIDs + Testuser
lul_import = step3.add_school_data(lul_sys, school_id, ox_context, mail_quota_lul, ox_quota_lul)
# SuS: Namen + UUIDs + Klassen + Testuser
# sus_import = step3.add_school_data(sus_sys, school_id, ox_context, mail_quota_sus, ox_quota_sus)
sys.stdout = sys.__stdout__