Ciao
stiamo facendo anche noi un progetto analogo.
Potrebbe essere interessante collaborare. Se lo desideri fatti sentire.
G.
Il giorno 09/nov/06, alle ore 22:43, efphe ha scritto:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ciao a tutti,
mi sono iscritto da una settimana circa in ML con l'intento di
promuovere un modulo python che sto scrivendo, con la speranza di
trovare qualche interessato con cui condividere l'avventura.
Mi e' gia' capitato di parlarne con Eriol.
Il modulo si chiama Mother ed e' un ORM, cioe' un'astrazione per il
linguaggio SQL, come SQLAlchemy o SQLobject.
Utilizza l'ottimo psycopg.
Il punto e' che ha delle caratteristiche peculiari e, spero,
interessanti:
* E' non tipato. Non occorre specificare il tipo dei campi delle
tabelle.
* E' non dichiarato: Mother e' introspettivo e conosce
automaticamente
i campi di ogni tabella. Questa grazie a un'inizializzazione,
automatica, che viene eseguita una tantum.
* Ogni classe puo' ottenere, senza necessita' di definizioni, i
metodi
per gestire automaticamente Figli, Relazioni e Join.
* Connessione al DB persistente.
* Un ottimo logger (speaker.py), che permette di loggare tramite
syslog o su stdout.
Per il momento solo postgres e' supportato, ma l'esclusiva mi attrae
quasi :)
Mi chiedo se non ci sia interesse da parte della comunita' italiana
Python ad adottare il progetto, trasformandlo magari in una fucina
attraverso la quale si possa prima di tutto divertirsi e imparare, ma
anche portare avanti un progetto che potrebbe diventare piu'
importante.
Per questo sono a vostra disposizione.
Al momento il codice e' accessibile tramite svn, (c'e' anche un
Howto):
$ svn co svn://siddharta.efphe.net/mother mother
Spero di non avervi annoiato troppo.
In seguito riporto qualche esempio (in verita' si tratta solo di
qualche
comando minimale) di utlizzo, per chiarire meglio le
caratteristiche che ho cercato di descrivervi.
Ciao e buon lavoro
- --
efphe
#
## Esempi, ricorda che i tipi non contano...uso uno pseudo SQL
#
CREATE TABLE ABC (a,b,c);
CREATE TABLE DEF (d,e,f);
CREATE TABLE AD (a,d, a foreign key (ABC.a),d foreign key(DEF.d))
MyAbc=ClsAbc(dict(a=1,b='ciao mondo',c=27))
MyAbc.insert()
MyDef=ClsDef(dict(d=2,e=78,f=42))
MyDef.insert()
# Ora chiamo un metodo mai definito, ma automaticamente
# creato: crea un record in AD, mettendo in relazione
# Abc con Def
MyAbc.assignDef(MyDef)
# Ora voglio ottenere tutti i record relazionati:
# il metodo "joinDef()" e' gratuito e non occorre
# definirlo
MyAbc=ClsAbc(dict(a=1))
MyDef_list= MyAbc.joinDef()
# oppure
MyDef_list= MyAbc.joinDef(filter="WHERE e=78")
# oppure
MyDef_list= MyAbc.joinDef(filter={e:78})
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFU6EQi7obm7aBjHcRAmRTAJ0Q+x1UDFfBcZ3BT8GHnOwFWYm7TwCfQTuZ
wunl26ayJloYroCiLKFmLEY=
=25jM
-----END PGP SIGNATURE-----
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python