[Twisted-Python] SQLAlchemy integration

Manlio Perillo manlio_perillo at libero.it
Thu Nov 23 04:33:50 EST 2006


glyph at divmod.com ha scritto:
> On 22 Nov, 11:19 am, manlio_perillo at libero.it wrote:
> 
>>I'm writing some modules for integrating SQLALchemy with Twisted.
>>The idea is to write a custom Pool, EngineStrategy and Engine for Twisted.
> 
>>I would like to know if there are some other people working on this
>>(excluding sAsync)
> 
> Is there really a good reason for having *two* different efforts to
> integrate Twisted with a single other library?  Surely it must be
> possible to collaborate somehow.
> 

I'm tring to offer an interface compatible with the twisted adbapi.
Moreover my API is very different from sAsync:


# global_connect will bind the engine to the global default_metadata
engine = Engine(...., global_connect=True)

users = Table("users, column(.....))
users.create().addCallback(...)


select([users], ...).addCallback()

engine.transact(callable)


This works because Engine implements the Connectable interface.
There is an issue here: if a query/table is bound to this Engine, every
query will run in a separate thread; this is not what one want when
inside a transaction).



More complex is the integration with sqlalchemy session handling.

As an example with Nevow:
- a thread retrieve an object from the database
- another thread modify the object


It would be much simple if the two operations occur in the same thread
(this require to run renderHTTP or locateChild in a separate thread but
I ignore if this is safe).



Regards  Manlio Perillo




More information about the Twisted-Python mailing list