Skip to content

Commit fcf7c1a

Browse files
committed
Merge branch 'main' into reorganize
2 parents 880cba3 + 4e9cabf commit fcf7c1a

File tree

18 files changed

+3287
-2447
lines changed

18 files changed

+3287
-2447
lines changed

.pre-commit-config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,28 @@ ci:
66
autoupdate_commit_msg: 'chore(deps): pre-commit autoupdate'
77
repos:
88
- repo: https://github.com/pre-commit/pre-commit-hooks
9-
rev: v5.0.0
9+
rev: v6.0.0
1010
hooks:
1111
- id: check-yaml
1212
- id: check-toml
1313
- id: end-of-file-fixer
1414
- id: trailing-whitespace
1515
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
16-
rev: v2.14.0
16+
rev: v2.15.0
1717
hooks:
1818
- id: pretty-format-yaml
1919
args: [--autofix]
2020
- id: pretty-format-toml
2121
exclude: poetry.lock
2222
args: [--autofix, --trailing-commas]
2323
- repo: https://github.com/astral-sh/ruff-pre-commit
24-
rev: v0.11.5
24+
rev: v0.12.10
2525
hooks:
2626
- id: ruff
2727
args: [--fix]
2828
- id: ruff-format
2929
- repo: https://github.com/pre-commit/mirrors-mypy
30-
rev: v1.15.0
30+
rev: v1.17.1
3131
hooks:
3232
- id: mypy
3333
additional_dependencies: [types-requests, types-setuptools]

CHANGELOG.md

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
<!-- start changelog -->
99

1010
(unreleased)=
11-
## [Unreleased](https://github.com/jeertmans/manim-slides/compare/v5.5.1...HEAD)
11+
## [Unreleased](https://github.com/jeertmans/manim-slides/compare/v5.5.2...HEAD)
1212

1313
(unreleased-chore)=
1414
### Chore
1515

16+
- Moved `manim_slides.docs.manim_slides_directive` to `manim_slides.sphinxext.manim_slides_directive`.
17+
This is a **breaking change** because documentation configs have
18+
to be updated.
19+
[#242](https://github.com/jeertmans/manim-slides/pull/242)
20+
21+
(v5.5.2)=
22+
## [v5.5.2](https://github.com/jeertmans/manim-slides/compare/v5.5.1...v5.5.2)
23+
24+
(v5.5.2-added)=
25+
### Added
26+
27+
- `manim-slides render` now exits with the same return code as the one returned by `manim render` or `manimgl`.
28+
[@chrjabs](https://github.com/chrjabs) [#545](https://github.com/jeertmans/manim-slides/pull/545)
29+
30+
(v5.5.2-chore)=
31+
### Chore
32+
1633
- Moved `docs` and `tests` extras, as well as `dev-dependencies`,
1734
inside groups in `dependency-groups`. This could break existing code
1835
when using one of those extras, but as they were not part of the public API,
1936
we do not consider this to be a **breaking change**.
2037
[#542](https://github.com/jeertmans/manim-slides/pull/542)
21-
- Moved `manim_slides.docs.manim_slides_directive` to `manim_slides.sphinxext.manim_slides_directive`.
22-
This is a **breaking change** because documentation configs have
23-
to be updated.
24-
[#242](https://github.com/jeertmans/manim-slides/pull/242)
38+
- Added example in the research section of the gallery.
39+
[@mmcilree](https://github.com/mmcilree) [#552](https://github.com/jeertmans/manim-slides/pull/552)
40+
- Added example in the school work section of the gallery.
41+
[@casperalgera](https://github.com/casperalgera) [#556](https://github.com/jeertmans/manim-slides/pull/556)
42+
- Added example in the school work section of the gallery.
43+
[@amstrdm](https://github.com/amstrdm) [#557](https://github.com/jeertmans/manim-slides/pull/557)
44+
- Fixed some tests that were failing.
45+
[#550](https://github.com/jeertmans/manim-slides/pull/550)
46+
- Pinned `setuptools<81` for `manimgl` extra, as `setuptools>=81`
47+
dropped support for its API.
48+
[#550](https://github.com/jeertmans/manim-slides/pull/550)
49+
50+
(v5.5.2-fixed)=
51+
### Fixed
52+
53+
- Fixed potential import issue of ManimGL, importing `manimlib` will parse `sys.argv`
54+
to initialize the config, which can lead to surprising behavior when using the library with
55+
different command line arguments that are not meant to be used by ManimGL.
56+
[#550](https://github.com/jeertmans/manim-slides/pull/550)
2557

2658
(v5.5.1)=
2759
## [v5.5.1](https://github.com/jeertmans/manim-slides/compare/v5.5.0...v5.5.1)

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ keywords:
2727
- PowerPoint
2828
- Python
2929
license: MIT
30-
version: v5.5.1
30+
version: v5.5.2
3131
preferred-citation:
3232
publisher:
3333
name: The Open Journal

README.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,21 +154,23 @@ Below is a comparison of the most used ones with Manim Slides:
154154

155155
## Citing
156156

157-
If you use this project, please cite it using the following reference:
157+
If you use this software, please cite it using as:
158158

159159
```bibtex
160160
@article{Jerome_Eertmans_Manim_Slides_A_2023,
161-
title = {{Manim Slides: A Python package for presenting Manim content anywhere}},
162-
author = {{Jérome Eertmans}},
163-
year = 2023,
164-
month = aug,
165-
journal = {Journal of Open Source Education},
166-
volume = 6,
167-
doi = {10.21105/jose.00206}
161+
title = {{Manim Slides: A Python package for presenting Manim content anywhere}},
162+
author = {{Jérome Eertmans}},
163+
year = 2023,
164+
month = aug,
165+
journal = {Journal of Open Source Education},
166+
volume = 6,
167+
doi = {10.21105/jose.00206}
168168
}
169169
```
170170

171-
or by linking this GitHub repository at the end of the presentation.
171+
or by linking this GitHub repository at the end of your presentation.
172+
173+
Other citation formats can be obtained by clicking on the *Cite this repository* button on this page.
172174

173175
## Contributing
174176

docs/source/gallery.md

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ If you too have created content with Manim Slides that is available online
1414
(e.g., a YouTube video or website),
1515
don't hesitate to contact us so that we can share your content on this page!
1616

17-
## Scientif Research
17+
## Scientific Research
1818

1919
Below are people that dissimenate their research results
2020
using Manim Slides presentations.
@@ -23,7 +23,7 @@ using Manim Slides presentations.
2323

2424
Daniel publishes his presentations on *Cosmology, String Theory and related*
2525
topics on his
26-
[personal website](https://panopepino.github.io/web_page/main_page/slides.html). https://panopepino.github.io/web_page/main_page/slides.html
26+
[personal website](https://panopepino.github.io/web_page/main_page/slides.html).
2727

2828
For example, below are the slides of a seminar he gave titled
2929
[Our Universe on a (Dark) Bubble](https://panopepino.github.io/web_page/main_page/presentations/2023_11_long/LS.html).
@@ -67,9 +67,66 @@ For example, below are the slides of his
6767
</iframe>
6868
</div>
6969

70+
### Matthew McIlree
71+
72+
Matthew is a Computer Science researcher from Scotland and has used Manim Slides
73+
to present his work on *Proof Logging for Constraint Programming*. He also publishes
74+
his presentation slides on his [personal website](https://matthewmcilree.com).
75+
76+
Here are the slides from a 25-minute talk he presented at the 39th Annual AAAI Conference on Artificial Intelligence titled
77+
[Certifying Bounds Propagation for Integer Multiplication Constraints](https://matthewmcilree.com/files/slides/mcilree_aaai2025.html).
78+
79+
<div style="position:relative;padding-bottom:56.25%;">
80+
<iframe
81+
loading="lazy"
82+
style="width:100%;height:100%;position:absolute;left:0px;top:0px;"
83+
frameborder="1"
84+
width="100%"
85+
height="100%"
86+
allowfullscreen
87+
allow="autoplay"
88+
src="https://matthewmcilree.com/files/slides/mcilree_aaai2025.html">
89+
</iframe>
90+
</div>
91+
7092
## School Work
7193

7294
Below are people that used Manim Slides for school presentations.
7395

74-
*This list is currently empty. Please reach out to us if you have examples
75-
to share!*
96+
### Antonio Caserta
97+
98+
Antonio is a 17-year-old high school student from Germany who used Manim Slides to present his final project, *Episteme*, an AI financial terminal that uses crowdsourced data from social networks to gather stock insights.
99+
100+
The slides from his 30-minute presentation to the school board can be found below and on his [Github repository](https://github.com/amstrdm/episteme-manim-slides)
101+
102+
<div style="position:relative;padding-bottom:56.25%;">
103+
<iframe
104+
loading="lazy"
105+
style="width:100%;height:100%;position:absolute;left:0px;top:0px;"
106+
frameborder="1"
107+
width="100%"
108+
height="100%"
109+
allowfullscreen
110+
allow="autoplay"
111+
src="https://amstrdm.github.io/episteme-manim-slides/">
112+
</iframe>
113+
</div>
114+
115+
### Casper Algera
116+
117+
Casper, a mathematics student from the Netherlands, used Manim Slides to present his bachelor's thesis.
118+
In his presentation, he illustrates a probabilistic coupling argument related to the [contact process](https://en.wikipedia.org/wiki/Contact_process_(mathematics)).
119+
His slides are available below, and his full presentation can be viewed on [YouTube](https://www.youtube.com/watch?v=ZJhvfCL5MWE).
120+
121+
<div style="position:relative;padding-bottom:56.25%;">
122+
<iframe
123+
loading="lazy"
124+
style="width:100%;height:100%;position:absolute;left:0px;top:0px;"
125+
frameborder="1"
126+
width="100%"
127+
height="100%"
128+
allowfullscreen
129+
allow="autoplay"
130+
src="https://casperalgera.github.io/criticalvalueCP/">
131+
</iframe>
132+
</div>

manim_slides/__version__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
"""Manim Slides' version."""
22

3-
__version__ = "5.4.2"
3+
__version__ = "5.5.2"
4+

manim_slides/checkhealth.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,13 @@ def checkhealth() -> None:
2020
click.secho("\tmanim not found", bold=True)
2121

2222
try:
23+
# Manimlib parses sys.argv on import, so we clear it temporarily.
24+
old_argv = sys.argv
25+
sys.argv = [__file__]
2326
from manimlib import __version__ as manimlib_version
2427

28+
sys.argv = old_argv
29+
2530
click.echo(f"\tmanimgl (version: {manimlib_version})")
2631
except ImportError:
2732
click.secho("\tmanimgl not found", bold=True)

manim_slides/cli/render/commands.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ def render(ce: bool, gl: bool, args: tuple[str, ...]) -> None:
4848
if ce and gl:
4949
raise click.UsageError("You cannot specify both --CE and --GL renderers.")
5050
if gl:
51-
subprocess.run([sys.executable, "-m", "manimlib", "-w", *args])
51+
completed = subprocess.run([sys.executable, "-m", "manimlib", "-w", *args])
5252
else:
53-
from manim.cli.render.commands import render as render_ce
54-
55-
render_ce(args, standalone_mode=False)
53+
completed = subprocess.run([sys.executable, "-m", "manim", "render", *args])
54+
sys.exit(completed.returncode)

manim_slides/slide/animation.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,17 @@
2222
from manim import LEFT, AnimationGroup, FadeIn, FadeOut
2323
from manim.mobject.mobject import Mobject
2424
else:
25+
import sys
26+
27+
# Manimlib parses sys.argv on import, so we clear it temporarily.
28+
old_argv = sys.argv
29+
sys.argv = [__file__]
2530
from manimlib import LEFT, AnimationGroup, FadeIn, FadeOut
2631

32+
sys.argv = old_argv
33+
34+
del sys
35+
2736
Mobject = Any
2837

2938

manim_slides/slide/manimlib.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
"""ManimGL's implementation of the Slide class."""
22

3+
import sys
34
from pathlib import Path
45
from typing import Any, ClassVar, Optional
56

6-
from manimlib import Scene, ThreeDCamera
7+
# Manimlib parses sys.argv on import, so we clear it temporarily.
8+
old_argv = sys.argv
9+
sys.argv = [__file__]
10+
from manimlib import Scene, ThreeDCamera # noqa: E402
711

8-
from .base import BaseSlide
12+
sys.argv = old_argv
13+
14+
from .base import BaseSlide # noqa: E402
915

1016

1117
class Slide(BaseSlide, Scene): # type: ignore[misc]

0 commit comments

Comments
 (0)