summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2020-09-22 09:00:44 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2020-09-22 09:00:44 -0400
commit468766d6bac1e54a59c5f7d7167467dbc7d29a82 (patch)
tree808780d5ce773e9e217897f45065043c9d6c6bc2
parente973fd5d5712b7212624b329015633fecfd1a25c (diff)
downloadsqlalchemy-468766d6bac1e54a59c5f7d7167467dbc7d29a82.tar.gz
Expect collected weak reference in ORM listener
CI is showing that this listener may be triggered when the target, a mapped class, has been garbage collected. I'm not able to reproduce this locally. Change-Id: Iad96c088a9a3dc28c4bcd716e293c03d3b312efd
-rw-r--r--lib/sqlalchemy/orm/events.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/events.py b/lib/sqlalchemy/orm/events.py
index ec907c63e..0349c445c 100644
--- a/lib/sqlalchemy/orm/events.py
+++ b/lib/sqlalchemy/orm/events.py
@@ -67,6 +67,9 @@ class InstrumentationEvents(event.Events):
def listen(target_cls, *arg):
listen_cls = target()
+ if listen_cls is None:
+ return None
+
if propagate and issubclass(target_cls, listen_cls):
return fn(target_cls, *arg)
elif not propagate and target_cls is listen_cls: