From: Mike Bayer Date: Fri, 18 Feb 2011 01:52:07 +0000 (-0500) Subject: - use easy to recognize names for backref events [ticket:2066] X-Git-Tag: rel_0_7b2~1^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07628e84785b5c0e30bfe974c36c8469e1794336;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - use easy to recognize names for backref events [ticket:2066] --- diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 485210d1cf..74e85f0650 100644 --- a/lib/sqlalchemy/orm/attributes.py +++ b/lib/sqlalchemy/orm/attributes.py @@ -903,7 +903,9 @@ class CollectionAttributeImpl(AttributeImpl): def backref_listeners(attribute, key, uselist): """Apply listeners to synchronize a two-way relationship.""" - def set_(state, child, oldchild, initiator): + # use easily recognizable names for stack traces + + def emit_backref_from_scalar_set_event(state, child, oldchild, initiator): if oldchild is child: return child @@ -932,7 +934,7 @@ def backref_listeners(attribute, key, uselist): passive=PASSIVE_NO_FETCH) return child - def append(state, child, initiator): + def emit_backref_from_collection_append_event(state, child, initiator): child_state, child_dict = instance_state(child), \ instance_dict(child) child_state.manager[key].impl.append( @@ -943,7 +945,7 @@ def backref_listeners(attribute, key, uselist): passive=PASSIVE_NO_FETCH) return child - def remove(state, child, initiator): + def emit_backref_from_collection_remove_event(state, child, initiator): if child is not None: child_state, child_dict = instance_state(child),\ instance_dict(child) @@ -955,11 +957,17 @@ def backref_listeners(attribute, key, uselist): passive=PASSIVE_NO_FETCH) if uselist: - event.listen(attribute, "append", append, retval=True, raw=True) + event.listen(attribute, "append", + emit_backref_from_collection_append_event, + retval=True, raw=True) else: - event.listen(attribute, "set", set_, retval=True, raw=True) + event.listen(attribute, "set", + emit_backref_from_scalar_set_event, + retval=True, raw=True) # TODO: need coverage in test/orm/ of remove event - event.listen(attribute, "remove", remove, retval=True, raw=True) + event.listen(attribute, "remove", + emit_backref_from_collection_remove_event, + retval=True, raw=True) class History(tuple): """A 3-tuple of added, unchanged and deleted values,