diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-09-03 12:31:16 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-09-03 12:31:16 -0400 |
| commit | 47f56ac4990c7c3e6a020a837e91e39f41adf39e (patch) | |
| tree | 87a911cf8a5b9d11ec6ef6bb0b4af122f3eca57e /lib/sqlalchemy/event.py | |
| parent | 6e9d62b46cc66dc674f86e25fee40fd36bf0d4c8 (diff) | |
| download | sqlalchemy-47f56ac4990c7c3e6a020a837e91e39f41adf39e.tar.gz | |
- get active_history to work, move attribute events into module-level classes
Diffstat (limited to 'lib/sqlalchemy/event.py')
| -rw-r--r-- | lib/sqlalchemy/event.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/sqlalchemy/event.py b/lib/sqlalchemy/event.py index de3955751..c1bc54b17 100644 --- a/lib/sqlalchemy/event.py +++ b/lib/sqlalchemy/event.py @@ -51,10 +51,15 @@ class _Dispatch(object): return (getattr(self, k) for k in dir(self) if k.startswith("on_")) def update(self, other): - """Populate from the listeners in another :class:`Events` object.""" + """Populate from the listeners in another :class:`_Dispatch` + object.""" for ls in other.descriptors: - getattr(self, ls.name).listeners.extend(ls.listeners) + existing_listeners = getattr(self, ls.name).listeners + existing_listener_set = set(existing_listeners) + existing_listeners.extend([l for l + in ls.listeners + if l not in existing_listener_set]) class _EventMeta(type): """Intercept new Event subclasses and create |
