mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
198 lines
4.7 KiB
TOML
198 lines
4.7 KiB
TOML
[tool.poetry]
|
|
name = "manim"
|
|
version = "0.18.1"
|
|
description = "Animation engine for explanatory math videos."
|
|
authors = ["The Manim Community Developers <contact@manim.community>", "3b1b <grant@3blue1brown.com>"]
|
|
license="MIT"
|
|
readme="README.md"
|
|
repository="https://github.com/manimcommunity/manim"
|
|
documentation="https://docs.manim.community/"
|
|
homepage="https://www.manim.community/"
|
|
classifiers= [
|
|
"Development Status :: 4 - Beta",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Topic :: Scientific/Engineering",
|
|
"Topic :: Multimedia :: Video",
|
|
"Topic :: Multimedia :: Graphics",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Natural Language :: English",
|
|
]
|
|
exclude = ["scripts/","logo/","readme-assets/"]
|
|
packages = [
|
|
{ include = "manim" },
|
|
]
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.9,<3.13"
|
|
av = ">=9.0.0"
|
|
click = ">=8.0"
|
|
cloup = ">=2.0.0"
|
|
dearpygui = { version = ">=1.0.0", optional = true }
|
|
decorator = ">=4.3.2"
|
|
importlib-metadata = {version = ">=3.6", python = "<=3.9"} # Required to discover plugins
|
|
isosurfaces = ">=0.1.0"
|
|
jupyterlab = { version = ">=3.0.0", optional = true }
|
|
manimpango = ">=0.5.0,<1.0.0" # Complete API change in 1.0.0
|
|
mapbox-earcut = ">=1.0.0"
|
|
moderngl = ">=5.0.0,<6.0.0"
|
|
moderngl-window = ">=2.0.0"
|
|
networkx = ">=2.6"
|
|
notebook = { version = ">=6.0.0", optional = true }
|
|
numpy = ">=1.26"
|
|
Pillow = ">=9.1"
|
|
pycairo = ">=1.13,<2.0.0"
|
|
pydub = ">=0.20.0"
|
|
Pygments = ">=2.0.0"
|
|
rich = ">=12.0.0"
|
|
scipy = ">=1.6.0"
|
|
screeninfo = ">=0.7"
|
|
skia-pathops = ">=0.7.0"
|
|
srt = ">=3.0.0"
|
|
svgelements = ">=1.8.0"
|
|
tqdm = ">=4.0.0"
|
|
typing-extensions = ">=4.0.0"
|
|
watchdog = ">=2.0.0"
|
|
|
|
[tool.poetry.extras]
|
|
jupyterlab = ["jupyterlab", "notebook"]
|
|
gui = ["dearpygui"]
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
flake8 = "^6.1.0"
|
|
flake8-docstrings = "^1.7.0"
|
|
furo = "^2023.09.10"
|
|
gitpython = "^3"
|
|
isort = "^5.12.0"
|
|
matplotlib = "^3.8.2"
|
|
myst-parser = "^2.0.0"
|
|
pre-commit = "^3.5.0"
|
|
psutil = {version = "^5.8.0", python = "<3.10"}
|
|
psutil-wheels = {version = "5.8.0", python = ">=3.10"}
|
|
pytest = "^7.4.3"
|
|
pygithub = "^2.1.1"
|
|
pytest-cov = "^4.1.0"
|
|
pytest-xdist = "^2.2" # Using latest gives flaky tests
|
|
ruff = "*"
|
|
Sphinx = "^7.2.6"
|
|
sphinx-copybutton = "^0.5.2"
|
|
sphinxcontrib-programoutput = "^0.17"
|
|
sphinxext-opengraph = "^0.9.1"
|
|
types-decorator = "^0.1.7"
|
|
types-Pillow = "^10.1.0.2"
|
|
types-Pygments = "^2.17.0.0"
|
|
|
|
[tool.poetry.urls]
|
|
"Bug Tracker" = "https://github.com/ManimCommunity/manim/issues"
|
|
"Changelog" = "https://docs.manim.community/en/stable/changelog.html"
|
|
"Twitter" = "https://twitter.com/manim_community"
|
|
"Discord" = "https://www.manim.community/discord/"
|
|
|
|
[tool.pytest.ini_options]
|
|
markers = "slow: Mark the test as slow. Can be skipped with --skip_slow"
|
|
addopts = "--no-cov-on-fail --cov=manim --cov-report xml --cov-report term -n auto --dist=loadfile --durations=0"
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
|
|
[tool.coverage.run]
|
|
omit = ["*tests*"]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = ["pragma: no cover"]
|
|
|
|
[tool.poetry.plugins]
|
|
[tool.poetry.plugins."console_scripts"]
|
|
"manim" = "manim.__main__:main"
|
|
"manimce" = "manim.__main__:main"
|
|
|
|
[build-system]
|
|
requires = ["setuptools", "poetry-core>=1.0.0"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py39"
|
|
extend-exclude = [
|
|
".github",
|
|
".hg",
|
|
".env",
|
|
"env",
|
|
"build",
|
|
"buck-out",
|
|
"media",
|
|
]
|
|
fix = true
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"A",
|
|
"B",
|
|
"C4",
|
|
"E",
|
|
"F",
|
|
"I",
|
|
"PT",
|
|
"SIM",
|
|
"UP",
|
|
]
|
|
|
|
ignore = [
|
|
# mutable argument defaults (too many changes)
|
|
"B006",
|
|
# No function calls in defaults
|
|
# ignored because np.array() and straight_path()
|
|
"B008",
|
|
# due to the import * used in manim
|
|
"F403",
|
|
"F405",
|
|
# fixtures not returning anything should have leading underscore
|
|
"PT004",
|
|
# Exception too broad (this would require lots of changes + re.escape) for little benefit
|
|
"PT011",
|
|
# as recommended by https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
|
|
"E111",
|
|
"E114",
|
|
"E117",
|
|
"E501",
|
|
]
|
|
|
|
# Allow unused variables when underscore-prefixed.
|
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/*" = [
|
|
# flake8-builtins
|
|
"A",
|
|
# unused expression
|
|
"B018",
|
|
# unused variable
|
|
"F841",
|
|
# from __future__ import annotations
|
|
"I002",
|
|
]
|
|
|
|
"example_scenes/*" = [
|
|
"I002",
|
|
]
|
|
|
|
"__init__.py" = [
|
|
"F401",
|
|
"F403",
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
required-imports = ["from __future__ import annotations"]
|
|
|
|
[tool.ruff.lint.flake8-pytest-style]
|
|
fixture-parentheses = false
|
|
mark-parentheses = false
|
|
|
|
[tool.ruff.format]
|
|
docstring-code-format = true
|
|
|
|
[tool.codespell]
|
|
write-changes = true
|
|
ignore-words-list = ["medias", "nam"]
|