Closed as not planned
Description
Bug report
Bug description:
MRE:
import inspect
import functools
from unittest import TestCase
import unittest.mock as mk
class TestIsinstance(TestCase):
def test_mk(self):
def foo(): pass
with mk.patch.object(functools, "partial", autospec=True):
inspect.signature(foo)
fails with
E
======================================================================
ERROR: test_mk (test.TestIsinstance.test_mk)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/private/tmp/reprod/test.py", line 10, in test_mk
inspect.signature(foo)
~~~~~~~~~~~~~~~~~^^^^^
File "/Users/clm/.pyenv/versions/3.13.0b3/lib/python3.13/inspect.py", line 3333, in signature
return Signature.from_callable(obj, follow_wrapped=follow_wrapped,
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
globals=globals, locals=locals, eval_str=eval_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/clm/.pyenv/versions/3.13.0b3/lib/python3.13/inspect.py", line 3059, in from_callable
return _signature_from_callable(obj, sigcls=cls,
follow_wrapper_chains=follow_wrapped,
globals=globals, locals=locals, eval_str=eval_str)
File "/Users/clm/.pyenv/versions/3.13.0b3/lib/python3.13/inspect.py", line 2559, in _signature_from_callable
if isinstance(obj, functools.partial):
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: isinstance() arg 2 must be a type, a tuple of types, or a union
----------------------------------------------------------------------
Ran 1 test in 0.002s
FAILED (errors=1)
reproduces locally and in CI: example logs
this test case is adapted from a real life application in astropy
's test suite, which has been stable since at least Python 3.8
CPython versions tested on:
3.8, 3.9, 3.10, 3.11, 3.12, 3.13
Operating systems tested on:
Linux, macOS, Windows