[clay2py] Konvertiert XML-DB-Schemas in Python models

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Ist irgendjemand so etwas bekannt? Oder wenigstens irgendetwas in diese Richtung?

Oder ein Parser von SQL mit den "create table"-Anweisungen zu den Python-Klassen?

Falls es das nicht gibt, will ich das eventuell selber implementieren. Dann sollte es am besten ein Modeller mit Eclipse Integration sein.
Clay ( http://www.azzurri.jp/en/clay/index.html ) sieht auf den ersten Blick ganz nett aus und legt die Daten auch in einer sinnvollen XML-Struktur ab, die relativ einfach zu parsen sein müsste:
http://paste.pocoo.org/show/188972/

Habt ihr sonst noch irgendwelche Vorschläge? Welche Library für das XML-Processing soll ich nehmen?

Edit: Topic changed.
Zuletzt geändert von ms4py am Samstag 13. März 2010, 13:32, insgesamt 1-mal geändert.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Habe mal ein erstes Konzept zu einem Parser von *.clay zu model.py entwickelt.
http://bitbucket.org/ms4py/clay2py
Hinweis: Bisher ist nur die "core.py" interessant. Die "model.py" ist die automatisch generierte Datei und die "relationship.py" enthält noch Null ausführbaren Code.

Meinungen, Anregungen?
(Fragen von oben sind natürlich trotzdem noch offen)
Zuletzt geändert von ms4py am Sonntag 14. März 2010, 23:55, insgesamt 1-mal geändert.
Benutzeravatar
Käptn Haddock
User
Beiträge: 169
Registriert: Freitag 24. März 2006, 14:27

Leider hat Clay zumindest für Postgres noch einen SQL-Stand von 7.3/7.4. Ich benutze es deshalb mittlerweile nicht mehr zur SQL-Generierung.
Was ich cool fände, wäre neben der SQLAlchemy-Unterstützung auch gleich GeoAlchemy/PostGIS mit zu implementieren. Ich schau mir dein Projekt mal an und finde es eine gute Idee, eventuell kann ich ja in der Richtung auch was beitragen.

Grüssle Uwe
---------------------------------
have a lot of fun!
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Käptn Haddock hat geschrieben:Leider hat Clay zumindest für Postgres noch einen SQL-Stand von 7.3/7.4. Ich benutze es deshalb mittlerweile nicht mehr zur SQL-Generierung.
Wäre ja für meinen Anwendungsfall eigentlich irrelevant.
Käptn Haddock hat geschrieben: Was ich cool fände, wäre neben der SQLAlchemy-Unterstützung auch gleich GeoAlchemy/PostGIS mit zu implementieren. Ich schau mir dein Projekt mal an und finde es eine gute Idee, eventuell kann ich ja in der Richtung auch was beitragen.
Ja, habe mir auch schon überlegt, ein Konzept für verschiedene Ausgabeformate einzuführen.

@mods: Langsam wäre vielleicht ein Verschieben ins "Showcase" oder "Ideen" Forum angebracht :wink:
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Also, ich habe jetzt ein Konzept für sog. "dialects" eingebaut. Damit ist man in der Lage, die geparste Struktur in ein beliebiges Ausgabeformat zu konvertieren.

Auf der Gegenseite ist eventuell ein ähnliches Konzept sinnvoll, also dass es verschiedene Parser gibt und man nicht nur die *.clay Dateien verarbeiten kann. Gibt es hierfür Vorschläge? (am besten mit Beispiel-Inputfile)

Außerdem habe ich jetzt erste Versuche mit dem XML-Parsen (lxml) angestellt. Allerdings erscheinen mir diese noch etwas sehr ungeschickt und umständlich.
Vielleicht könnt ihr euch den Code mal anschauen und mir ein paar Tipps geben. (clay2py.parse)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Django's inspectdb ist sicherlich bekannt, oder?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

jens hat geschrieben:Django's inspectdb ist sicherlich bekannt, oder?
Nein, bis jetzt nicht. Aber das ziehlt ja auch am Anwendungsfall vorbei. Ich will ja kein django Model, sondern Elixir ;)

Selbst wenn, müsste ich einen großen Umweg gehen:
XML-DB-Model > SQL > SQL Execute > Introspect > Python-Model

Außerdem habe ich noch ein paar Gedanken im Hinterkopf für das mir dieses Projekt auch noch nützlich sein kann. Muss aber noch daran feilen, bis ich das in ein anständiges Konzept gepackt habe ;)
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Inzwischen funktioniert die gesamte Toolchain
Clay-Model > clay2py-Model > Elixir-Model
mit dem Beispiel des Elixir-Tutorials aus Abschnitt 4.
( http://elixir.ematia.de/trac/wiki/Tutor ... ationships )

Würde mich sehr über Feedback und Tipps freuen.

Hinweis: Das Model für clay2py ist als UML-Diagramm unter docs zu finden, ist für einen ersten Überblick vermutlich ganz interessant.
Antworten