Add functools.partial.__get__ for Python 3.14#15977
Conversation
partial became a descriptor in 3.14 (python/cpython#121027).
This comment has been minimized.
This comment has been minimized.
|
There are failing CI checks. Please have a look at them before we can consider this PR. |
|
Thanks @srittau. Fixed the CI failure: the new |
This comment has been minimized.
This comment has been minimized.
|
@srittau The previous commit resolved the mypy I've reverted both Verified locally: |
|
According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉 |
Fixes #15974.
Python 3.14 made
functools.partiala descriptor (python/cpython#121027), adding a__get__method, but the stub was missing it.This adds
__get__topartial, gated onsys.version_info >= (3, 14), mirroring the existingpartialmethod.__get__in the same file (-> Callable[..., _T]).The runtime signature on 3.14 is
(self, instance, owner=None, /)(positional-only), which the stub matches. When accessed on an instance the descriptor returns a boundmethod; on the class it returns thepartialitself — both areCallable[..., _T].python tests/stubtest_stdlib.py functoolspasses on 3.14 with this change (no new stubtest errors), andtests/mypy_test.py stdlib/functools.pyisucceeds.Disclosure: this change was prepared with the assistance of an AI tool (Claude Code). I verified the behavior against CPython 3.14, ran stubtest and the mypy test locally, and take responsibility for the contribution and will respond to review feedback personally.