From b8b4785cde00cbca1d3d76c461e742f212e16248 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Thu, 30 May 2013 15:11:22 +0300 Subject: [PATCH] Moved proxy dict listener to global scope --- CHANGES.rst | 6 ++++++ setup.py | 2 +- sqlalchemy_utils/proxy_dict.py | 12 ++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 1bfdc7c..5ab00d6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,12 @@ Changelog Here you can see the full list of changes between each SQLAlchemy-Utils release. +0.12.3 (2013-05-30) +^^^^^^^^^^^^^^^^^^^ + +- Proxy dict expiration listener from function scope to global scope + + 0.12.2 (2013-05-29) ^^^^^^^^^^^^^^^^^^^ diff --git a/setup.py b/setup.py index bd47d7c..f6735ec 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ class PyTest(Command): setup( name='SQLAlchemy-Utils', - version='0.12.2', + version='0.12.3', url='https://github.com/kvesteri/sqlalchemy-utils', license='BSD', author='Konsta Vesterinen', diff --git a/sqlalchemy_utils/proxy_dict.py b/sqlalchemy_utils/proxy_dict.py index 17d79d2..6b33fef 100644 --- a/sqlalchemy_utils/proxy_dict.py +++ b/sqlalchemy_utils/proxy_dict.py @@ -59,10 +59,6 @@ def proxy_dict(parent, collection_name, mapping_attr): try: parent._proxy_dicts except AttributeError: - def expire_proxy_dicts(target, context): - target._proxy_dicts = {} - - sa.event.listen(parent.__class__, 'expire', expire_proxy_dicts) parent._proxy_dicts = {} try: @@ -74,3 +70,11 @@ def proxy_dict(parent, collection_name, mapping_attr): mapping_attr ) return parent._proxy_dicts[collection_name] + + +def expire_proxy_dicts(target, context): + if hasattr(target, '_proxy_dicts'): + target._proxy_dicts = {} + + +sa.event.listen(sa.orm.mapper, 'expire', expire_proxy_dicts)