hab mich nun lange Zeit hauptsächlich theoretisch mit Python beschäftigt und möchte gern mit meinem ersten Projekt einsteigen. Als Projekt habe ich mir folgendes vorgenommen:
Da ich in einer Agentur arbeite, welche hauptsätzlich mit PHP arbeitet (Nachfrage bestimmt leider das Angebot

Daher meine Idee: Ein Script, welches rekursiv (wenn gewollt) über ein Verzeichnis geht und sämtliche HTML, PHP, CSS, etc. Dateien einliest und gegen einige Regeln validiert. Am Ende soll das Ergebnis präsentiert werden: Welche Datei hat in welcher Zeile welchen Fehler.
An sich ein sehr nützliches Projekt, jedoch bin ich mir bei der Umsetzung noch etwas unsicher. Im ersten Schritt sollen erstmal nur CSS Dateien abgefrühstückt werden. Die Validierung selbst habe ich mir über einen Haufen an regulären Ausdrücken gedacht, da ich sonst nicht wüsste, wie ich sinnvoll meine Bedürfnisse darstellen kann, so dass ich vorhandene Dateien dagegen prüfen kann.
Später soll dies dann noch für andere Dateien nachgetragen werden, jedoch reicht mir im ersten Schritt nur CSS.
Gedacht hab ich mir folgende Klassen, bzw. Module/Packages (wo wir nun ja bei Python sind

Hauptprogramm
Kümmert sich um das Auslesen der Verzeichnisse und stellt eine Liste der Dateien zusammen.
Validator
Der Validator kriegt dann diese Liste übergeben und entscheidet anhand der Dateien, ob nun Regeln für HTML, CSS, etc. nötig sind und prüft die Dateien gegen diese Regeln.
File
Ein Modul für die Datei(en). Dadurch kann für jede Datei gespeichert werden, welche Fehler sie enthalten usw.
Error
Ein Modul für den eigentlichen Fehler. Welche Regel, welche Zeile, usw.
Rule
Ein Modul, welches die Regel(n) abbilden kann.
Soweit meine ersten Gedanken. Nun bin ich mir nicht sicher, ob ich es mir ggf. nicht zu schwer mache und für jedes Teil ein extra Modul definieren sollte. Ist dies ggf. übertrieben?
Auch bin ich mir nicht sicher, wie ich die Regeln verwalten möchte. Da es sich eigentlich nur um reguläre Ausdrücke handelt, könnte ich diese in eine XML Datei packen und diese dann auslesen und in viele kleine Objekte verpacken, d.h. 5 Regeln aus der XML ergibt 5 Instanzen von Rule.
Oder mache ich pro Typ (CSS, HTML, PHP, usw) ein eigenes Modul, z.b. Rule-HTML, Rule-CSS, usw. Dort könnten dann die Regeln hart abgelegt werden.
Soweit meine ersten Gedanken. Nun weiß ich z.B. auch nicht, ob es irgendwas davon schon in Python gibt, da mein Wissen noch recht begrenzt ist. Daher wende ich mich aber an euch und hoffe auf hilfreiche Anmerkungen und Tipps
