mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-05-17 10:45:53 +08:00
Merge branch 'main' into reorganize
This commit is contained in:
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
@ -96,7 +96,7 @@ jobs:
|
||||
uses: ssciwr/setup-mesa-dist-win@v2
|
||||
|
||||
- name: Run pytest
|
||||
run: uv run --python ${{ matrix.pyversion }} --frozen --extra tests pytest
|
||||
run: uv run --python ${{ matrix.pyversion }} --frozen --group tests --no-dev pytest
|
||||
|
||||
- name: Upload to codecov.io
|
||||
uses: codecov/codecov-action@v5
|
||||
|
@ -21,18 +21,18 @@ repos:
|
||||
exclude: poetry.lock
|
||||
args: [--autofix, --trailing-commas]
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.9.3
|
||||
rev: v0.11.5
|
||||
hooks:
|
||||
- id: ruff
|
||||
args: [--fix]
|
||||
- id: ruff-format
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: v1.14.1
|
||||
rev: v1.15.0
|
||||
hooks:
|
||||
- id: mypy
|
||||
additional_dependencies: [types-requests, types-setuptools]
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: v2.4.0
|
||||
rev: v2.4.1
|
||||
hooks:
|
||||
- id: codespell
|
||||
additional_dependencies:
|
||||
|
@ -6,13 +6,13 @@ build:
|
||||
apt_packages:
|
||||
- libpango1.0-dev
|
||||
- ffmpeg
|
||||
jobs:
|
||||
post_create_environment:
|
||||
- asdf plugin add uv
|
||||
- asdf install uv latest
|
||||
- asdf global uv latest
|
||||
- UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv sync --group docs --no-dev --no-cache
|
||||
sphinx:
|
||||
builder: html
|
||||
configuration: docs/source/conf.py
|
||||
fail_on_warning: true
|
||||
python:
|
||||
install:
|
||||
- method: pip
|
||||
path: .
|
||||
extra_requirements:
|
||||
- docs
|
||||
|
37
CHANGELOG.md
37
CHANGELOG.md
@ -8,9 +8,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
<!-- start changelog -->
|
||||
|
||||
(unreleased)=
|
||||
## [Unreleased](https://github.com/jeertmans/manim-slides/compare/v5.4.2...HEAD)
|
||||
## [Unreleased](https://github.com/jeertmans/manim-slides/compare/v5.5.1...HEAD)
|
||||
|
||||
(unreleased-added)=
|
||||
(unreleased-chore)=
|
||||
### Chore
|
||||
|
||||
- Moved `docs` and `tests` extras, as well as `dev-dependencies`,
|
||||
inside groups in `dependency-groups`. This could break existing code
|
||||
when using one of those extras, but as they were not part of the public API,
|
||||
we do not consider this to be a **breaking change**.
|
||||
[#542](https://github.com/jeertmans/manim-slides/pull/542)
|
||||
|
||||
(v5.5.1)=
|
||||
## [v5.5.1](https://github.com/jeertmans/manim-slides/compare/v5.5.0...v5.5.1)
|
||||
|
||||
(v5.5.1-changed)=
|
||||
### Changed
|
||||
|
||||
- HTML template now always includes the *notes* plugin so that the speaker
|
||||
view is always available. Previously, it was only included if the slides
|
||||
had notes.
|
||||
[#538](https://github.com/jeertmans/manim-slides/pull/538)
|
||||
- Pressing <kbd>SPACE</kbd> key now pauses the slides, instead of skipping it.
|
||||
Previously, it was not possible to pause HTML slides, which can be very annoying
|
||||
when trying to explain something.
|
||||
[#539](https://github.com/jeertmans/manim-slides/pull/539)
|
||||
|
||||
(v5.5.0)=
|
||||
## [v5.5.0](https://github.com/jeertmans/manim-slides/compare/v5.4.2...v5.5.0)
|
||||
|
||||
(v5.5.0-added)=
|
||||
### Added
|
||||
|
||||
- Added `max_duration_before_split_reverse` and `num_processes` class variables.
|
||||
@ -19,18 +46,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
videos as slides.
|
||||
[#526](https://github.com/jeertmans/manim-slides/pull/526)
|
||||
|
||||
(unreleased-changed)=
|
||||
(v5.5.0-changed)=
|
||||
### Changed
|
||||
|
||||
- Automatically split large video animations into smaller chunks
|
||||
for lightweight (and potentially faster) reversed animations generation.
|
||||
[#439](https://github.com/jeertmans/manim-slides/pull/439)
|
||||
|
||||
(unreleased-chore)=
|
||||
(v5.5.0-chore)=
|
||||
### Chore
|
||||
|
||||
- Trimmed whitespaces in HTML template.
|
||||
[#443](https://github.com/jeertmans/manim-slides/pull/443)
|
||||
- Bumped RevealJS' version to 5.2 to allow video playing in speaker view.
|
||||
[#536](https://github.com/jeertmans/manim-slides/pull/536)
|
||||
|
||||
(v5.4.2)=
|
||||
## [v5.4.2](https://github.com/jeertmans/manim-slides/compare/v5.4.1...v5.4.2)
|
||||
|
@ -4,13 +4,14 @@
|
||||
cff-version: 1.2.0
|
||||
title: Manim Slides
|
||||
message: >-
|
||||
If you use this software, please cite it using the
|
||||
metadata from this file.
|
||||
If you use this software, please cite it using our article
|
||||
in the Journal of Open Source Education.
|
||||
type: software
|
||||
authors:
|
||||
- name: Jérome Eertmans
|
||||
orcid: 'https://orcid.org/0000-0002-5579-5360'
|
||||
website: 'https://eertmans.be'
|
||||
doi: 10.5281/zenodo.7971360
|
||||
repository-code: 'https://github.com/jeertmans/manim-slides'
|
||||
url: 'https://eertmans.be/manim-slides'
|
||||
abstract: >-
|
||||
@ -26,7 +27,7 @@ keywords:
|
||||
- PowerPoint
|
||||
- Python
|
||||
license: MIT
|
||||
version: v5.4.2
|
||||
version: v5.5.1
|
||||
preferred-citation:
|
||||
publisher:
|
||||
name: The Open Journal
|
||||
|
10
README.md
10
README.md
@ -1,9 +1,3 @@
|
||||
> [!IMPORTANT]
|
||||
> Take the [**Manim Slides Survey**](https://forms.gle/i4scrwPQghbTQwQs5)
|
||||
> to help improve this tool! Thanks in advance to all the people taking the time
|
||||
> to answer this short survey! The form is open until **January 31st 2025**,
|
||||
> and results will be communicated in the GitHub discussions.
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/logo_dark_transparent.png">
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/logo_light_transparent.png">
|
||||
@ -234,8 +228,8 @@ you can do so at: [jeertmans@icloud.com](mailto:jeertmans@icloud.com).
|
||||
[pypi-download-badge]: https://img.shields.io/pypi/dm/manim-slides
|
||||
[documentation-badge]: https://readthedocs.org/projects/manim-slides/badge/?version=latest
|
||||
[documentation-url]: https://manim-slides.readthedocs.io/
|
||||
[doi-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.8215167.svg
|
||||
[doi-url]: https://doi.org/10.5281/zenodo.8215167
|
||||
[doi-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.7971360.svg
|
||||
[doi-url]: https://doi.org/10.5281/zenodo.7971360
|
||||
[jose-badge]: https://jose.theoj.org/papers/10.21105/jose.00206/status.svg
|
||||
[jose-url]: https://doi.org/10.21105/jose.00206
|
||||
[codecov-badge]: https://codecov.io/gh/jeertmans/manim-slides/branch/main/graph/badge.svg?token=8P4DY9JCE4
|
||||
|
@ -4,6 +4,7 @@
|
||||
# For the full list of built-in configuration values, see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
import os
|
||||
import sys
|
||||
from datetime import date
|
||||
|
||||
@ -55,6 +56,7 @@ add_module_names = False
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||
|
||||
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "/")
|
||||
html_theme = "furo"
|
||||
html_static_path = ["_static"]
|
||||
html_favicon = "_static/favicon.png"
|
||||
|
@ -32,7 +32,7 @@ and development dependencies. If not already, please install this tool.
|
||||
With uv, installation becomes straightforward:
|
||||
|
||||
```bash
|
||||
uv sync --all-extras
|
||||
uv sync
|
||||
```
|
||||
|
||||
:::{note}
|
||||
|
@ -10,20 +10,22 @@ The following summarizes the different presentation features Manim Slides offers
|
||||
| :--- | :---: | :---: | :---: | :---: |
|
||||
| Basic navigation through slides | Yes | Yes | Yes | Yes (static image) |
|
||||
| Replay slide | Yes | No | No | N/A |
|
||||
| Pause animation | Yes | No | No | N/A |
|
||||
| Pause animation | Yes | Yes | No | N/A |
|
||||
| Play slide in reverse | Yes | No | No | N/A |
|
||||
| Slide count | Yes | Yes (optional) | Yes (optional) | N/A |
|
||||
| Needs Python with Manim Slides installed | Yes | No | No | No
|
||||
| Requires internet access | No | Yes | No | No |
|
||||
| Requires internet access | No | Depends[^1] | No | No |
|
||||
| Auto. play slides | Yes | Yes | Yes | N/A |
|
||||
| Loops support | Yes | Yes | Yes | N/A |
|
||||
| Fully customizable | No | Yes (`--use-template` option) | No | No |
|
||||
| Other dependencies | None | A modern web browser | PowerPoint or LibreOffice Impress[^1] | None |
|
||||
| Works cross-platforms | Yes | Yes | Partly[^1][^2] | Yes |
|
||||
| Other dependencies | None | A modern web browser | PowerPoint or LibreOffice Impress[^2] | None |
|
||||
| Works cross-platforms | Yes | Yes | Partly[^2][^3] | Yes |
|
||||
:::
|
||||
|
||||
[^1]: If you encounter a problem where slides do not automatically play or loops do not work,
|
||||
[^1]: By default, HTML assets are loaded from the internet, but they can be
|
||||
pre-downloaded and embedded in the HTML file at conversion time.
|
||||
[^2]: If you encounter a problem where slides do not automatically play or loops do not work,
|
||||
please
|
||||
[file an issue on GitHub](https://github.com/jeertmans/manim-slides/issues/new/choose).
|
||||
[^2]: PowerPoint online does not seem to support automatic playing of videos,
|
||||
[^3]: PowerPoint online does not seem to support automatic playing of videos,
|
||||
so you need LibreOffice Impress on Linux platforms.
|
||||
|
@ -536,7 +536,7 @@ class RevealJS(Converter):
|
||||
"black",
|
||||
description="Background color used in slides, not relevant if videos fill the whole area.",
|
||||
)
|
||||
reveal_version: str = Field("5.1.0", description="RevealJS version.")
|
||||
reveal_version: str = Field("5.2.0", description="RevealJS version.")
|
||||
reveal_theme: RevealTheme = Field(
|
||||
RevealTheme.black, description="RevealJS version."
|
||||
)
|
||||
|
@ -50,11 +50,11 @@
|
||||
</div>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/{{ reveal_version }}/reveal.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/{{ reveal_version }}/plugin/notes/notes.min.js"></script>
|
||||
|
||||
<!-- To include plugins, see: https://revealjs.com/plugins/ -->
|
||||
{% if has_notes %}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/{{ reveal_version }}/plugin/markdown/markdown.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/{{ reveal_version }}/plugin/notes/notes.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/{{ reveal_version }}/plugin/markdown/markdown.min.js"></script>
|
||||
{% endif %}
|
||||
|
||||
<!-- <script src="index.js"></script> -->
|
||||
@ -262,6 +262,23 @@
|
||||
// Time before the cursor is hidden (in ms)
|
||||
hideCursorTime: {{ hide_cursor_time }}
|
||||
});
|
||||
// Override SPACE to play / pause the video
|
||||
Reveal.addKeyBinding(
|
||||
{
|
||||
keyCode: 32,
|
||||
key: 'SPACE',
|
||||
description: 'Play / pause video'
|
||||
},
|
||||
() => {
|
||||
var currentVideos = Reveal.getCurrentSlide().slideBackgroundContentElement.getElementsByTagName("video");
|
||||
if (currentVideos.length > 0) {
|
||||
if (currentVideos[0].paused == true) currentVideos[0].play();
|
||||
else currentVideos[0].pause();
|
||||
} else {
|
||||
Reveal.next();
|
||||
}
|
||||
}
|
||||
);
|
||||
{% if one_file %}
|
||||
// Fix found by @t-fritsch and @Rapsssito on GitHub
|
||||
// see: https://github.com/hakimel/reveal.js/discussions/3362#discussioncomment-11733074.
|
||||
|
@ -2,6 +2,39 @@
|
||||
build-backend = "hatchling.build"
|
||||
requires = ["hatchling", "hatch-fancy-pypi-readme"]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
{include-group = "docs"},
|
||||
{include-group = "tests"},
|
||||
"bump-my-version>=0.20.3",
|
||||
"pre-commit>=3.5.0",
|
||||
]
|
||||
docs = [
|
||||
"manim-slides[magic,manim,pyqt6,sphinx-directive]",
|
||||
"furo>=2023.5.20",
|
||||
"ipykernel>=6.25.1",
|
||||
"myst-parser>=2.0.0",
|
||||
"nbsphinx>=0.9.2",
|
||||
"pandoc>=2.3",
|
||||
"pygments<2.19", # See: https://github.com/ManimCommunity/manim/issues/4104
|
||||
"sphinx>=7.0.1",
|
||||
"sphinxcontrib-programoutput>=0.18",
|
||||
"sphinx-design>=0.6.1",
|
||||
"sphinx-click>=4.4.0",
|
||||
"sphinx-copybutton>=0.5.1",
|
||||
"sphinxext-opengraph>=0.7.5",
|
||||
]
|
||||
tests = [
|
||||
"importlib-metadata>=8.6.1;python_version<'3.10'",
|
||||
"manim-slides[full,manimgl,pyqt6,pyside6,sphinx-directive]",
|
||||
"pytest>=7.4.0",
|
||||
"pytest-cov>=4.1.0",
|
||||
"pytest-env>=0.8.2",
|
||||
"pytest-missing-modules>=0.1.0",
|
||||
"pytest-qt>=4.2.0",
|
||||
"setuptools>=73.0.1",
|
||||
]
|
||||
|
||||
[project]
|
||||
authors = [{name = "Jérome Eertmans", email = "jeertmans@icloud.com"}]
|
||||
classifiers = [
|
||||
@ -42,21 +75,6 @@ name = "manim-slides"
|
||||
requires-python = ">=3.9"
|
||||
|
||||
[project.optional-dependencies]
|
||||
docs = [
|
||||
"manim-slides[magic,manim,pyqt6,sphinx-directive]",
|
||||
"furo>=2023.5.20",
|
||||
"ipykernel>=6.25.1",
|
||||
"myst-parser>=2.0.0",
|
||||
"nbsphinx>=0.9.2",
|
||||
"pandoc>=2.3",
|
||||
"pygments<2.19", # See: https://github.com/ManimCommunity/manim/issues/4104
|
||||
"sphinx>=7.0.1",
|
||||
"sphinxcontrib-programoutput>=0.18",
|
||||
"sphinx-design>=0.6.1",
|
||||
"sphinx-click>=4.4.0",
|
||||
"sphinx-copybutton>=0.5.1",
|
||||
"sphinxext-opengraph>=0.7.5",
|
||||
]
|
||||
full = [
|
||||
"manim-slides[magic,manim,sphinx-directive]",
|
||||
]
|
||||
@ -68,15 +86,6 @@ pyqt6-full = ["manim-slides[full,pyqt6]"]
|
||||
pyside6 = ["pyside6>=6.6.1,!=6.8.1.1"]
|
||||
pyside6-full = ["manim-slides[full,pyside6]"]
|
||||
sphinx-directive = ["docutils>=0.20.1", "manim-slides[manim]"]
|
||||
tests = [
|
||||
"importlib-metadata>=8.6.1;python_version<'3.10'",
|
||||
"manim-slides[full,manimgl,pyqt6,pyside6,sphinx-directive]",
|
||||
"pytest>=7.4.0",
|
||||
"pytest-cov>=4.1.0",
|
||||
"pytest-env>=0.8.2",
|
||||
"pytest-missing-modules>=0.1.0",
|
||||
"pytest-qt>=4.2.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
manim-slides = "manim_slides.cli.commands:main"
|
||||
@ -92,7 +101,7 @@ Repository = "https://github.com/jeertmans/manim-slides"
|
||||
allow_dirty = false
|
||||
commit = true
|
||||
commit_args = ""
|
||||
current_version = "5.4.2"
|
||||
current_version = "5.5.1"
|
||||
ignore_missing_version = false
|
||||
message = "chore(deps): bump version from {current_version} to {new_version}"
|
||||
parse = '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(-rc(?P<release>\d+))?'
|
||||
@ -224,10 +233,3 @@ isort = {known-first-party = ["manim_slides", "tests"]}
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
"docs/source/reference/magic_example.ipynb" = ["F403", "F405"]
|
||||
"tests/test_slide.py" = ["N801"]
|
||||
|
||||
[tool.uv]
|
||||
dev-dependencies = [
|
||||
"bump-my-version>=0.20.3",
|
||||
"pre-commit>=3.5.0",
|
||||
"setuptools>=73.0.1",
|
||||
]
|
||||
|
166
uv.lock
generated
166
uv.lock
generated
@ -1,4 +1,5 @@
|
||||
version = 1
|
||||
revision = 1
|
||||
requires-python = ">=3.9"
|
||||
resolution-markers = [
|
||||
"python_full_version >= '3.10' and python_full_version < '3.13'",
|
||||
@ -407,7 +408,7 @@ name = "click"
|
||||
version = "8.1.8"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "colorama", marker = "platform_system == 'Windows'" },
|
||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
|
||||
wheels = [
|
||||
@ -976,7 +977,7 @@ name = "importlib-metadata"
|
||||
version = "8.6.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "zipp" },
|
||||
{ name = "zipp", marker = "python_full_version < '3.10'" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/33/08/c1395a292bb23fd03bdf572a1357c5a733d3eecbab877641ceacab23db6e/importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580", size = 55767 }
|
||||
wheels = [
|
||||
@ -1009,7 +1010,7 @@ name = "ipykernel"
|
||||
version = "6.29.5"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "appnope", marker = "platform_system == 'Darwin'" },
|
||||
{ name = "appnope", marker = "sys_platform == 'darwin'" },
|
||||
{ name = "comm" },
|
||||
{ name = "debugpy" },
|
||||
{ name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
@ -1526,7 +1527,6 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "manim-slides"
|
||||
version = "5.4.2"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "av" },
|
||||
@ -1549,27 +1549,6 @@ dependencies = [
|
||||
]
|
||||
|
||||
[package.optional-dependencies]
|
||||
docs = [
|
||||
{ name = "docutils" },
|
||||
{ name = "furo" },
|
||||
{ name = "ipykernel" },
|
||||
{ name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "ipython", version = "8.31.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "manim" },
|
||||
{ name = "myst-parser", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "myst-parser", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "nbsphinx" },
|
||||
{ name = "pandoc" },
|
||||
{ name = "pygments" },
|
||||
{ name = "pyqt6" },
|
||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "sphinx-click" },
|
||||
{ name = "sphinx-copybutton" },
|
||||
{ name = "sphinx-design" },
|
||||
{ name = "sphinxcontrib-programoutput" },
|
||||
{ name = "sphinxext-opengraph" },
|
||||
]
|
||||
full = [
|
||||
{ name = "docutils" },
|
||||
{ name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
@ -1611,26 +1590,59 @@ sphinx-directive = [
|
||||
{ name = "docutils" },
|
||||
{ name = "manim" },
|
||||
]
|
||||
tests = [
|
||||
{ name = "docutils" },
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "bump-my-version" },
|
||||
{ name = "furo" },
|
||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10'" },
|
||||
{ name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "ipython", version = "8.31.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "manim" },
|
||||
{ name = "manimgl" },
|
||||
{ name = "pyqt6" },
|
||||
{ name = "pyside6" },
|
||||
{ name = "ipykernel" },
|
||||
{ name = "manim-slides", extra = ["full", "magic", "manim", "manimgl", "pyqt6", "pyside6", "sphinx-directive"] },
|
||||
{ name = "myst-parser", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "myst-parser", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "nbsphinx" },
|
||||
{ name = "pandoc" },
|
||||
{ name = "pre-commit" },
|
||||
{ name = "pygments" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-cov" },
|
||||
{ name = "pytest-env" },
|
||||
{ name = "pytest-missing-modules" },
|
||||
{ name = "pytest-qt" },
|
||||
{ name = "setuptools" },
|
||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "sphinx-click" },
|
||||
{ name = "sphinx-copybutton" },
|
||||
{ name = "sphinx-design" },
|
||||
{ name = "sphinxcontrib-programoutput" },
|
||||
{ name = "sphinxext-opengraph" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "bump-my-version" },
|
||||
{ name = "pre-commit" },
|
||||
docs = [
|
||||
{ name = "furo" },
|
||||
{ name = "ipykernel" },
|
||||
{ name = "manim-slides", extra = ["magic", "manim", "pyqt6", "sphinx-directive"] },
|
||||
{ name = "myst-parser", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "myst-parser", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "nbsphinx" },
|
||||
{ name = "pandoc" },
|
||||
{ name = "pygments" },
|
||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
||||
{ name = "sphinx-click" },
|
||||
{ name = "sphinx-copybutton" },
|
||||
{ name = "sphinx-design" },
|
||||
{ name = "sphinxcontrib-programoutput" },
|
||||
{ name = "sphinxext-opengraph" },
|
||||
]
|
||||
tests = [
|
||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10'" },
|
||||
{ name = "manim-slides", extra = ["full", "manimgl", "pyqt6", "pyside6", "sphinx-directive"] },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-cov" },
|
||||
{ name = "pytest-env" },
|
||||
{ name = "pytest-missing-modules" },
|
||||
{ name = "pytest-qt" },
|
||||
{ name = "setuptools" },
|
||||
]
|
||||
|
||||
@ -1640,71 +1652,89 @@ requires-dist = [
|
||||
{ name = "beautifulsoup4", specifier = ">=4.12.3" },
|
||||
{ name = "click", specifier = ">=8.1.3" },
|
||||
{ name = "click-default-group", specifier = ">=1.2.2" },
|
||||
{ name = "docutils", marker = "extra == 'docs'", specifier = ">=0.20.1" },
|
||||
{ name = "docutils", marker = "extra == 'full'", specifier = ">=0.20.1" },
|
||||
{ name = "docutils", marker = "extra == 'pyqt6-full'", specifier = ">=0.20.1" },
|
||||
{ name = "docutils", marker = "extra == 'pyside6-full'", specifier = ">=0.20.1" },
|
||||
{ name = "docutils", marker = "extra == 'sphinx-directive'", specifier = ">=0.20.1" },
|
||||
{ name = "docutils", marker = "extra == 'tests'", specifier = ">=0.20.1" },
|
||||
{ name = "furo", marker = "extra == 'docs'", specifier = ">=2023.5.20" },
|
||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10' and extra == 'tests'", specifier = ">=8.6.1" },
|
||||
{ name = "ipykernel", marker = "extra == 'docs'", specifier = ">=6.25.1" },
|
||||
{ name = "ipython", marker = "extra == 'docs'", specifier = ">=8.12.2" },
|
||||
{ name = "ipython", marker = "extra == 'full'", specifier = ">=8.12.2" },
|
||||
{ name = "ipython", marker = "extra == 'magic'", specifier = ">=8.12.2" },
|
||||
{ name = "ipython", marker = "extra == 'pyqt6-full'", specifier = ">=8.12.2" },
|
||||
{ name = "ipython", marker = "extra == 'pyside6-full'", specifier = ">=8.12.2" },
|
||||
{ name = "ipython", marker = "extra == 'tests'", specifier = ">=8.12.2" },
|
||||
{ name = "jinja2", specifier = ">=3.1.2" },
|
||||
{ name = "lxml", specifier = ">=4.9.2" },
|
||||
{ name = "manim", marker = "extra == 'docs'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'full'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'magic'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'manim'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'pyqt6-full'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'pyside6-full'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'sphinx-directive'", specifier = ">=0.19" },
|
||||
{ name = "manim", marker = "extra == 'tests'", specifier = ">=0.19" },
|
||||
{ name = "manimgl", marker = "extra == 'manimgl'", specifier = ">=1.7.2" },
|
||||
{ name = "manimgl", marker = "extra == 'tests'", specifier = ">=1.7.2" },
|
||||
{ name = "myst-parser", marker = "extra == 'docs'", specifier = ">=2.0.0" },
|
||||
{ name = "nbsphinx", marker = "extra == 'docs'", specifier = ">=0.9.2" },
|
||||
{ name = "numpy", specifier = ">=1.19" },
|
||||
{ name = "pandoc", marker = "extra == 'docs'", specifier = ">=2.3" },
|
||||
{ name = "pillow", specifier = ">=9.5.0" },
|
||||
{ name = "pydantic", specifier = ">=2.0.1" },
|
||||
{ name = "pydantic-extra-types", specifier = ">=2.0.0" },
|
||||
{ name = "pygments", marker = "extra == 'docs'", specifier = "<2.19" },
|
||||
{ name = "pyqt6", marker = "extra == 'docs'", specifier = ">=6.7.0" },
|
||||
{ name = "pyqt6", marker = "extra == 'pyqt6'", specifier = ">=6.7.0" },
|
||||
{ name = "pyqt6", marker = "extra == 'pyqt6-full'", specifier = ">=6.7.0" },
|
||||
{ name = "pyqt6", marker = "extra == 'tests'", specifier = ">=6.7.0" },
|
||||
{ name = "pyside6", marker = "extra == 'pyside6'", specifier = ">=6.6.1,!=6.8.1.1" },
|
||||
{ name = "pyside6", marker = "extra == 'pyside6-full'", specifier = ">=6.6.1,!=6.8.1.1" },
|
||||
{ name = "pyside6", marker = "extra == 'tests'", specifier = ">=6.6.1,!=6.8.1.1" },
|
||||
{ name = "pytest", marker = "extra == 'tests'", specifier = ">=7.4.0" },
|
||||
{ name = "pytest-cov", marker = "extra == 'tests'", specifier = ">=4.1.0" },
|
||||
{ name = "pytest-env", marker = "extra == 'tests'", specifier = ">=0.8.2" },
|
||||
{ name = "pytest-missing-modules", marker = "extra == 'tests'", specifier = ">=0.1.0" },
|
||||
{ name = "pytest-qt", marker = "extra == 'tests'", specifier = ">=4.2.0" },
|
||||
{ name = "python-pptx", specifier = ">=0.6.21" },
|
||||
{ name = "qtpy", specifier = ">=2.4.1" },
|
||||
{ name = "requests", specifier = ">=2.28.1" },
|
||||
{ name = "rich", specifier = ">=13.3.2" },
|
||||
{ name = "rtoml", specifier = ">=0.11.0" },
|
||||
{ name = "sphinx", marker = "extra == 'docs'", specifier = ">=7.0.1" },
|
||||
{ name = "sphinx-click", marker = "extra == 'docs'", specifier = ">=4.4.0" },
|
||||
{ name = "sphinx-copybutton", marker = "extra == 'docs'", specifier = ">=0.5.1" },
|
||||
{ name = "sphinx-design", marker = "extra == 'docs'", specifier = ">=0.6.1" },
|
||||
{ name = "sphinxcontrib-programoutput", marker = "extra == 'docs'", specifier = ">=0.18" },
|
||||
{ name = "sphinxext-opengraph", marker = "extra == 'docs'", specifier = ">=0.7.5" },
|
||||
{ name = "tqdm", specifier = ">=4.64.1" },
|
||||
]
|
||||
provides-extras = ["full", "magic", "manim", "manimgl", "pyqt6", "pyqt6-full", "pyside6", "pyside6-full", "sphinx-directive"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "bump-my-version", specifier = ">=0.20.3" },
|
||||
{ name = "furo", specifier = ">=2023.5.20" },
|
||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10'", specifier = ">=8.6.1" },
|
||||
{ name = "ipykernel", specifier = ">=6.25.1" },
|
||||
{ name = "manim-slides", extras = ["full", "manimgl", "pyqt6", "pyside6", "sphinx-directive"] },
|
||||
{ name = "manim-slides", extras = ["magic", "manim", "pyqt6", "sphinx-directive"] },
|
||||
{ name = "myst-parser", specifier = ">=2.0.0" },
|
||||
{ name = "nbsphinx", specifier = ">=0.9.2" },
|
||||
{ name = "pandoc", specifier = ">=2.3" },
|
||||
{ name = "pre-commit", specifier = ">=3.5.0" },
|
||||
{ name = "pygments", specifier = "<2.19" },
|
||||
{ name = "pytest", specifier = ">=7.4.0" },
|
||||
{ name = "pytest-cov", specifier = ">=4.1.0" },
|
||||
{ name = "pytest-env", specifier = ">=0.8.2" },
|
||||
{ name = "pytest-missing-modules", specifier = ">=0.1.0" },
|
||||
{ name = "pytest-qt", specifier = ">=4.2.0" },
|
||||
{ name = "setuptools", specifier = ">=73.0.1" },
|
||||
{ name = "sphinx", specifier = ">=7.0.1" },
|
||||
{ name = "sphinx-click", specifier = ">=4.4.0" },
|
||||
{ name = "sphinx-copybutton", specifier = ">=0.5.1" },
|
||||
{ name = "sphinx-design", specifier = ">=0.6.1" },
|
||||
{ name = "sphinxcontrib-programoutput", specifier = ">=0.18" },
|
||||
{ name = "sphinxext-opengraph", specifier = ">=0.7.5" },
|
||||
]
|
||||
docs = [
|
||||
{ name = "furo", specifier = ">=2023.5.20" },
|
||||
{ name = "ipykernel", specifier = ">=6.25.1" },
|
||||
{ name = "manim-slides", extras = ["magic", "manim", "pyqt6", "sphinx-directive"] },
|
||||
{ name = "myst-parser", specifier = ">=2.0.0" },
|
||||
{ name = "nbsphinx", specifier = ">=0.9.2" },
|
||||
{ name = "pandoc", specifier = ">=2.3" },
|
||||
{ name = "pygments", specifier = "<2.19" },
|
||||
{ name = "sphinx", specifier = ">=7.0.1" },
|
||||
{ name = "sphinx-click", specifier = ">=4.4.0" },
|
||||
{ name = "sphinx-copybutton", specifier = ">=0.5.1" },
|
||||
{ name = "sphinx-design", specifier = ">=0.6.1" },
|
||||
{ name = "sphinxcontrib-programoutput", specifier = ">=0.18" },
|
||||
{ name = "sphinxext-opengraph", specifier = ">=0.7.5" },
|
||||
]
|
||||
tests = [
|
||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10'", specifier = ">=8.6.1" },
|
||||
{ name = "manim-slides", extras = ["full", "manimgl", "pyqt6", "pyside6", "sphinx-directive"] },
|
||||
{ name = "pytest", specifier = ">=7.4.0" },
|
||||
{ name = "pytest-cov", specifier = ">=4.1.0" },
|
||||
{ name = "pytest-env", specifier = ">=0.8.2" },
|
||||
{ name = "pytest-missing-modules", specifier = ">=0.1.0" },
|
||||
{ name = "pytest-qt", specifier = ">=4.2.0" },
|
||||
{ name = "setuptools", specifier = ">=73.0.1" },
|
||||
]
|
||||
|
||||
@ -2579,7 +2609,7 @@ name = "plumbum"
|
||||
version = "1.9.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "pywin32", marker = "platform_python_implementation != 'PyPy' and platform_system == 'Windows'" },
|
||||
{ name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083 }
|
||||
wheels = [
|
||||
@ -4150,7 +4180,7 @@ name = "tqdm"
|
||||
version = "4.67.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "colorama", marker = "platform_system == 'Windows'" },
|
||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 }
|
||||
wheels = [
|
||||
|
Reference in New Issue
Block a user