mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
221 lines
4.7 KiB
TOML
221 lines
4.7 KiB
TOML
[project]
|
|
name = "manim"
|
|
version = "0.20.1"
|
|
description = "Animation engine for explanatory math videos."
|
|
authors = [
|
|
{name = "The Manim Community Developers", email = "contact@manim.community"},
|
|
{name = "Grant '3Blue1Brown' Sanderson", email = "grant@3blue1brown.com"},
|
|
]
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Topic :: Scientific/Engineering",
|
|
"Topic :: Multimedia :: Video",
|
|
"Topic :: Multimedia :: Graphics",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3.14",
|
|
"Natural Language :: English",
|
|
]
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"audioop-lts>=0.2.1 ; python_full_version >= '3.13'",
|
|
"av>=15.0",
|
|
"beautifulsoup4>=4.12",
|
|
"click>=8.0",
|
|
"cloup>=2.0.0",
|
|
"decorator>=4.3.2",
|
|
"isosurfaces>=0.1.1",
|
|
"manimpango>=0.6.1,<1.0.0",
|
|
"mapbox-earcut>=1.0.0",
|
|
"moderngl-window>=2.0.0",
|
|
"moderngl>=5.7.0,<6.0.0",
|
|
"networkx>=2.6",
|
|
"numpy>=2.1",
|
|
"pillow>=11.0",
|
|
"pycairo>=1.14,<2.0.0",
|
|
"pydub>=0.22.0",
|
|
"pygments>=2.17",
|
|
"rich>=12.0.0",
|
|
"scipy>=1.13.0",
|
|
"scipy>=1.15.0 ; python_full_version >= '3.13'",
|
|
"screeninfo>=0.7.0",
|
|
"skia-pathops>=0.9.0",
|
|
"srt>=3.0.0",
|
|
"svgelements>=1.9.0",
|
|
"tqdm>=4.21.0",
|
|
"typing-extensions>=4.12.0",
|
|
"watchdog>=2.0.0",
|
|
]
|
|
|
|
|
|
[project.scripts]
|
|
"manim" = "manim.__main__:main"
|
|
"manimce" = "manim.__main__:main"
|
|
|
|
[project.urls]
|
|
repository = "https://github.com/manimcommunity/manim"
|
|
documentation = "https://docs.manim.community/"
|
|
homepage = "https://www.manim.community/"
|
|
"Bug Tracker" = "https://github.com/ManimCommunity/manim/issues"
|
|
"Changelog" = "https://docs.manim.community/en/stable/changelog.html"
|
|
"X / Twitter" = "https://x.com/manimcommunity"
|
|
"Bluesky" = "https://bsky.app/profile/manim.community"
|
|
"Discord" = "https://www.manim.community/discord/"
|
|
|
|
[project.optional-dependencies]
|
|
gui = [
|
|
"dearpygui>=1.0.0",
|
|
]
|
|
jupyterlab = [
|
|
"jupyterlab>=4.3.4",
|
|
"notebook>=7.3.2",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"furo>=2024.8.6",
|
|
"matplotlib>=3.9.4",
|
|
"myst-parser>=3.0.1",
|
|
"pre-commit>=4.1.0",
|
|
"pytest>=8.3.4",
|
|
"pytest-cov>=6.0.0",
|
|
"pytest-xdist>=2.2,<3.0",
|
|
"ruff>=0.14.7",
|
|
"sphinx>=7.4.7",
|
|
"sphinx-copybutton>=0.5.2",
|
|
"sphinx-design>=0.6.1",
|
|
"sphinx-reredirects>=0.1.5",
|
|
"sphinxcontrib-programoutput>=0.18",
|
|
"sphinxext-opengraph>=0.9.1",
|
|
"types-decorator>=5.1.8.20250121",
|
|
"types-pillow>=10.2.0.20240822",
|
|
"types-pygments>=2.19.0.20250107",
|
|
"psutil>=6.1.1",
|
|
"requests>=2.32.3",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build]
|
|
include = [
|
|
"/manim"
|
|
]
|
|
exclude = [
|
|
"/docker",
|
|
"/logo",
|
|
"/scripts",
|
|
]
|
|
|
|
[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", "if TYPE_CHECKING:"]
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py311"
|
|
extend-exclude = [
|
|
".github",
|
|
".hg",
|
|
".env",
|
|
"env",
|
|
"build",
|
|
"buck-out",
|
|
"media",
|
|
]
|
|
fix = true
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"A",
|
|
"B",
|
|
"C4",
|
|
"D",
|
|
"E",
|
|
"F",
|
|
"I",
|
|
"NPY",
|
|
"PERF",
|
|
"PGH",
|
|
"PT",
|
|
"SIM",
|
|
"UP",
|
|
"W",
|
|
]
|
|
|
|
ignore = [
|
|
# (sub)module shadows standard library module
|
|
"A005",
|
|
# mutable argument defaults (too many changes)
|
|
"B006",
|
|
# No function calls in defaults
|
|
# ignored because np.array() and straight_path()
|
|
"B008",
|
|
# docstring ignores - mostly stylistic
|
|
"D1",
|
|
"D203",
|
|
"D205",
|
|
"D212",
|
|
"D4",
|
|
"E111",
|
|
"E114",
|
|
"E117",
|
|
"E501",
|
|
# due to the import * used in manim
|
|
"F403",
|
|
"F405",
|
|
"PERF203", # try-except-in-loop
|
|
# 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
|
|
"D206",
|
|
"D300",
|
|
]
|
|
|
|
# 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.flake8-pytest-style]
|
|
fixture-parentheses = false
|
|
mark-parentheses = false
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "numpy"
|
|
|
|
[tool.ruff.format]
|
|
docstring-code-format = true
|