|
- __MySQLdb = __import__('MySQLdb')
-
- __all__ = __MySQLdb.__all__
- __patched__ = ["connect", "Connect", 'Connection', 'connections']
-
- from eventlet.patcher import slurp_properties
- slurp_properties(
- __MySQLdb, globals(),
- ignore=__patched__, srckeys=dir(__MySQLdb))
-
- from eventlet import tpool
-
- __orig_connections = __import__('MySQLdb.connections').connections
-
-
- def Connection(*args, **kw):
- conn = tpool.execute(__orig_connections.Connection, *args, **kw)
- return tpool.Proxy(conn, autowrap_names=('cursor',))
- connect = Connect = Connection
-
-
- # replicate the MySQLdb.connections module but with a tpooled Connection factory
- class MySQLdbConnectionsModule(object):
- pass
-
- connections = MySQLdbConnectionsModule()
- for var in dir(__orig_connections):
- if not var.startswith('__'):
- setattr(connections, var, getattr(__orig_connections, var))
- connections.Connection = Connection
-
- cursors = __import__('MySQLdb.cursors').cursors
- converters = __import__('MySQLdb.converters').converters
-
- # TODO support instantiating cursors.FooCursor objects directly
- # TODO though this is a low priority, it would be nice if we supported
- # subclassing eventlet.green.MySQLdb.connections.Connection
|