Issues in ipaddress.collapse_addresses()
未关闭
还没有人认领这个 Issue。
3.13
3.14
3.15
3.16
stdlib
type-bug
type-feature
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从报告中提到的 ipaddress.collapse_addresses() 入口点和现有专用测试开始。在更改行为之前,先审查链接的 PR gh-149723。完成标准是记录受支持的 IP 地址,决定如何处理 IP 接口,对无效输入一致地引发 TypeError,并添加边界情况测试。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- networking
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100