2da62a16c3
For now, pep8 check is only run for some files known to be clean, we should clean the rest and enable pep8 check for all files then.
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
__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
|