Dittmar, Daniel wrote:
In the end, I think it's more efficient to implement such
a function in an abstraction layer which is maintained
independently from the DB-API database modules. Otherwise,
you'd have to wait for all modules to implement the change
and that can take a few years.


Perhaps the abstraction layer should look for <module>.uri_connect. If
this function cannot be found, then a database specific translation of
uri to connect () is used. Otherwise, changes to the driver specific
connect would also require changes to the abstraction layer connect.

This is probably what I'd end up doing -- obviously I can't change the code that's out there, and I want to use this relatively recently. Mostly I'm just hoping for a convention that other's can follow, until this transitional module is no longer necessary.


An alternative would be to always use uri_connect. In addition, a set of
modules is provided that implements this uri translation for older
drivers. The user would then have to choose between the real module or
the translation module.

That seems awkward, but I suppose doable. That translating module would also have to include the rest of the required functions if it was to be a DB-API module. Monkey-patching in a uri_connect function seems easier, if we're going down that route. Hmm... except you can't monkey patch something in lazily -- i.e., wait until the user actually imports MySQLdb and then insert the function.


--
Ian Bicking  /  [EMAIL PROTECTED]  /  http://blog.ianbicking.org
_______________________________________________
DB-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to