From: Mike Bayer Date: Fri, 8 Jun 2012 18:41:32 +0000 (-0400) Subject: - [feature] The 'objects' argument to X-Git-Tag: rel_0_7_8~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5640803635916cde76ae37a38f7b2026d6c8c07;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - [feature] The 'objects' argument to flush() is no longer deprecated, as some valid use cases have been identified. --- diff --git a/CHANGES b/CHANGES index 6cbaf125bf..fcf71433c8 100644 --- a/CHANGES +++ b/CHANGES @@ -24,6 +24,10 @@ CHANGES to [ticket:1892] as this was supposed to be part of that, this is [ticket:2491]. + - [feature] The 'objects' argument to + flush() is no longer deprecated, as some + valid use cases have been identified. + - engine - [bug] Fixed memory leak in C version of result proxy whereby DBAPIs which don't deliver diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index 14778705d0..69bc9248eb 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -1563,20 +1563,15 @@ class Session(object): will create a transaction on the fly that surrounds the entire set of operations int the flush. - objects - Optional; a list or tuple collection. Restricts the flush operation - to only these objects, rather than all pending changes. - Deprecated - this flag prevents the session from properly maintaining - accounting among inter-object relations and can cause invalid results. + :param objects: Optional; restricts the flush operation to operate + only on elements that are in the given collection. + + This feature is for an extremely narrow set of use cases where + particular objects may need to be operated upon before the + full flush() occurs. It is not intended for general use. """ - if objects: - util.warn_deprecated( - "The 'objects' argument to session.flush() is deprecated; " - "Please do not add objects to the session which should not " - "yet be persisted.") - if self._flushing: raise sa_exc.InvalidRequestError("Session is already flushing") diff --git a/test/orm/test_cascade.py b/test/orm/test_cascade.py index 26ea78da1c..ebd1e4476e 100644 --- a/test/orm/test_cascade.py +++ b/test/orm/test_cascade.py @@ -2611,7 +2611,6 @@ class PartialFlushTest(fixtures.MappedTest): Column("parent_id", Integer, ForeignKey("parent.id")) ) - @testing.uses_deprecated() def test_o2m_m2o(self): base, noninh_child = self.tables.base, self.tables.noninh_child @@ -2662,7 +2661,6 @@ class PartialFlushTest(fixtures.MappedTest): assert c2 in sess and c2 not in sess.new assert b1 in sess and b1 in sess.new - @testing.uses_deprecated() def test_circular_sort(self): """test ticket 1306""" diff --git a/test/orm/test_session.py b/test/orm/test_session.py index 79852c7a4a..f6521c9f29 100644 --- a/test/orm/test_session.py +++ b/test/orm/test_session.py @@ -1226,7 +1226,6 @@ class SessionInterface(fixtures.TestBase): Integer, primary_key=True, test_needs_autoincrement=True))) - @testing.uses_deprecated() def _test_instance_guards(self, user_arg): watchdog = set()