diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-08-29 11:22:46 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-08-29 11:22:46 -0400 |
commit | 1149197a36f01dae1f8da82b7cfb73a7777e7a4a (patch) | |
tree | 3b2cacd6c9fc75c51862eb886420036b7cd08c47 /lib/sqlalchemy/interfaces.py | |
parent | a635750213c346a895e417ae8e629ce924d557e8 (diff) | |
download | sqlalchemy-1149197a36f01dae1f8da82b7cfb73a7777e7a4a.tar.gz |
- moved out to on_before_execute, on_after_execute. not much option here,
need both forms, the wrapping thing is just silly
- fixed the listen() to not re-wrap continuously.
Diffstat (limited to 'lib/sqlalchemy/interfaces.py')
-rw-r--r-- | lib/sqlalchemy/interfaces.py | 70 |
1 files changed, 49 insertions, 21 deletions
diff --git a/lib/sqlalchemy/interfaces.py b/lib/sqlalchemy/interfaces.py index 1cceff0b4..2c16935ce 100644 --- a/lib/sqlalchemy/interfaces.py +++ b/lib/sqlalchemy/interfaces.py @@ -174,41 +174,69 @@ class ConnectionProxy(object): @classmethod def _adapt_listener(cls, self, listener): - - def adapt_execute(conn, clauseelement, *multiparams, **params): + + def adapt_execute(conn, clauseelement, multiparams, params): + def execute_wrapper(clauseelement, *multiparams, **params): return clauseelement, multiparams, params - return listener.execute(conn, execute_wrapper, clauseelement, *multiparams, **params) - - event.listen(adapt_execute, 'on_execute', self) + + return listener.execute(conn, execute_wrapper, + clauseelement, *multiparams, + **params) + + event.listen(adapt_execute, 'on_before_execute', self) def adapt_cursor_execute(conn, cursor, statement, - parameters, context, executemany): - def execute_wrapper(cursor, statement, parameters, context): + parameters,context, executemany, ): + + def execute_wrapper( + cursor, + statement, + parameters, + context, + ): return statement, parameters - return listener.cursor_execute(execute_wrapper, cursor, statement, - parameters, context, executemany) - - event.listen(adapt_cursor_execute, 'on_cursor_execute', self) + + return listener.cursor_execute( + execute_wrapper, + cursor, + statement, + parameters, + context, + executemany, + ) + + event.listen(adapt_cursor_execute, 'on_before_cursor_execute', + self) def do_nothing_callback(*arg, **kw): pass - + def adapt_listener(fn): + def go(conn, *arg, **kw): fn(conn, do_nothing_callback, *arg, **kw) + return util.update_wrapper(go, fn) - + event.listen(adapt_listener(listener.begin), 'on_begin', self) - event.listen(adapt_listener(listener.rollback), 'on_rollback', self) + event.listen(adapt_listener(listener.rollback), 'on_rollback', + self) event.listen(adapt_listener(listener.commit), 'on_commit', self) - event.listen(adapt_listener(listener.savepoint), 'on_savepoint', self) - event.listen(adapt_listener(listener.rollback_savepoint), 'on_rollback_savepoint', self) - event.listen(adapt_listener(listener.release_savepoint), 'on_release_savepoint', self) - event.listen(adapt_listener(listener.begin_twophase), 'on_begin_twophase', self) - event.listen(adapt_listener(listener.prepare_twophase), 'on_prepare_twophase', self) - event.listen(adapt_listener(listener.rollback_twophase), 'on_rollback_twophase', self) - event.listen(adapt_listener(listener.commit_twophase), 'on_commit_twophase', self) + event.listen(adapt_listener(listener.savepoint), 'on_savepoint' + , self) + event.listen(adapt_listener(listener.rollback_savepoint), + 'on_rollback_savepoint', self) + event.listen(adapt_listener(listener.release_savepoint), + 'on_release_savepoint', self) + event.listen(adapt_listener(listener.begin_twophase), + 'on_begin_twophase', self) + event.listen(adapt_listener(listener.prepare_twophase), + 'on_prepare_twophase', self) + event.listen(adapt_listener(listener.rollback_twophase), + 'on_rollback_twophase', self) + event.listen(adapt_listener(listener.commit_twophase), + 'on_commit_twophase', self) def execute(self, conn, execute, clauseelement, *multiparams, **params): |