* fix(lib): deprecation warnings
* fix(tests): collect tests in the correct order
* fix(tests): ignore pydub warning
* fix(tests): correctly ignore warnings
* fix(ci): do we need faulthandler?
* remove old validation check
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update CHANGELOG.md
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix(lib): prevent filename collision
Apparently, ManimCE can produce two different animations with the same name (i.e., the same hash). As documented, ManimGL would any produce files with the same name so this fix was needed.
Closes#428
* chore(lib): update comment
chore(lib): update comment
* chore(tests): add test
* chore(tests): remove redundant underscore
* chore(docs): add changelog entry
* test: re-add opencv-python
* chore(dev): move to Rye instead of PDM
* try fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: build backend
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: string quotes?
* small fixes
* upgrade typing
* fix(ci): rye install on Windows
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): typos
* fix
* fix(ci): actually use right python version
* fix(deps): manimgl
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix docs
* another fix
* cleanup
* make sure to use trusted publisher
* chore(docs): remove PDM
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(ci): checking links and spell checking
* chore(ci): move markdown-link-check to GitHub ci
Because pre-commit.ci does not have access to the internet...
* fix(lib): revert `reverse-...` utils because of warnings
* chore(ci): checking links and spell checking
* chore(ci): move markdown-link-check to GitHub ci
Because pre-commit.ci does not have access to the internet...
* fix(docs): myst-parser xref cannot end with .html
* fix(docs): oops
* chore(deps): make Qt backend optional
TODO:
- [ ] Add relevant entry in CHANGELOG
- [ ] Update install documentation
- [ ] Make sure `manim-slides convert` can run without any Qt backend
- [ ] Make sure test suite works (partially) without any Qt backend
- [ ] Make sure we can import `manim_slides` without any Qt backend
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(deps): some fixes but wip
* chore(docs): update
* chore(deps): support PyQt6
* chore(deps): make Qt backend optional
TODO:
- [ ] Add relevant entry in CHANGELOG
- [ ] Update install documentation
- [ ] Make sure `manim-slides convert` can run without any Qt backend
- [ ] Make sure test suite works (partially) without any Qt backend
- [ ] Make sure we can import `manim_slides` without any Qt backend
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(deps): some fixes but wip
* chore(docs): update
* chore(deps): support PyQt6
* fix(deps): ci and docs
* fix(lib): missing package
* chore(ci): does it work?
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(test): skip failing
* chore(docs): update
* chore(docs): update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(docs): typo
* fix(test): quit instead of shutdown
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(lib): do not include reversed files in HTML assets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(lib): enhance notes support
TODO: fix keyboard inputs and window order with `present`.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lint): allow too complex
* wip: presenter mode
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat(cli): add presenter view
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(lib): add support for presenter notes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(test): typo
* Update test_slide.py
* Update convert.py
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(lib): simplify how to add config options
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lint): some fixes
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(lib): add `auto_next` option
As suggested in #302, you can now automatically skip a slide. It works both with `present` and `convert --to=html`!
Closes#302
* chore(ci): add trigger on push on main
* refactor(lib): change how manim API is imported
* chore(lib): delete old files
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: moving all commands
* adding animations
* fix tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix mypy
* fixes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* trying to fix docs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: docs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* make it work
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip test
* tests are working
* improving docs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix index
* docs: nicer shift
* docs: nicer quickstart example
* fix tests
* change tests
* move coverage to test workflow
* fix(tests): remove resolve
* strict resolve
* change local path test
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* documented changes
* cleanup docs
* cleanup files
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): set type
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wip: rewrite player
* wip(cli): new player
* wip(player): allow to close
* Auto stash before merge of "rewrite-player" and "origin/rewrite-player"
* feat(cli): new player
* chore(docs): document changes
* feat(cli): add info window
* chore(lib/cli): one video per slide
As titled, this PR changes how Manim Slides used to work by only storing one video file per slide.
Previously, a slide would store all animations that occur during the given slide. Up to now, the only "advantage" of this was that it would allow the user to know which animation is played.
But, at the cost of a very complex logic in present, just especially for reversed slides.
On top of top, all converter actually need to concatenate the animations from each slide into one, so it is now performed at rendering time.
To migrate from previous Manim Slides versions, the best is the render the slides again, using `manim render` or `manimgl render`.
Currently, it is not possible to start at a given animation anymore. However, if wanted, I may re-implement this, but this would require to change the config file again.
* fix(ci): trying to fix tests
* chore(test): renaming files
* chore(docs): remove old line from changelog
* fix(docs): typo
* fix(ci): manimgl and smarter comparison
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This PR introduces a **BREAKING CHANGE**: the general config file is now written in the TOML format. Keys are also placed under a shared subsection. Previous config files will be ignore.
Migration from the previous format can be easily performed with `manim-slides init` and copy/pasting the key codes if necessary.
* fix(lib/cli): relative paths, empty slides, and tests
This fixes two issues:
1. Empty slides are now reported as error, to prevent indexing error;
2. Changing the folder path will now produce an absolute path to slides, which was not the case before and would lead to a "file does not exist error".
A few tests were also added to cover those
* fix(lib): fix from_file, remove useless field, and more
* chore(tests): remove print
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(deps): bumping pydantic to V2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): validators
* fix(ci): add tests and fixes
* fix(lib): add missing mode arg
* fix(lib): change function name
* chore(tests): add more tests and use pytest
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(deps): change test deps
* chore(ci): install manim deps
* fix(ci): move to right place
* fix(lib): add custom schema
* fix(lib): validators
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Use scene background color as default
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Minor changes to feature: Read scene background
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Small fix for feature "Read bg color"
* chore(ci): add typing ignore
* fix(ci): typo
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
* feat(cli): auto detect resolution
The `present` command will now read by default the resolution of each presentation, and only change it if specified by the user.
This PR also fixes bugs introduced by #156 and previous PRs, where the transition between two presentation was not correct...
* fix(lib): better to test if not None
* chore(lib): reduce import overhead
This PR should reduce the import time overhead caused by manim imports. To solve this, manim is only imported when Slide or ThreeDSlide is needed. A custom logger is now defined, which copies the one from Manim Community. FFMPEG_BIN is now hardcoded, but should be configurable in the future via the CLI or some config file.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): remove last .manim import
* fix(lib): remove print
* chore(lib): fix typo
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): using cached files when possible
This should improve a bit the overall performances
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wip(lib): change os.path to pathlib.Path
* chore(lib): use pathlib.Path instead of str
* fix(logger): convert Path to str
* chore(lint): add type hint to prevent future errors
* fix(lib): correct suffix addition
* wip(cli): convert slides to html using RevealJS
* wip: convert - almost fully working
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: remove unused file
* fix: add last slides in now performed during rendering
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): testing ConvertExample too
* fix: ManimGL does not consider wait as an animation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This adds a new option that allows to control how the video is going to be scaled. By default, we now use a smooth rescaling, but fast mode with no interpolation can be used (previously default).
* Mouse Show/Hide feature
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Mouse Hide/Show Fix
Applied requested changes for PR
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
* wip: use PyQT5 for window display
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: first slide is shown
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: pushing non-working code
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: some logging
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat: new configuration wizard working
* fix: prevent key error
* wip: making action work
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: soon done! info + video
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: bugs in sleep and exiting
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* try: offscreen
* fix: pop default value if not present
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat: add aspect ratio option
* chore: typing wip
* fix: now() function returns seconds, not milliseconds anymore
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix(lib): add a more meaningful error message
This adds an error message to explain why calling `self.pause()` cannot work if no previous animation was played.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix(ui): enhance window quality
This fix always resizes the frame size, as this seems to be a good cross-platform fix to the quality issue that occurs when the frame does not match the window size.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: remove unused import
* fix: actually only resize on Windows
* feat(cli): optional interpolation flag
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore: add image fox windows quality fix
* chore(README): document Windows fix
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix(cli): previous presentation starts last slide
This changes the previous behavior that was such that going to previous presentation (scene) would start it from zero.
* fix(README): remove non-working svgs
Seems like GitHub does not support that
* wip: onto a cleaner parser, and more robust presentation
* fix(README): remove non-working svgs
Seems like GitHub does not support that
* wip: onto a cleaner parser, and more robust presentation
* wip: some progress
* fix: this is kinda working now
* fix: repeated reversed slide
* fix: import __version__ without importing package
* fix: typing list -> List
* chore(README): update features