-
-
Notifications
You must be signed in to change notification settings - Fork 34k
Open
Labels
3.14bugs and security fixesbugs and security fixes3.15new features, bugs and security fixesnew features, bugs and security fixesdocsDocumentation in the Doc dirDocumentation in the Doc dirtopic-typing
Description
Bug report
Bug description:
This code works in 3.13, but fails in 3.14:
from dataclasses import dataclass
from typing import get_type_hints
@dataclass
class MyHintedClass:
my_attr: int = 1
def __init__(self):
self.hints = get_type_hints(self)
my_class = MyHintedClass()
print(my_class.hints)Failure in 3.14:
~\py\pybug: uv run --python=3.14 python main.py
Traceback (most recent call last):
File "C:\Users\bfrandeen\py\pybug\main.py", line 13, in <module>
my_class = MyHintedClass()
File "C:\Users\bfrandeen\py\pybug\main.py", line 10, in __init__
self.hints = get_type_hints(self)
~~~~~~~~~~~~~~^^^^^^
File "C:\Users\bfrandeen\AppData\Roaming\uv\python\cpython-3.14.2-windows-x86_64-none\Lib\typing.py", line 2401, in get_type_hints
hints = _lazy_annotationlib.get_annotations(obj, format=format)
File "C:\Users\bfrandeen\AppData\Roaming\uv\python\cpython-3.14.2-windows-x86_64-none\Lib\annotationlib.py", line 996, in get_annotations
raise TypeError(f"{obj!r} does not have annotations")
TypeError: MyHintedClass(my_attr=1) does not have annotationsWorks in older versions:
~\py\pybug: uv run --python=3.13 python main.py
Using CPython 3.13.2
Removed virtual environment at: .venv
Creating virtual environment at: .venv
Installed 6 packages in 190ms
{'my_attr': <class 'int'>}CPython versions tested on:
3.14, 3.13
Operating systems tested on:
Windows, Linux
Metadata
Metadata
Assignees
Labels
3.14bugs and security fixesbugs and security fixes3.15new features, bugs and security fixesnew features, bugs and security fixesdocsDocumentation in the Doc dirDocumentation in the Doc dirtopic-typing
Projects
Status
Todo