diff options
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r-- | lib/sqlalchemy/engine.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index dcb14af86..c804680e6 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -492,12 +492,14 @@ class SQLEngine(schema.SchemaEngine): for engine in engines: engine.commit() - def transaction(self, func): + def transaction(self, func, *args, **kwargs): """executes the given function within a transaction boundary. this is a shortcut for - explicitly calling begin() and commit() and optionally rollback() when execptions are raised.""" + explicitly calling begin() and commit() and optionally rollback() when execptions are raised. + The given *args and **kwargs will be passed to the function as well, which could be handy + in constructing decorators.""" self.begin() try: - func() + func(*args, **kwargs) except: self.rollback() raise |