这是一个模板项目,旨在展示如何在manim(社区版)引擎之上创建插件,并作为插件创建的示例。
项目描述
插件模板
插件是扩展Manim核心功能的功能。这是一个模板项目,展示了如何使用遵循PEP 517兼容的构建系统(Poetry)创建和上传manim插件到PyPI。
插件创建不需要诗歌,但推荐使用,因为它提供构建隔离并确保用户可以可靠地安装您的插件,避免依赖地狱。如果您愿意,可以使用其他构建系统(例如Flit、Setuptools、Pipenv等)。
创建插件
您选择的构建系统的唯一要求是它指定了 manim.plugins
入口点。
注意
插件的命名约定是添加前缀
manim-
。这使用户能够轻松地在PyPi等组织中搜索插件,但这不是必需的。
安装Poetry
Poetry可以在Windows、MacOS和Linux上安装。请访问官方Poetry网站获取安装说明。您可能想查看官方文档以获取所有可用命令的列表。
设置您的插件目录结构
要创建适合Poetry的Python项目,运行
poetry new --src manim-YourPluginName
注意
--src
是可选的,但推荐创建一个src目录,其中应包含所有插件代码。
这将创建以下项目结构:
manim-YourPluginName
├── pyproject.toml
├── README.rst
├── src
│ └── manim_yourpluginname
│ └── __init__.py
└── tests
├── __init__.py
└── test_manim_yourpluginname.py
如果您已经扩展了Manim的功能,您可以运行
cd path/to/plugin
poetry init
这将提示您有关插件的基本信息,并帮助创建和填充类似于模板中的 pyproject.toml
;然而,您可能希望以类似的方式更新项目目录结构。
有关 init 命令 的更多信息,请参阅官方文档。
从现在开始,当您在插件上工作时,请确保使用虚拟环境,在项目根目录运行以下命令
poetry shell
更新pyproject.toml
pyproject.toml
文件由Poetry和其他构建系统用于管理和配置您的项目。Manim使用包的入口点元数据来发现可用的插件。入口点组 "manim.plugins"
是 必需的,可以按以下方式指定
[tool.poetry.plugins."manim.plugins"]
"manim_yourpluginname" = "module:object.attr"
注意
左侧表示入口点名称,应在其他插件名称中唯一。这是Manim将用于识别和处理插件的内部名称。
右侧应引用一个Python对象(即模块、类、函数、方法等),并将是插件中首先运行的代码。在此模板存储库的情况下,包名称被用作Python解释为包的
__init__.py
模块。有关入口点的更多信息,请参阅 Python打包文档。
在本地测试您的插件
poetry install
此命令将读取 pyproject.toml
,安装插件的依赖项,并创建一个 poetry.lock
文件,以确保使用您的插件的每个人都获得相同的依赖项版本。确保您的依赖项正确地用版本约束标注(例如 manim:^0.1.1
,numpy:*
等)非常重要。同样重要的是,这些依赖项不能直接与 Manim 的依赖项冲突。如果您想更新 pyproject.toml
中指定的依赖项,使用
poetry update
Poetry允许添加仅针对项目开发者的依赖项。这些依赖项不会被用户安装。要将它们添加到您的项目中,更新 pyproject.toml
文件,并在后面添加依赖项部分
[tool.poetry.dev-dependencies]
pytest = "*"
pylint = "*"
《pytest》包是一个功能测试框架,您可以使用它来在manim-YourPluginName/tests
目录中运行测试。您应该在这里创建测试文件,以测试您插件的行为和功能。在打包和公开代码之前,先进行开发测试是一种良好的做法,以确保您的代码按预期运行。此外,您还可以创建依赖于您插件的Manimations,这也是确保功能性的另一种好方法。
上传您的项目
默认情况下,Poetry会将包/插件注册到PyPI。您需要在那里注册一个账户来上传/更新您的插件。一旦您的插件在本地可用,请运行以下命令:
poetry publish --build
现在,您的项目应该在PyPI上可供用户通过pip install manim-YourPluginName
安装,并在各自的环境中使用。
有关publish
命令的更多信息,请参阅官方文档。
行为准则
我们完整的行为准则以及如何执行它,可以在我们的网站上阅读这里。
项目详情
manim-PluginTemplate-0.1.5.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8aa7090d5f02ac03e41a6d772b37838ca7ade3ed3a1ac61601ac68c25da4e25a |
|
MD5 | 9a80824f9e23ba4f8f805214ebcf36b1 |
|
BLAKE2b-256 | bcab622f18dcdebae50c799aba1fcb3ef59c8608fa3ee320e8ade5775d176c40 |
manim_PluginTemplate-0.1.5-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d881f161a9ab41d295b7fb8f3b182d4972b9e6c568a391c5e202dc8221655148 |
|
MD5 | 50a708667a4d2f23d42ca16389954d96 |
|
BLAKE2b-256 | a90cfc385075531a501e95ced88da183e176373f085ce1e2b288677e72ae1f95 |