diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2019-01-13 02:46:08 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2019-01-13 02:46:08 +0000 |
commit | b2cf93089370d9403fd1f410f204e6ad1ff42d9c (patch) | |
tree | ac6c9fdfc50482b3281108b7f9cb1be71816fc70 /lib/sqlalchemy/orm/session.py | |
parent | 8138e70d63216381b9b3cb7a64750a3add154ec6 (diff) | |
parent | 8fac612ec0de7da6dc6f5153833f4430a80d2f4c (diff) | |
download | sqlalchemy-b2cf93089370d9403fd1f410f204e6ad1ff42d9c.tar.gz |
Merge "Add standalone orm.close_all method and deprecate SessionMaker.close_all"
Diffstat (limited to 'lib/sqlalchemy/orm/session.py')
-rw-r--r-- | lib/sqlalchemy/orm/session.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index 1d405e3fa..e1a1e5577 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -59,11 +59,16 @@ class _SessionClassMethods(object): """Class-level methods for :class:`.Session`, :class:`.sessionmaker`.""" @classmethod + @util.deprecated( + "1.3", + "The :meth:`.Session.close_all` method is deprecated and will be " + "removed in a future release. Please refer to " + ":func:`.session.close_all_sessions`.", + ) def close_all(cls): """Close *all* sessions in memory.""" - for sess in _sessions.values(): - sess.close() + close_all_sessions() @classmethod @util.dependencies("sqlalchemy.orm.util") @@ -3220,6 +3225,24 @@ class sessionmaker(_SessionClassMethods): ) +def close_all_sessions(): + """Close all sessions in memory. + + This function consults a global registry of all :class:`.Session` objects + and calls :meth:`.Session.close` on them, which resets them to a clean + state. + + This function is not for general use but may be useful for test suites + within the teardown scheme. + + .. versionadded:: 1.3 + + """ + + for sess in _sessions.values(): + sess.close() + + def make_transient(instance): """Alter the state of the given instance so that it is :term:`transient`. |