From a590e5db8aece17e93371bca290d2e205528e34c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 18 Dec 2010 13:05:20 -0500 Subject: [PATCH] trivial inlinings --- lib/sqlalchemy/orm/properties.py | 3 +-- lib/sqlalchemy/orm/session.py | 1 + lib/sqlalchemy/orm/unitofwork.py | 9 ++++----- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 1b144ea74e..da6d309e02 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -821,8 +821,7 @@ class RelationshipProperty(StrategizedProperty): dest_dict, obj, None) def cascade_iterator(self, type_, state, dict_, visited_states, halt_on=None): - if not type_ in self.cascade: - return + #assert type_ in self.cascade # only actively lazy load on the 'delete' cascade if type_ != 'delete' or self.passive_deletes: diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index ba1a38bb9f..a3714bc7e6 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -1136,6 +1136,7 @@ class Session(object): # grab the cascades before adding the item to the deleted list # so that autoflush does not delete the item + # the strong reference to the instance itself is significant here cascade_states = list(_cascade_state_iterator('delete', state)) self._deleted[state] = state.obj() diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py index 17b73e5f98..ba43b13592 100644 --- a/lib/sqlalchemy/orm/unitofwork.py +++ b/lib/sqlalchemy/orm/unitofwork.py @@ -16,7 +16,6 @@ from sqlalchemy import util from sqlalchemy.util import topological from sqlalchemy.orm import attributes, interfaces from sqlalchemy.orm import util as mapperutil -from sqlalchemy.orm.util import _state_mapper session = util.importlater("sqlalchemy.orm", "session") class UOWEventHandler(interfaces.AttributeExtension): @@ -37,7 +36,7 @@ class UOWEventHandler(interfaces.AttributeExtension): sess = session._state_session(state) if sess: - prop = _state_mapper(state)._props[self.key] + prop = state.manager.mapper._props[self.key] item_state = attributes.instance_state(item) if prop.cascade.save_update and \ (prop.cascade_backrefs or self.key == initiator.key) and \ @@ -48,7 +47,7 @@ class UOWEventHandler(interfaces.AttributeExtension): def remove(self, state, item, initiator): sess = session._state_session(state) if sess: - prop = _state_mapper(state)._props[self.key] + prop = state.manager.mapper._props[self.key] # expunge pending orphans item_state = attributes.instance_state(item) if prop.cascade.delete_orphan and \ @@ -64,7 +63,7 @@ class UOWEventHandler(interfaces.AttributeExtension): sess = session._state_session(state) if sess: - prop = _state_mapper(state)._props[self.key] + prop = state.manager.mapper._props[self.key] if newvalue is not None: newvalue_state = attributes.instance_state(newvalue) if prop.cascade.save_update and \ @@ -204,7 +203,7 @@ class UOWTransaction(object): return False if state not in self.states: - mapper = _state_mapper(state) + mapper = state.manager.mapper if mapper not in self.mappers: mapper._per_mapper_flush_actions(self) -- 2.47.2