diff options
| author | Jason Kirtland <jek@discorporate.us> | 2008-05-05 17:08:00 +0000 |
|---|---|---|
| committer | Jason Kirtland <jek@discorporate.us> | 2008-05-05 17:08:00 +0000 |
| commit | 71e266f77e75a72281ccae4557af172595546f88 (patch) | |
| tree | b9787857ceba81cd5460313d817889a21a273954 /lib/sqlalchemy | |
| parent | 18d0066f8fdb5cfa06586cb93205c9c1ec5c7c0a (diff) | |
| download | sqlalchemy-71e266f77e75a72281ccae4557af172595546f88.tar.gz | |
Fixed duplicate append event emission on repeated instrumented set.add() operations.
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/orm/collections.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/sqlalchemy/orm/collections.py b/lib/sqlalchemy/orm/collections.py index ae4cb65cd..8067a030f 100644 --- a/lib/sqlalchemy/orm/collections.py +++ b/lib/sqlalchemy/orm/collections.py @@ -1148,7 +1148,8 @@ def _set_decorators(): def add(fn): def add(self, value, _sa_initiator=None): - __set(self, value, _sa_initiator) + if value not in self: + __set(self, value, _sa_initiator) # testlib.pragma exempt:__hash__ fn(self, value) _tidy(add) @@ -1201,8 +1202,7 @@ def _set_decorators(): def update(fn): def update(self, value): for item in value: - if item not in self: - self.add(item) + self.add(item) _tidy(update) return update @@ -1211,8 +1211,7 @@ def _set_decorators(): if sautil.duck_type_collection(value) is not Set: return NotImplemented for item in value: - if item not in self: - self.add(item) + self.add(item) return self _tidy(__ior__) return __ior__ |
