python / python/mypy

Add support for attr.converters.default_if_none

Đang mở
#6,136 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.

feature priority-1-normal topic-attrs
Ngôn ngữ chính
Python
Star
20.6k
Fork
3.3k
Chỉ số merge pull request
Chỉ số pull request đang chờ

Mô tả

I have the following:

@attr.s(auto_attribs=True)
class Foo:
    bars: List[Bar] = attr.ib(
        default=attr.Factory(list),
        converter=default_if_none(default=attr.Factory(list)),
    )

I'm running mypy via pre-commit and getting:

error: Unsupported converter, only named functions and types are currently supported

I have the following in my .pre-commit-config.yaml:

- repo: https://github.com/pre-commit/mirrors-mypy
  rev: v0.650
  hooks:
  - id: mypy
    additional_dependencies:
      - attrs>=18.2.0

(Without the additional_dependencies part I also get error: Module 'attr.converters' has no attribute 'default_if_none')

Could the issue be that there's special handling for optional here but not for default_if_none?

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

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ắt đầu trong mypy/plugins/attrs.py tại phần xử lý đặc biệt hiện có cho các converter tùy chọn được liên kết trong issue, sau đó tái hiện snippet được báo cáo bằng mypy thông qua cấu hình pre-commit. Truy vết cách attr.converters.default_if_none được xác thực và xác định hành vi typing mong đợi; hoàn thành khi converter được chấp nhận mà không có các lỗi đã báo cáo.

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ó
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
45/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.