交互开发环境IPython清扫老旧程序代码发布最新8.0版本

Jupyter发布IPython 7.0已经是3年前的事,官方现在终于推出8.0版本,这个版本改进现有的程序代码库中数个功能,包括可在CLI中使用Black重新格式化程序代码、Ghost建议,以及能够突出显示错误节点的关注(Traceback),该功能使得复杂的表达式更容易调试。

IPython是一个强大的交互式解释器,在纯Python脚本上,提供Tab键完成、更好的关注以及多行编辑等功能。

除了更新功能,官方提到,其实这个版本大部分的改变,都在于删除该抛弃的程序代码。IPython是在20几年前,由Fernando Pérez在大学延毕时开发的,20几年来,IPython中留有许多老旧不适用的程序代码,而官方认为在增加主要版本号的现在,正是删除这些程序代码的时机。

IPython 8.0删除了大量以弃用,或是未被使用的程序代码,并放弃老旧且未受持续维护的相依项目,像是IPython已经移除Nose改使用pytest。官方扩大IPython的程序代码覆盖率,通过增加软件测试的比例,来提升IPython的稳定性和安全性。

另外,IPython 8.0还删除了大部分在IPython 1.0和5.0之间,已经被标记为弃用的函数和参数,并且根据NEP 29,将Python版本最低需求提高到3.8,官方提到,这项改进使得IPython能够同步使用Python的原生功能,而不需要不停地进行额外修改。

整体来说,在新版本中,即便进行许多更新,程序代码库也从原本的348个文件37,500行程序代码,下降到了294个文件36,100行程序代码,官方希望IPython瘦身后,能够加速CLI启动,使IPython更易于使用。

IPython的构建程序也有更新,现在使用pyproject.toml来声明构建,但目前仍然会需要setuptools模块和setup.py文件,但官方正努力简化这个过程,以及删除不需要的配置。用户现在可以使用python -m build指令来构建IPython Wheels和sdist。

官方依据NEP 29,会继续在每个月最后一个星期五,发布小版本更新。尽管IPython 8.0已经发布,但是官方仍然会提供7.x版本重要错误的更新,只是现在同时还会看到8.x稳定版本更新。