Some string `in` `Union[bytes, str]` does not produce an error
Chưa có ai nhận issue này.
- 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ả
Given the following code
from typing import Union
foo: Union[str, bytes]
"zoo" in foo # no error
"zoo" + foo # err: Unsupported operand types for + ("str" and "bytes")
I would have expected that mypy complains about str not compatible with bytes just like it does for the + operand.
I've tried the current typeshed version at 3d140160 because it just looked like there was a change here in Oct 2020 after mypy 0.790.
For example it now defines for class(str):
def __contains__(self, o: Union[str, str]) -> bool: ... # type: ignore
...
def __iter__(self) -> Iterator[str]: ...
(__contains__ does not trigger here but its Union[str, str] is weird.)
Your Environment
mypy 0.790
python 3.8
builtin typeshed and @3d140160
Win 10
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 tái hiện ví dụ Union[str, bytes] với mypy 0.790, sau đó kiểm tra các định nghĩa trong typeshed cho str.contains và cách xử lý Union liên quan. So sánh các chẩn đoán cho "zoo" in foo và "zoo" + foo; công việc được xem là hoàn tất khi biểu thức kiểm tra chứa báo cáo trường hợp str/bytes không tương thích một cách nhất quán với biểu thức phép cộng.
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
- 35/100