ilevkivskyi / typing_inspect

Runtime inspection utilities for Python typing module
MIT License
349 stars 35 forks source link

`get_parameters` throws exception with non-indexed types from `typing` on python 3.10 #93

Closed jamesrobson-secondmind closed 1 year ago

jamesrobson-secondmind commented 1 year ago

python 3.7

>>> from typing import List
>>> from typing_inspect import get_parameters
>>> get_parameters(List)
(~T,)

python 3.10.6

>>> from typing import List
>>> from typing_inspect import get_parameters
>>> get_parameters(List)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/james.robson/code/pio_utilities/.venv/lib/python3.10/site-packages/typing_inspect.py", line 414, in get_parameters
    return tp.__parameters__
  File "/usr/lib/python3.10/typing.py", line 984, in __getattr__
    raise AttributeError(attr)
AttributeError: __parameters__

When you don't provide type parameters the typing classes lacks the __parameters__, _paramspec_tvars and _typevar_types members.

ilevkivskyi commented 1 year ago

Yes, this looks like a bug. PRs are welcome :-)