Skip to content

Conversation

@KoenigMjr
Copy link
Contributor

  • Füge CSV-Import über csvPath-Konfiguration hinzu
  • Implementiere Regex-Matching mit isRegex-Flag (YAML & CSV)
  • Erstelle unified cache für YAML- und CSV-Einträge
  • Wildcards werden in Beschreibungen ("add"-Werte) ersetzt
  • Erweitere Logging für bessere Debugging-Möglichkeiten

Neue Features:

  • CSV-Dateien können parallel zu YAML-Beschreibungen verwendet werden
  • Regex-Unterstützung ermöglicht Pattern-basiertes Matching
  • Wildcards werden in Beschreibungen ("add"-Werte) ersetzt
  • Vollständige Abwärtskompatibilität zu bestehenden Konfigurationen

Technische Verbesserungen:

  • Unified cache-System für bessere Performance
  • Korrekte Iteration über Config-Objekte mit default-Parametern
  • Robuste Fehlerbehandlung für CSV-Import
  • continue statt break bei fehlenden scanFields

Einschränkungen / known limitations:

  • Keine explizite Behandlung von Duplikaten
  • Standardverhalten ist „last one wins“, d. h. das zuletzt passende Descriptor-Objekt überschreibt den Wert
  • Wenn mehrere CSV/YAML denselben Schlüssel liefern, hängt das Ergebnis von Lade- bzw. Listen-Reihenfolge ab

@KoenigMjr
Copy link
Contributor Author

KoenigMjr commented Sep 1, 2025

Servus,
hab mich mal an das Descriptor-Modul gewagt und die Möglichkeit von CSV implementiert.

Test-Matrix: descriptor-Modul

Quelle Regex Ohne Regex
Nur YAML
Nur CSV
YAML+CSV

Bitte auch die Doku auf Sinnhaftigkeit, Gliederung etc. prüfen!
"Nur weil es in meinem Kopf Sinn macht, heißt das noch lange nicht, dass es Sinn macht."
Danke

- Füge CSV-Import über csvPath-Konfiguration hinzu
- Implementiere Regex-Matching mit isRegex-Flag (YAML & CSV)
- Erstelle unified cache für YAML- und CSV-Einträge
- Wildcard-Replacement mit dynamische Beschreibungen
- Erweitere Logging für bessere Debugging-Möglichkeiten

Neue Features:
* CSV-Dateien können parallel zu YAML-Beschreibungen verwendet werden
* Regex-Unterstützung ermöglicht Pattern-basiertes Matching
* Wildcards wie {TONE} werden in Beschreibungen ("add"-Werte) ersetzt
* Vollständige Abwärtskompatibilität zu bestehenden Konfigurationen

Technische Verbesserungen:
* Unified cache-System für bessere Performance
* Korrekte Iteration über Config-Objekte mit default-Parametern
* Robuste Fehlerbehandlung für CSV-Import
* continue statt break bei fehlenden scanFields

Einschränkungen / known limitations:
* Keine explizite Behandlung von Duplikaten
* Standardverhalten ist „last one wins“, d. h. das zuletzt passende Descriptor-Objekt überschreibt den Wert
* Wenn mehrere CSV/YAML denselben Schlüssel liefern, hängt das Ergebnis von Lade- bzw. Listen-Reihenfolge ab
@Schrolli91
Copy link
Member

Schrolli91 commented Nov 18, 2025

Wieso machst du eigentlich immer einen Force Push?
Das zerstört leider total die Nachvollziehbarkeit, was sich geändert hat.

@KoenigMjr
Copy link
Contributor Author

Ah! Mache ich z.b. wenn pytest mir einen Error auswirft (anfangs) wegen z.b. Flake (Leerzeile eingerückt) und später dann, wenn z.B. im Develop ein merge passiert ist, dass ich die Änderungen in meinen Branch vom PR einfügen kann, ohne dass es einen neuen Commit ergibt (Übersichtlichkeit vom Commitverlauf im Develop)

Das mit pytest hab ich gestern entdeckt wie ich das bei mir vor dem PR laufen lassen kann, ohne dass dann erst im PR zu entdecken.

Wegen der Problematik mit neuen Commits im Develop müsstest du mir helfen, wie ich da am besten den Branch vom PR "mergefähig" halte und nachvollziehbar bleibt.

@KoenigMjr
Copy link
Contributor Author

Screenshot_20251118-161831~2.png

Diese Commits meinte ich... Sry bin gerade nur am Handy aber ich denke, es ist verständlich, was ich meinte. Die kommen halt zuhauf sonst in den Commitverlauf vom Develop, wenn mehrere PRs parallel laufen.

@Schrolli91
Copy link
Member

Schrolli91 commented Nov 20, 2025

Ja - so funktioniert git nunmal.
Der Commit Verlauf muss nicht clean sein - Es ist eben Entwicklung und die sollte sich real nachvollziehen lassen.

Das Force pushen macht reviews extrem schwierig, weil man nie sieht was sich noch geändert hat.
Laufende Reviews werden damit quasi "zerstört".

@KoenigMjr
Copy link
Contributor Author

Danke für die Einsicht und die Hintergrundinfo. Dann lass ich das in Zukunft :)

@Schrolli91
Copy link
Member

Das Feature läuft bei dir aktuell auch und ist soweit stabil?

@KoenigMjr
Copy link
Contributor Author

KoenigMjr commented Nov 21, 2025

ja, passt!
Einzig vielleicht noch als Ergänzung: Sollte man lieber noch eine beispiel.csv mit 2 Einträgen (1x isregex true, 1x false) anlegen, um das Erstellen einfacher zu machen oder soll man dem User das Erstellen aus der Readme raus überlassen?

Dann würde ich noch eine Beispiel.csv anlegen wenn gewünscht

@Schrolli91
Copy link
Member

Wenn du befürchtest, dass es jemand nicht ganz kapiert, dann lieber die Doku um entsprechende Beispiele erweitern. Endlose Demo Dateien sind auch nicht zielführend denke ich.

Schrolli91
Schrolli91 previously approved these changes Nov 26, 2025
Copy link
Member

@Schrolli91 Schrolli91 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@KoenigMjr
Copy link
Contributor Author

Ich glaube die docu erklärt es gut.

@KoenigMjr
Copy link
Contributor Author

HALT STOP, es gibt einen Fehler mit führenden "0". Ist bisher mit ZVEI nicht aufgefallen, bei POCSAG aber sehr wohl öfter möglich.

@KoenigMjr KoenigMjr marked this pull request as draft December 1, 2025 15:20
- csv-data sets will now be corrected, no matter if the "for"-value is: 1234567, "1234567" or '1234567'
- depending on "isregex" value in csv first exact matches, second regex matches. So it is safe that if double matches occur, exact matches always wins.
- debug for CSV row read implemented
- updating readme to newest development
@KoenigMjr
Copy link
Contributor Author

so, ich finds gut..

Zusätzliches Strippen von umschließenden Anführungszeichen (" und ') aus der csv wurde eingefügt, sodass es keine Ungereimtheiten bezüglich der Schreibweise gibt, falls z.B. einer in Excel arbeitet und die Werte lieber mit "" bearbeitet, dass die führende Null nicht von Excel entfernt wird.

Bei näherer Betrachtung hat mich zusätzlich die undefinierte Verarbeitung von RegEx und exact Match gestört (Last one wins). Nun ist die Priorisierung Exact Match wins (over RegEx). Hab das mal in der .py bisschen mehr kommentiert wegen der vielleicht auf den ersten Blick nicht ganz nachvollziehbaren Herangehensweise.

@KoenigMjr KoenigMjr marked this pull request as ready for review December 3, 2025 21:38
Copy link
Member

@Schrolli91 Schrolli91 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Schrolli91
Copy link
Member

@KoenigMjr keine weiteren Auffälligkeiten? Dann würde ich das nämlich final mergen.

@KoenigMjr
Copy link
Contributor Author

Keine Auffälligkeiten, gerne :)

@Schrolli91 Schrolli91 merged commit ab5c885 into BOSWatch:develop Dec 8, 2025
5 checks passed
@KoenigMjr KoenigMjr deleted the enh/descr-csv branch December 9, 2025 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants