v0.17.0

日期:

2022年12月2日

贡献者

共有32人为此版本做出了贡献。名字旁有“+”的人员是首次贡献补丁。

  • Alex Lembcke

  • Alexander Vázquez

  • Benjamin Hackl

  • Duc Phat +

  • Hugues Devimeux

  • Ievgen Pyrogov +

  • Isaac Beh +

  • Jeff Hanke +

  • John Hammond +

  • Jérome Eertmans +

  • Kevin Lubick

  • Kian-Meng Ang +

  • Naveen M K

  • Nick Skriloff +

  • NotWearingPants

  • Onur Solmaz +

  • OpenRefactory, Inc +

  • Owen Samuel +

  • Pavel Zwerschke +

  • Sparsh Goenka

  • Taxo Rubio

  • ad-chaos +

  • fcrozatier

  • mostly documentation +

  • vahndi +

此版本中包含的补丁已由以下贡献者审阅。

  • Benjamin Hackl

  • Darylgolden

  • Hugues Devimeux

  • Jan-Hendrik Müller

  • Kevin Lubick

  • Mohammed Belgoumri

  • Naveen M K

  • NotWearingPants

  • Raghav Goel

  • Sparsh Goenka

  • Tristan Schulz

  • ad-chaos

  • friedkeenan

合并的拉取请求

此版本共合并了63个拉取请求。

重大更改

  • #2898: 从 3b1b/manim 移植了 SVGMobject 的改进实现

    此版本中 SVGMobject 的实现已完全更改。Manim 现在使用 Python 库 svgelements 来解析 SVG,而不是自行尝试。用于 SVG 路径对象的旧类 SVGPathMobject 已被 VMobjectFromSVGPath 替换(未弃用)。

    如果您需要从 SVG 路径字符串创建 mobject,可以通过以下方式实现:

    import svgelements as se
    my_path_mobject = VMobjectFromSVGPath(se.Path(my_path_string))
    

    未使用的类 TexSymbol 已被移除。模块 manim.mobject.svg.svg_pathmanim.mobject.svg.style_utils 由于重构而变得多余,并已被移除。

  • #3030: 添加了对 Python 3.11 的支持,并取消了对 Python 3.7 的支持

亮点

  • #3049: 为 manim-voiceover 插件添加了专题指南

    这份新的专题指南简要介绍了 manim-voiceover,这是一个帮助您为 Manim 动画添加画外音的插件。它支持使用您自己的声音以及合成生成的声音。

新功能

改进

  • #2927: 允许 networkxGraphlayout_config 中传递 dim=3 时返回 3D 布局

  • #3014: 为部分 IDE 启用了 Mobject.animate() 的代码补全

    将现有泛型 Mobject 类型 T_Animation Builder 的联合作为 Mobject.animate 的声明返回类型,以改进代码补全。

修复的错误

测试系统相关更改

  • #2893: 提高了 test_threed.py 的性能

  • #2981: 为 pytest --show_diff 实现了备用保存行为

  • #2982: 重写了 text_mobject 的不稳定测试,使其变为非图形化

  • #2991: 在测试中将 os.path 迁移到 pathlib.Path

  • #3053: 在帧比较测试中添加了像素值误差阈值

开发基础设施更改

  • #2925: CI (test-arm):Python 版本更新至 3.10.6

  • #2963: CI (test-arm):始终选择正确的 Python 版本

  • #3029: CI:更新了 actions 版本并添加了 dependabot 配置

  • #3045: Ubuntu CI 任务中,将 python-opengl 更新为 python3-opengl

代码质量改进和类似重构

  • #2872: 添加 extract_frames.py 工具脚本,以帮助可视化测试控制数据

  • #2877: 通过添加缺失的可选 notebook 依赖项,修复了 binder 启动问题

  • #2887: 移除了导致文件名冲突的空 i18n 文件

  • #2931: 更新了 mapbox-earcut

  • #2938: iCR, OpenRefactory, Inc. 建议的修复

  • #2954: 修复了 pyproject.toml 中的 click 版本字符串

  • #2958: 修复了 mypy 缺失的 stub 包

  • #2975: 修复了 README 中的损坏链接

  • #2980: 将更多 os.path 迁移到 pathlib.Path

  • #2983: 修复了 Windows CI 流水线

  • #2988: 将文档字符串中所有类型的参数转换为适当的类型注解

  • #2994: 修复了 Python 3.10 下 doctests 导致的段错误

  • #2995: 在 utils.text_file_writingopen 中添加了编码

  • #3032: 将 jupyter-core 版本从 4.11.1 提升到 4.11.2

  • #3033: 将 pillow 版本从 9.2.0 提升到 9.3.0

  • #3054: 移除了未使用的 GraphicalUnitTester

新版本发布

  • #3023: 准备了新版本:v0.17.0