Issues in ipaddress.collapse_addresses()
Đang mở
Chưa có ai nhận issue này.
3.13
3.14
3.15
3.16
stdlib
type-bug
type-feature
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Bug report
The following issues was discovered during reviewing #141842:
ipaddress.collapse_addresses()supports not only IP networks, but also IP addresses and a mix of them. There are dedicated tests, but this is not documented.ipaddress.collapse_addresses()contains code for supporting also IP interfaces, but it always was broken (it would work if interfaces were not subclasses of addresses). The test for mix of IP addresses and IP interfaces is mislabeled (it says a mix of addresses and networks) and partially commented out (it only tests addresses now, which is mostly a duplicate of other test).- While TypeError is raised immediately for IP addresses of different versions and IP networks of different versions, it is delayed until the start of iteration for a mix of IP addresses and IP networks with addresses and networks having different versions.
- For objects other that IP objects you can get AttributeError instead of TypeError.
My plan for a fix:
- Document support of IP addresses.
- Explicitly forbid IP interfaces.
- Always raise TypeError for invalid types (the code is simpler this way).
- Add tests for corner cases.
For new version only:
- Implement support of IP interfaces and document it as a new feature.
- Either raise TypeError immediately for IP objects of different versions, or remove redundant explicit checks, they will be raised implicitly in comparisons.
Linked PRs
- gh-149723
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 với entry point ipaddress.collapse_addresses() và các bài kiểm thử chuyên biệt hiện có được đề cập trong báo cáo. Xem xét PR được liên kết gh-149723 trước khi thay đổi hành vi. Được xem là hoàn tất khi đã lập tài liệu về các địa chỉ IP được hỗ trợ, quyết định cách xử lý các giao diện IP, luôn raise TypeError một cách nhất quán đối với đầu vào không hợp lệ và thêm các bài kiểm thử cho các trường hợp biên.
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
- networking
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 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
- 25/100