v0.17.0

Date:

2022年12月02日

贡献者

共有32人参与了此版本的贡献。名字旁边带有“+”的人是首次提交补丁。

  • 亚历克斯·莱姆贝克

  • 亚历山大·巴斯克斯

  • 本杰明·哈克尔

  • 杜克法特 +

  • Hugues Devimeux

  • 伊夫根·皮罗戈夫 +

  • 艾萨克·贝赫 +

  • 杰夫·汉克 +

  • 约翰·哈蒙德 +

  • Jérome Eertmans +

  • 凯文·卢比克

  • Kian-Meng Ang +

  • 纳文·M·K

  • 尼克·斯克里洛夫 +

  • 没穿裤子

  • Onur Solmaz +

  • OpenRefactory公司 +

  • 欧文·塞缪尔 +

  • 帕维尔·兹维尔施克 +

  • 斯帕什·戈恩卡

  • 塔克索·鲁比奥

  • 广告混乱 +

  • fcrozatier

  • 主要是文档 +

  • vahndi +

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

  • 本杰明·哈克尔

  • Darylgolden

  • Hugues Devimeux

  • 扬-亨德里克·穆勒

  • 凯文·卢比克

  • 穆罕默德·贝尔古姆里

  • 纳文·M·K

  • 没穿裤子

  • 拉加夫·戈尔

  • 斯帕什·戈恩卡

  • 特里斯坦·舒尔茨

  • 广告混乱

  • friedkeenan

合并的拉取请求

本次发布共合并了63个拉取请求。

重大变更

  • #2898: Ported improved implementation of SVGMobject from 3b1b/manim

    在这个版本中,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: Added thematic guide for the manim-voiceover plugin

    这个新的主题指南简要介绍了manim-voiceover,这是一个帮助您为您的manimations添加旁白的插件。支持使用您自己的声音以及合成生成的声音。

新功能

增强功能

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

  • #3014: Enabled code completion for Mobject.animate() for some IDEs

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

修复的bug

关于测试系统的更改

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

  • #2981: 实现了pytest --show_diff的回退保存行为

  • #2982: 重写了text_mobject的不稳定测试,使其不依赖于图形

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

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

我们的开发基础设施的变化

  • #2925: CI (测试-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中的点击版本字符串

  • #2958: 修复 mypy 缺失的存根包

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

  • #2980: 迁移更多 os.pathpathlib.Path

  • #2983: 修复了Windows CI管道

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

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

  • #2995: 在 utils.text_file_writing 中的 open 添加了编码

  • #3032: 将 jupyter-core 从 4.11.1 升级到 4.11.2

  • #3033: 将pillow从9.2.0升级到9.3.0

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

新版本

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