]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- use easy to recognize names for backref events [ticket:2066]
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 18 Feb 2011 01:52:07 +0000 (20:52 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 18 Feb 2011 01:52:07 +0000 (20:52 -0500)
lib/sqlalchemy/orm/attributes.py

index 485210d1cfda94c3d17f382c25e9a04f3bc0a120..74e85f0650aa12ed97ee96ffe9f16c695aedbdee 100644 (file)
@@ -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,