diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-02-17 20:52:07 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-02-17 20:52:07 -0500 |
commit | 07628e84785b5c0e30bfe974c36c8469e1794336 (patch) | |
tree | f6f95a7c75e2f42af63e8039a279dc92781ab833 /lib/sqlalchemy/orm/attributes.py | |
parent | 74f26d2279dc730f0a8a8cc9a7824465dd465626 (diff) | |
download | sqlalchemy-07628e84785b5c0e30bfe974c36c8469e1794336.tar.gz |
- use easy to recognize names for backref events [ticket:2066]
Diffstat (limited to 'lib/sqlalchemy/orm/attributes.py')
-rw-r--r-- | lib/sqlalchemy/orm/attributes.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 485210d1c..74e85f065 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, |