python / python/typing

`typing.TYPE_CHECKER` object to change types depending on which type checker is being run

Đang mở
#1,337 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

topic: feature
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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.