sys.stdout.buffer has incorrect type?
Đang mở
Chưa có ai nhận issue này.
topic: io
- Ngôn ngữ chính
- Python
- Star
- 5.1k
- Fork
- 2.1k
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 82
Mô tả
mypy test.py
test.py:10: error: Argument 1 to "test" has incompatible type "BinaryIO"; expected "BufferedIOBase"
cat test.py
import io
import sys
class C(io.BufferedIOBase):
pass
def test(c: io.BufferedIOBase):
assert isinstance(c, io.BufferedIOBase)
test(sys.stdout.buffer)
test(C())
python3 test.py
As we can see the isinstance check passes but mypy asserts
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 lệnh mypy trên bản tái hiện trong test.py và kiểm tra các stub của thư viện chuẩn Python cho entry point sys.stdout.buffer. So sánh kiểu được khai báo của nó với kết quả isinstance trong thời gian chạy, sau đó xác minh hành vi đã được sửa bằng cách chạy lại mypy trên ví dụ.
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
- tooling
- 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