PEP 356 – Python 2.5 版本发布计划
- 作者:
- Neal Norwitz, Guido van Rossum, Anthony Baxter
- 状态:
- 最终
- 类型:
- 信息性
- 主题:
- 发布
- 创建:
- 2006-02-07
- Python 版本:
- 2.5
- 历史记录:
摘要
本文档描述了 Python 2.5 的开发和发布计划。 该计划主要关注 PEP 级别的事项。 小型功能可能会在第一个测试版发布之前或期间被添加。 错误可能会在最终发布之前被修复。
将至少发布两个 alpha 版本、两个 beta 版本和一个候选发布版本。 计划发布日期为 2006 年 9 月 12 日。
发布经理
- Anthony Baxter 自愿担任发布经理。
- Martin von Loewis 正在构建 Windows 安装程序。
- Ronald Oussoren 正在构建 Mac 安装程序。
- Fred Drake 负责文档包
- Sean Reifschneider 负责 RPM 包。
发布计划
- alpha 1: 2006 年 4 月 5 日 [已完成]
- alpha 2: 2006 年 4 月 27 日 [已完成]
- beta 1: 2006 年 6 月 20 日 [已完成]
- beta 2: 2006 年 7 月 11 日 [已完成]
- beta 3: 2006 年 8 月 3 日 [已完成]
- rc 1: 2006 年 8 月 17 日 [已完成]
- rc 2: 2006 年 9 月 12 日 [已完成]
- 最终版本: 2006 年 9 月 19 日 [已完成]
2.5 版本已完成的功能
- PEP 308: 条件表达式
- PEP 309: 部分函数应用
- PEP 314: Python 软件包元数据 v1.1
- PEP 328: 绝对/相对导入
- PEP 338: 将模块作为脚本执行
- PEP 341: 将 try-except/try-finally 统一为 try-except-finally
- PEP 342: 通过增强型生成器实现协程
- PEP 343: “with” 语句(文档/参考和
contextlib
模块仍需更新) - PEP 352: 异常的必需父类
- PEP 353: 使用
ssize_t
作为索引类型 - PEP 357: 允许使用任何对象进行切片
- ASCII 成为默认编码
- 基于 AST 的编译器
- 通过新的
_ast
模块从 Python 访问 C AST any()
/all()
内置真值函数
新的标准库模块
cProfile
– 适用于以最小开销对长时间运行的应用程序进行分析ctypes
– Windows 安装程序的可选组件ElementTree
和cElementTree
– 由 Fredrik Lundh 编写hashlib
– 添加对 SHA-224、-256、-384 和 -512 的支持(取代旧的md5
和sha
模块)msilib
– 用于创建 MSI 文件和 distutils 中的bdist_msi
。pysqlite
uuid
wsgiref
其他值得注意的功能
- 添加了对读取影子密码的支持 [1]
- 添加了对 Unicode 4.1 UCD 的支持
- 添加了 PEP 302
zipfile
/__loader__
支持到以下模块:warnings
、linecache
、inspect
、traceback
、site
和doctest
- 添加了
pybench
Python 基准测试套件 – 由 Marc-Andre Lemburg 编写 - 添加了对邮箱的写入支持,代码来自 sandbox/mailbox。 (拥有者:A.M. Kuchling。 如果其他人能看一下新代码,那就更好了。)
- 支持构建“胖”Mac 二进制文件(Intel 和 PPC)
- 为 Windows 添加带新 Python 标志的新图标?
- 在
functools
中添加新实用程序,以帮助编写支持朴素自省的包装函数(例如,具有f.__name__
返回原始函数名称)。 - 将
pyexpat
升级到使用 expat 2.0。 - Python 核心现在可以使用 g++ 编译。
2.5 版本可能的功能
以下每个功能都应该在 beta1 之前实现,或者需要 BDFL 批准才能包含在 2.5 中。
- 正在考虑包含的模块
- 为 MacOS 和 Unix 添加带新 Python 标志的新图标? (拥有者:???)MacOS:http://hcs.harvard.edu/~jrus/python/prettified-py-icons.png
- 检查
Demo/
中的所有代码段是否仍然有效,更新或删除不起作用的代码段。 (拥有者:Anthony) - 所有位于
Modules/
中的模块都应该更新为 ssize_t 清洁。 (拥有者:Neal)
推迟到 2.6 版本
bdist_deb
在 distutils 包中 [2]bdist_egg
在 distutils 包中- 纯 Python
pgen
模块(拥有者:Guido) - 删除
fpectl
模块? - 使
Modules/
中的所有内容都能使用 g++ 编译。
待解决的问题
- 需要在发布之前解决的错误,即阻止发布的错误
无
- 推迟到 2.5.1(或更高版本)的错误
- https://bugs.python.org/issue1544279 -
Socket
模块不是线程安全的 - https://bugs.python.org/issue1541420 - Windows 中缺少工具和演示
- https://bugs.python.org/issue1542451 - 在嵌套的 try/finally 中使用 continue 会导致崩溃
- https://bugs.python.org/issue1475523 - gettext.py 错误(拥有者:Martin v. Loewis)
- https://bugs.python.org/issue1467929 - %-格式化和字典
- https://bugs.python.org/issue1446043 -
unicode()
不会引发LookupError
- https://bugs.python.org/issue1544279 -
- 必须记录对(至少)
pkgutil
、runpy
和pydoc
进行的 PEP 302 更改。 test_zipfile64
对大多数构建机器人来说运行时间太长,并且占用太多磁盘空间。 应该如何处理这个问题? 它目前已禁用。- 是否应该删除“未记录的模块”中列出的 C 模块? “timing”(列为已过时)、“cl”(列为可能未更新)和“sv”(列为已过时的硬件专用)。
参考
版权
本文档已进入公有领域。
来源:https://github.com/python/peps/blob/main/peps/pep-0356.rst
上次修改时间:2023-09-09 17:39:29 GMT