False positive Argument 2 to "get" of "Message" has incompatible type "str"; expected "bool"
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu với repro Python tối thiểu và chữ ký Message.get được hiển thị trong typeshed, sử dụng mypy 0.711, Python 3.6.7 và các cờ mypy đã liệt kê. So sánh hai false positive được báo cáo với hành vi dự kiến là không có lỗi, sau đó lần theo đường dẫn kiểm tra kiểu xử lý lệnh gọi get và biểu thức boolean.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Note: I wasn't sure what a proper title was for this issue, so I chose one that is specific to the issue at hand. I checked typeshed, it looks like the issue is about mypy, not typeshed. I wouldn't be surprised if an issue already existed for this false positive.
Minimal repro:
assert isinstance(email, EmailMessage)
# Fine
r1 = email.get("List-Id", "")
# Fine
r2 = email.get("List-Id", "") or email.get("List-Unsubscribe", "")
# Fine
r3 = bool(email.get("List-Id", "") or email.get("List-Unsubscribe", ""))
# FAILS: Argument 2 to "get" of "Message" has incompatible type "str"; expected "bool"
r4 = bool(
email.get("Auto-Submitted", "") in ("no", "")
or email.get("List-Unsubscribe", "")
)
# FAILS: Argument 2 to "get" of "Message" has incompatible type "str"; expected "bool"
r5 = email.get("Auto-Submitted", "") in ("no", "") or email.get(
"List-Unsubscribe", ""
)
Both are false positives.
Typeshed:
_T = TypeVar('_T')
class Message:
...
def get(self, name: str, failobj: _T = ...) -> Union[_HeaderType, _T]: ...
-
What is the actual behavior/output?
Argument 2 to "get" of "Message" has incompatible type "str"; expected "bool" -
What is the behavior/output you expect? No error.
-
What are the versions of mypy and Python you are using? mypy 0.711, Python 3.6.7
Do you see the same issue after installing mypy from Git master? haven't tried it but since 0.711 is fairly recent... -
What are the mypy flags you are using? (For example --strict-optional)
[mypy]
ignore_missing_imports = True
follow_imports = skip
check_untyped_defs = False
strict_equality = True
disallow_incomplete_defs = True
- Ngôn ngữ chính
- Python
- Star
- 20.6k
- Fork
- 3.3k
- Merge trung bình
- 1 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 54
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 75/100
-
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
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
bancolombia/sentinel#23 ·
-
test md Đang mởCI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100