PEP 320 – Python 2.4 版本发布计划
- 作者:
- Barry Warsaw, Raymond Hettinger, Anthony Baxter
- 状态:
- 最终
- 类型:
- 信息性
- 主题:
- 发布
- 创建:
- 2003年7月29日
- Python 版本:
- 2.4
- 更新历史:
- 2004年12月1日
摘要
本文档描述了 Python 2.4 的开发和发布计划。该计划主要关注 PEP 级别的项目。在第一个 Beta 版本发布之前,可能会添加一些小的功能。在最终版本发布之前,可能会修复一些 Bug。
将至少发布两个 Alpha 版本、两个 Beta 版本和一个 Release Candidate 版本。发布日期为 2004 年 11 月 30 日。
发布负责人
Anthony Baxter
Martin von Lowis 正在构建 Windows 安装程序,Fred 正在构建文档包,Sean 正在构建 RPM 包。
发布计划
- 7 月 9 日:Alpha 1 [已完成]
- 8 月 5/6 日:Alpha 2 [已完成]
- 9 月 3 日:Alpha 3 [已完成]
- 10 月 15 日:Beta 1 [已完成]
- 11 月 3 日:Beta 2 [已完成]
- 11 月 18 日:Release Candidate 1 [已完成]
- 11 月 30 日:最终版本 [已完成]
2.4 版本已完成的功能
- PEP 218 内置集合对象。
- PEP 289 生成器表达式。
- PEP 292 更简单的字符串替换将作为模块实现。
- PEP 318:函数/方法装饰器语法,使用 @ 语法
- PEP 322 反向迭代。
- PEP 327:用于定点精度运算的 Decimal 包。
- PEP 328:多行导入
- 将装饰-排序-取消装饰模式封装到
list.sort()
的一个关键字中。 - 添加了一个名为
sorted()
的内置函数,可以在表达式中使用。 itertools
模块有两个新函数,tee()
和groupby()
。- 添加一个包含
deque()
对象的collections
模块。 - 向
heapq
模块添加两个统计/归约函数,nlargest()
和nsmallest()
。 - Python 的 Windows 安装程序现在使用 MSI
推迟到 2.5 版本
- 弃用和/或删除 PEP 4 中列出的模块(
posixfile
、gopherlib
、pre
、others
) - 删除对 PEP 11 中描述的平台的支持。
- 完成 Distutils
bdist_dpkg
命令的实现。(AMK) - 添加对读取 shadow 密码的支持 [1]
- 如果内置的 SSL 套接字类型可以用于非阻塞 SSL I/O 就好了。目前,使用 SSL 实现异步服务器的包(如 Twisted)必须依赖于第三方包(如 pyopenssl)。
- 基于 AST 的编译器:此分支未能在 2.4 版本中及时完成,但将在 2.4 正式版发布后的某个时间点合并到主干,以包含在 2.5 版本中。
- reST 将在 Zope3 中大量使用。也许它可以成为一个标准库模块?(由于 reST 的作者认为它还不够稳定,所以我倾向于不这样做。)
正在进行的任务
以下是一些正在进行的待办事项,我们应该尝试处理这些事项,但不要指望在任何特定日期之前完成。
- 文档:完成分发和安装手册。
- 文档:完成新式类的文档。
- 查看
Demos/
目录并在需要时更新(Andrew Kuchling 已经完成了其中很大一部分) - 新的测试。
- 修复 SF 上的文档错误。
- 删除核心代码中对已弃用功能的使用。
- 适当地记录已弃用的功能。
- 使用
Py_DEPRECATED
标记已弃用的 C API。 - 弃用未维护的模块,或者可能为模块创建一个新的类别“未维护”
- 总的来说,进行大量清理,以便更容易向前推进。
未解决的问题
目前没有。
从 Python 2.3 延续的功能
- 导入锁可能需要重新设计。[2]
- 一个更友好的打开文本文件的 API,替换难看的(在某些人看来)“U”模式标志。有一个建议是引入一个新的内置类型
textfile(filename, mode, encoding)
。(它是否也应该有一个bufsize参数?) - Tkinter 的新部件???
有人为此腾出时间了吗?Tk 8.4 中有新部件吗?请注意,我们已经有了更好的 Tix 支持(尽管在 Windows 上还没有)。
- PEP 304(由 Montanaro 控制字节码文件的生成)似乎已经失去动力。
- 对于在另一个类内部定义的类,
__name__
应该为“outer.inner”,并且 pickle 操作应该可以正常工作。([3]。我不确定这是否容易或正确。) - 确定一个更清晰的弃用策略(尤其是针对模块),并付诸实施。首先,请参阅 Neal Norwitz 的此邮件 [4]。似乎没有足够的兴趣以有组织的方式进一步推进此事,而且它也不是特别重要。
- 为
types
模块的常见用途提供替代方案;Skip Montanaro 为此想法发布了一个原型 PEP [5]。据我所知,这方面还没有取得任何进展。 - 对
types
和string
模块使用待弃用状态。这需要为尚未覆盖的部分提供替代方案(例如string.whitespace
和types.TracebackType
)。看来我们无法就此事达成共识。 - PEP 262 已安装 Python 包的数据库(Kuchling)
事实证明,这对 Jack Jansen 的 Python 安装程序很有用,因此值得实现该数据库。代码将位于 sandbox/pep262 中。
- PEP 269 用于 Python 的 Pgen 模块(Riehl)
(一些必要的更改已完成;
pgen
模块本身需要进一步成熟。) - PEP 266 优化全局变量/属性访问(Montanaro)
PEP 267 优化访问模块命名空间(Hylton)
PEP 280 优化访问全局变量(van Rossum)
这些基本上是三个友好的竞争性提案。Jeremy 已经使用新的编译器取得了一点进展,但进展缓慢,而且编译器只是第一步。也许我们能够在这个版本中重构编译器。我倾向于说我们不会屏住呼吸。
- 延迟跟踪元组?[6] [7] 我认为没有多少热情。
- PEP 286 增强的参数元组(von Loewis)
我还没有时间彻底审查它。它似乎是一个深入的优化技巧(但也提供了更好的正确性保证)。
- 将“
as
”设为关键字。它已经是一个伪关键字足够久了。太费力了,不值得。
参考文献
版权声明
本文档已进入公有领域。
来源:https://github.com/python/peps/blob/main/peps/pep-0320.rst