johnslavik · GitHub

Bug report

Bug description:

import annotationlib
def f(self, *args: ' *tuple[str, int]') -> None: ...
print(annotationlib.get_annotations(f, eval_str=True))

Expected:

{'args': *tuple[str, int], 'return': None}

Got:

Traceback (most recent call last):
  File "/home/bswck/Python/cpython/t.py", line 5, in <module>
    print(annotationlib.get_annotations(f, eval_str=True))
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/home/bswck/Python/cpython/Lib/annotationlib.py", line 1058, in get_annotations
    else eval(_rewrite_star_unpack(value), globals, locals)
         ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 1
    *tuple[str, int]
    ^
SyntaxError: invalid syntax

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs

Read the original on github.com ↗