diff --git a/CHANGES.rst b/CHANGES.rst index b692d3e4..9c707407 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +v4.10.2 +======= + +* #365 and bpo-46546: Avoid leaking ``method_name`` in + ``DeprecatedList``. + v4.10.1 ======= diff --git a/importlib_metadata/__init__.py b/importlib_metadata/__init__.py index 7713e1e0..3a62d56b 100644 --- a/importlib_metadata/__init__.py +++ b/importlib_metadata/__init__.py @@ -295,21 +295,15 @@ def wrapped(self, *args, **kwargs): self._warn() return getattr(super(), method_name)(*args, **kwargs) - return wrapped - - for method_name in [ - '__setitem__', - '__delitem__', - 'append', - 'reverse', - 'extend', - 'pop', - 'remove', - '__iadd__', - 'insert', - 'sort', - ]: - locals()[method_name] = _wrap_deprecated_method(method_name) + return method_name, wrapped + + locals().update( + map( + _wrap_deprecated_method, + '__setitem__ __delitem__ append reverse extend pop remove ' + '__iadd__ insert sort'.split(), + ) + ) def __add__(self, other): if not isinstance(other, tuple):