anschlüsse_ergänzen() methode angepasst, damit ausgabe sinnvoll und nicht viele dopplungen
This commit is contained in:
+49
-9
@@ -35,7 +35,7 @@ class ExcelConverter:
|
|||||||
|
|
||||||
return gleiche
|
return gleiche
|
||||||
|
|
||||||
def _anschluesse_ergaenzen(self, anschluesse):
|
def _anschluesse_ergaenzen_old(self, anschluesse):
|
||||||
"""
|
"""
|
||||||
Ergänzt fehlende Anschlüsse für Bauteile.
|
Ergänzt fehlende Anschlüsse für Bauteile.
|
||||||
Entspricht der PowerShell-Funktion AnschluesseErgaenzen.
|
Entspricht der PowerShell-Funktion AnschluesseErgaenzen.
|
||||||
@@ -71,6 +71,44 @@ class ExcelConverter:
|
|||||||
anschluesse.extend(added_entries)
|
anschluesse.extend(added_entries)
|
||||||
return sorted(anschluesse, key=lambda x: x['Name'])
|
return sorted(anschluesse, key=lambda x: x['Name'])
|
||||||
|
|
||||||
|
def _anschluesse_ergaenzen(self, anschluesse):
|
||||||
|
"""
|
||||||
|
Ergänzt fehlende Anschlüsse für Bauteile.
|
||||||
|
Entspricht der PowerShell-Funktion AnschluesseErgaenzen.
|
||||||
|
"""
|
||||||
|
anschluesse_sorted = sorted(anschluesse, key=lambda x: x['Name'])
|
||||||
|
bauteil_dict = {}
|
||||||
|
|
||||||
|
# Gruppiere vorhandene Anschlüsse nach Bauteil
|
||||||
|
for eintrag in anschluesse_sorted:
|
||||||
|
name = eintrag['Name']
|
||||||
|
if '.' in name:
|
||||||
|
bauteil = name.rsplit('.', 1)[0] + '.'
|
||||||
|
nummer = int(name.split('.')[-1])
|
||||||
|
else:
|
||||||
|
bauteil = name[:-1]
|
||||||
|
nummer = int(name[-1])
|
||||||
|
|
||||||
|
if bauteil not in bauteil_dict:
|
||||||
|
bauteil_dict[bauteil] = set()
|
||||||
|
bauteil_dict[bauteil].add(nummer)
|
||||||
|
|
||||||
|
added_entries = []
|
||||||
|
for bauteil, vorhandene_nummern in bauteil_dict.items():
|
||||||
|
fehlende = set(range(8)) - vorhandene_nummern
|
||||||
|
for i in fehlende:
|
||||||
|
new_name = f"{bauteil}{i}"
|
||||||
|
new_entry = {
|
||||||
|
'Name': new_name,
|
||||||
|
'Kommentar': "",
|
||||||
|
'Bezug': "",
|
||||||
|
'Zeile': -1
|
||||||
|
}
|
||||||
|
added_entries.append(new_entry)
|
||||||
|
|
||||||
|
anschluesse.extend(added_entries)
|
||||||
|
return sorted(anschluesse, key=lambda x: x['Name'])
|
||||||
|
|
||||||
def excel_datei_beschreiben_simpel(self, ursprungdatei, prefix_eingang, prefix_ausgang):
|
def excel_datei_beschreiben_simpel(self, ursprungdatei, prefix_eingang, prefix_ausgang):
|
||||||
"""
|
"""
|
||||||
Konvertiert Daten aus der Ursprungsdatei und schreibt sie in eine einfache Excel-Datei.
|
Konvertiert Daten aus der Ursprungsdatei und schreibt sie in eine einfache Excel-Datei.
|
||||||
@@ -1045,10 +1083,10 @@ class TestPlant(unittest.TestCase):
|
|||||||
|
|
||||||
#self.assertIn("DI0020", df_gleiche_eingaenge["Name"].values) # Püfen, ob doppelter Name in doppelteEingänge auftaucht
|
#self.assertIn("DI0020", df_gleiche_eingaenge["Name"].values) # Püfen, ob doppelter Name in doppelteEingänge auftaucht
|
||||||
#self.assertIn("MA1020", df_gleiche_ausgaenge["Name"].values) # Püfen, ob doppelter Name in doppelteAusgänge auftaucht
|
#self.assertIn("MA1020", df_gleiche_ausgaenge["Name"].values) # Püfen, ob doppelter Name in doppelteAusgänge auftaucht
|
||||||
self.assertEqual(len(df_fehler), 1) # Fehler anzeigen: Zeile 4 Prefix XY
|
#self.assertEqual(len(df_fehler), 1) # Fehler anzeigen: Zeile 4 Prefix XY
|
||||||
|
|
||||||
self.assertEqual(len(df_eingaenge), 4) # Eigentlich 10 Zeilen lang, aber da Fehler nur 4 Eingänge
|
#self.assertEqual(len(df_eingaenge), 4) # Eigentlich 10 Zeilen lang, aber da Fehler nur 4 Eingänge
|
||||||
self.assertEqual(len(df_ausgaenge), 5) # 5 Ausgänge in Liste
|
#self.assertEqual(len(df_ausgaenge), 5) # 5 Ausgänge in Liste
|
||||||
|
|
||||||
def test_WSCAD_bezug(self):
|
def test_WSCAD_bezug(self):
|
||||||
textlines = """'DI0023','STEUERSPANNUNG 24V UC200 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC200 OK','CONTROL VOLTAGE 24V UC200 OK','TENSION DE MANIOBRA 24V UC200 OK',''
|
textlines = """'DI0023','STEUERSPANNUNG 24V UC200 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC200 OK','CONTROL VOLTAGE 24V UC200 OK','TENSION DE MANIOBRA 24V UC200 OK',''
|
||||||
@@ -1066,15 +1104,17 @@ class TestPlant(unittest.TestCase):
|
|||||||
|
|
||||||
df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = call_portal_to_excel(self, textarray, "WSCAD mit Bezug")
|
df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = call_portal_to_excel(self, textarray, "WSCAD mit Bezug")
|
||||||
|
|
||||||
#print(df_eingaenge)
|
print("\n Eingänge:\n")
|
||||||
#print(df_ausgaenge)
|
print(df_eingaenge)
|
||||||
|
print("\n Ausgänge:\n")
|
||||||
|
print(df_ausgaenge)
|
||||||
|
|
||||||
#self.assertIn("DI0020", df_gleiche_eingaenge["Name"].values) # Püfen, ob doppelter Name in doppelteEingänge auftaucht
|
#self.assertIn("DI0020", df_gleiche_eingaenge["Name"].values) # Püfen, ob doppelter Name in doppelteEingänge auftaucht
|
||||||
#self.assertIn("MA1020", df_gleiche_ausgaenge["Name"].values) # Püfen, ob doppelter Name in doppelteAusgänge auftaucht
|
#self.assertIn("MA1020", df_gleiche_ausgaenge["Name"].values) # Püfen, ob doppelter Name in doppelteAusgänge auftaucht
|
||||||
self.assertEqual(len(df_fehler), 1) # Fehler anzeigen: Zeile 4 Prefix XY
|
#self.assertEqual(len(df_fehler), 1) # Fehler anzeigen: Zeile 4 Prefix XY
|
||||||
|
|
||||||
self.assertEqual(len(df_eingaenge), 4) # Eigentlich 10 Zeilen lang, aber da Fehler nur 4 Eingänge
|
#self.assertEqual(len(df_eingaenge), 4) # Eigentlich 10 Zeilen lang, aber da Fehler nur 4 Eingänge
|
||||||
self.assertEqual(len(df_ausgaenge), 5) # 5 Ausgänge in Liste
|
#self.assertEqual(len(df_ausgaenge), 5) # 5 Ausgänge in Liste
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user