TypedDict doesn't support Union[Literal] as key "string literal"
Đang mở
Chưa có ai nhận issue này.
bug
priority-2-low
topic-literal-types
topic-typed-dict
topic-union-types
- Ngôn ngữ chính
- Python
- Star
- 20.6k
- Fork
- 3.3k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Possibly bug.
Related: https://github.com/python/mypy/issues/7644
Reproducible example
from typing_extensions import Literal, TypedDict
class TDict(TypedDict):
KEY1: int
KEY2: int
d1: TDict = {'KEY1': 1, 'KEY2': 2}
key2: Literal['KEY1']
d2: TDict = {key2: 1, 'KEY2': 2}
key3: Literal['KEY1', 'KEY2']
d3: TDict = {key3: 1, 'KEY2': 2} # error: Expected TypedDict key to be string literal
I use mypy 0.740 and python3.6
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.
Hướng nghiên cứu
Bắt đầu bằng cách chạy các ví dụ TypedDict và Literal được cung cấp với mypy 0.740, tập trung vào phép gán d3 báo lỗi “Expected TypedDict key to be string literal.”. Được xem là hoàn tất khi trường hợp có thể tái hiện với khóa là một union của các literal được chấp nhận nhất quán như trường hợp chỉ có một literal.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- devtools
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100