[build-system] build-backend = "pdm.backend" requires = ["pdm-backend", "setuptools"] [project] authors = [{name = "Jérome Eertmans", email = "jeertmans@icloud.com"}] classifiers = [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Topic :: Multimedia :: Video", "Topic :: Multimedia :: Graphics", "Topic :: Scientific/Engineering", ] dependencies = [ "av>=9.0.0", "click>=8.1.3", "click-default-group>=1.2.2", "jinja2>=3.1.2", "lxml>=4.9.2", "numpy>=1.19", "pillow>=9.5.0", "pydantic>=2.0.1", "pydantic-extra-types>=2.0.0", "python-pptx>=0.6.21", "qtpy>=2.4.1", "requests>=2.28.1", "rich>=13.3.2", "rtoml>=0.9.0", "tqdm>=4.64.1", ] description = "Tool for live presentations using manim" dynamic = ["version"] keywords = ["manim", "slides", "plugin", "manimgl"] license = {text = "MIT"} name = "manim-slides" readme = "README.md" requires-python = ">=3.9,<3.13" [project.optional-dependencies] docs = [ "manim-slides[magic,sphinx-directive]", "furo>=2023.5.20", "ipykernel>=6.25.1", "myst-parser>=2.0.0", "nbsphinx>=0.9.2", "pandoc>=2.3", "sphinx>=7.0.1", "sphinx-click>=4.4.0", "sphinx-copybutton>=0.5.1", "sphinxext-opengraph>=0.7.5", ] full = [ "manim-slides[magic,manim,manimgl,sphinx-directive]", ] magic = ["manim-slides[manim]", "ipython>=8.12.2"] manim = ["manim>=0.17.3"] manimgl = ["manimgl>=1.6.1"] pyqt6 = ["pyqt6>=6.6.1"] pyqt6-full = ["manim-slides[full,pyqt6]"] pyside6 = ["pyside6>=6.5.1,<6.5.3;python_version<'3.12'"] pyside6-full = ["manim-slides[full,pyside6]"] sphinx-directive = ["docutils>=0.20.1", "manim-slides[manim]"] [project.scripts] manim-slides = "manim_slides.__main__:cli" [project.urls] Changelog = "https://github.com/jeertmans/manim-slides/releases" Documentation = "https://eertmans.be/manim-slides" Founding = "https://github.com/sponsors/jeertmans" Homepage = "https://github.com/jeertmans/manim-slides" Repository = "https://github.com/jeertmans/manim-slides" [tool.codespell] builtin = "clear,rare,informal,usage,names,en-GB_to_en-US" check-hidden = true ignore-words-list = "master" skip = "pdm.lock" [tool.coverage.report] exclude_lines = [ "pragma: no cover", "raise NotImplementedError", "if TYPE_CHECKING:", "if typing.TYPE_CHECKING:", ] precision = 2 [tool.mypy] disallow_untyped_decorators = false install_types = true python_version = "3.8" strict = true [tool.pdm.dev-dependencies] dev = [ "bump2version>=1.0.1", "pre-commit>=3.5.0", ] github-action = ["setuptools"] test = [ "manim-slides[manim,manimgl,pyqt6]", "pytest>=7.4.0", "pytest-cov>=4.1.0", "pytest-env>=0.8.2", "pytest-qt>=4.2.0", "pytest-xdist>=3.3.1", ] [tool.pdm.resolution.overrides] manimpango = "<1.0.0,>=0.5.0" # This conflicts with ManimGL, hopefully not an issue skia-pathops = "0.8.0.post1" # From manim 0.18.0 (Python 3.12 support) [tool.pdm.version] path = "manim_slides/__version__.py" source = "file" [tool.pytest.ini_options] env = [ "QT_QPA_PLATFORM=offscreen", ] filterwarnings = [ "error", "ignore::DeprecationWarning", ] [tool.ruff] extend-exclude = ["manim_slides/resources.py"] extend-include = ["*.ipynb"] line-length = 88 target-version = "py38" [tool.ruff.lint] extend-ignore = [ "D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107", "D203", "D205", "D212", "E501", ] extend-select = ["B", "C90", "D", "I", "N", "RUF", "UP", "T"] isort = {known-first-party = ["manim_slides", "tests"]}