Mypy treating type of final class variable in dataclass as Any
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 68/100
Hướng nghiên cứu
Bắt đầu với trình tái hiện tối thiểu trong issue hoặc liên kết mypy-play của nó, sau đó theo dõi cách quá trình xử lý dataclasses xử lý ClassVar[Final[...]] khi chạy reveal_type. Công việc được xem là hoàn tất khi mypy báo cáo dict[type[Bar], Foo] cho Foo.cv và hành vi này được bao phủ bởi một regression test.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Bug Report
from dataclasses import dataclass
from typing import ClassVar, Final, reveal_type
class Bar: pass
@dataclass
class Foo:
cv: ClassVar[Final[dict[type[Bar], Foo]]] = {}
reveal_type(Foo.cv)
$ mypy test.py
test.py:10: note: Revealed type is "Any"
Success: no issues found in 1 source file
The correct type of Foo.cv is builtins.dict[type[Bar], Foo].
To Reproduce
https://mypy-play.net/?mypy=latest&python=3.14&gist=2fad4ef5fded90ecaeb0f1d1e59d882a
Expected Behavior
reveal_type should report the correct type for the class variable.
Actual Behavior
reveal_type showed incorrect type (Any).
Your Environment
- Fedora 44
python3-mypy-1.18.2-4.fc44.noarch(reproducible with Mypy 2.3.1)python3-3.14.6-1.fc44.x86_64- No config files used
- Ngôn ngữ chính
- Python
- Star
- 20.6k
- Fork
- 3.3k
- Merge trung bình
- 1 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 59
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của python/mypy
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
bug topic-configuration topic-error-reporting
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
bug topic-attrs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Issue tương tự
-
bug confirmed issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
open-webui/open-webui#30750 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100