`typing.TYPE_CHECKER` object to change types depending on which type checker is being run
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 1.8k
- Fork
- 302
- Merge trung bình
- 23 giờ
- Pull request đã merge (30 ngày)
- 8
Mô tả
One issue I have run into as a library dev is varying support for typing features or bugs for both of the type checkers. typing.TYPE_CHECKER would allow me to change type definition based on the type checker so that I can support all static analysis tools more effectively.
I propose that TYPE_CHECKER would be a dict with a "name" and "version" key. Type checkers could also optionally add other keys/values.
TYPE_CHECKER = {
"name": "type-checker-name",
# `VersionInfo` would be implemented by each type checker to match their versioning scheme.
"version": VersionInfo(...),
}
Using it for types would look like this:
if TYPE_CHECKER.get("name") == "pyright" and TYPE_CHECKER.get("version") > (1, 1, 290):
T = TypeVar("T", default=int)
else:
T = TypeVar("T")
At runtime I think the TYPE_CHECKER object should be an empty dictionary.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
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ản thân issue là điểm bắt đầu: hãy bắt đầu bằng việc xem xét dictionary TYPE_CHECKER được đề xuất, các trường tên và phiên bản của nó, các giá trị tùy chọn và hành vi runtime khi rỗng. Xác định cách các trình kiểm tra kiểu sẽ cung cấp thông tin phiên bản nhất quán, sau đó định nghĩa và xác thực interface đã thống nhất.
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
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- 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