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 发布之前(含)添加。错误可在最终发布之前修复。
至少会有两次 Alpha 发布、两次 Beta 发布和一个候选发布版本。发布日期为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日:final [已完成]
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,那就太好了。目前,Twisted 等使用 SSL 实现异步服务器的包必须要求第三方包,例如 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”,并且 pickling 应该有效。([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