[Python] Mother

Giovanni Porcari giovanni.porcari a softwell.it
Gio 9 Nov 2006 23:39:11 CET


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 a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



Maggiori informazioni sulla lista Python