manim/pyproject.toml
Aarush Deshpande c2dfb597ff
Create changelog for 0.19.0 (#4032)
* First draft of Changelog for 0.19.0

* fix typos

* added 3967

* Add #4037

* Update count 97 -> 98

* Add #4039

* Add #3930 and #4044

* Add this PR to changelog

* Add small description to changelog

* Add #3924, #3951, and #4038

* Bump Manim version to 0.19.0

* Update CITATION.cff to be more consistent

* remove github-security[bot]

* Feedback + missing PRs

* add newly merged PRs

* added more details to highlights + breaking changes

* bump date

* sort PRs in breaking changes section and include 3964

* sort highlights section

* fix: add required configuration key in .readthedocs.yml

* Update docs/source/changelog/0.19.0-changelog.rst

---------

Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
2025-01-20 14:36:53 +01:00

221 lines
5.4 KiB
TOML

[tool.poetry]
name = "manim"
version = "0.19.0"
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",
"Programming Language :: Python :: 3.13",
"Natural Language :: English",
]
exclude = ["scripts/","logo/","readme-assets/"]
packages = [
{ include = "manim" },
]
[tool.poetry.dependencies]
python = ">=3.9"
av = ">=9.0.0,<14.0.0" # v14.0.0 contains breaking changes, remove after dropping python 3.9
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 = [
# numpy 2.1 is the first version with prebuilt wheels for 3.13,
# while numpy 2.0 is the last version supporting 3.9
# TODO: remove when python 3.10 is the minimum supported version
{version = ">=2.1", python = ">=3.10"},
{version = ">=2.0", python = "<3.10"},
]
Pillow = ">=9.1"
pycairo = ">=1.13,<2.0.0"
pydub = ">=0.20.0"
audioop-lts = { version = ">=0.2.0", python = ">=3.13" } # for pydub
Pygments = ">=2.0.0"
rich = ">=12.0.0"
scipy = [
# scipy 1.14.0 is the first version with prebuilt wheels for 3.13
# TODO: remove when python 3.10 is the minimum supported version
{version = ">=1.13.0", python = "<3.13"},
{version = ">=1.14.0", python = ">=3.13"},
]
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"
beautifulsoup4 = ">=4.12"
[tool.poetry.extras]
jupyterlab = ["jupyterlab", "notebook"]
gui = ["dearpygui"]
[tool.poetry.group.dev.dependencies]
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 = "^8.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"
sphinx-design = "^0.6.1"
sphinx-reredirects = "^0.1.5"
[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",
"D",
"E",
"F",
"I",
"PGH",
"PT",
"SIM",
"UP",
]
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",
# due to the import * used in manim
"F403",
"F405",
# 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",
"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.lint.pydocstyle]
convention = "numpy"
[tool.ruff.format]
docstring-code-format = true