mypy does not catch string formatting errors in `logging.log` that are listed - not interpolated
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 bằng cách tái hiện các trường hợp đã được báo cáo với mypy-1.15.0, tập trung vào các điểm truy cập logging.log và logger.critical rồi so sánh chúng với print. Theo dõi cách các lệnh gọi logging được phân tích, sau đó bổ sung độ bao phủ để các số lượng đối số định dạng không chính xác được báo cáo mà không từ chối phép nội suy trì hoãn hợp lệ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I could not find the same issue previously reported here, but these concepts are so generic I would not be surprised user-error is the cause of my failed earch.
Bug Report
In the following script, mypy correctly identifies a string formatting error in case B, which uses print
Cases E and F will both raise exceptions and are not caught.
To Reproduce
import logging
log = logging.getLogger(__name__)
a = "1"
b = "2"
print("print.passes A (%s) %s" % (a, b))
try:
print("print.fail B [mypy catches] (%s) %s" % (a, ))
except TypeError:
pass
log.critical("log.passes C (%s) %s" % (a, b))
log.critical("log.passes D (%s) %s" , a, b)
log.critical("log.fail E (%s) %s" , (a, b))
log.critical("log.fail F (%s) %s" , a)
Expected Behavior
I expected mypy to catch the string formatting error here.
I understand logging.log works differently and delays the interpolation. it would be nice if mypy could catch the number of arguments passed to logging to hint at a possible error or pass
Actual Behavior
mypy does not catch this
Your Environment
mypy-1.15.0
- 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 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
OpenHands/extensions#626 · 1 bình luận ·
-
Change observation tooltip text Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
CSCfi/sd-search-api#39 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
please add to porn list Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
StevenBlack/hosts#3255 ·