https://github.com/python/cpython/commit/8f33c7ac17fe4c34ed3d051de17cfb702170874c commit: 8f33c7ac17fe4c34ed3d051de17cfb702170874c branch: 3.13 author: Pieter Eendebak <pieter.eende...@gmail.com> committer: serhiy-storchaka <storch...@gmail.com> date: 2025-02-17T11:12:24+02:00 summary:
[3.13] gh-127750: Fix functools.singledispatchmethod() (GH-130029) Revert gh-107148 files: A Misc/NEWS.d/next/Library/2025-02-12-09-48-25.gh-issue-127750.ibhIZg.rst M Lib/functools.py diff --git a/Lib/functools.py b/Lib/functools.py index 2bc5053bd1b53f..4c1175b815d6ec 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -958,9 +958,6 @@ def __init__(self, func): self.dispatcher = singledispatch(func) self.func = func - import weakref # see comment in singledispatch function - self._method_cache = weakref.WeakKeyDictionary() - def register(self, cls, method=None): """generic_method.register(cls, func) -> func @@ -969,16 +966,6 @@ def register(self, cls, method=None): return self.dispatcher.register(cls, func=method) def __get__(self, obj, cls=None): - if self._method_cache is not None: - try: - _method = self._method_cache[obj] - except TypeError: - self._method_cache = None - except KeyError: - pass - else: - return _method - dispatch = self.dispatcher.dispatch funcname = getattr(self.func, '__name__', 'singledispatchmethod method') def _method(*args, **kwargs): @@ -991,9 +978,6 @@ def _method(*args, **kwargs): _method.register = self.register update_wrapper(_method, self.func) - if self._method_cache is not None: - self._method_cache[obj] = _method - return _method @property diff --git a/Misc/NEWS.d/next/Library/2025-02-12-09-48-25.gh-issue-127750.ibhIZg.rst b/Misc/NEWS.d/next/Library/2025-02-12-09-48-25.gh-issue-127750.ibhIZg.rst new file mode 100644 index 00000000000000..a82805454e45f3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-02-12-09-48-25.gh-issue-127750.ibhIZg.rst @@ -0,0 +1,2 @@ +Remove broken :func:`functools.singledispatchmethod` caching introduced in +:gh:`85160`. _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com