enhancementhelp wanted
Repository metrics
- Stars
- (17,820 stars)
- PR merge metrics
- (Avg merge 90d 10h) (31 merged PRs in 30d)
Description
Enhancement proposal
Pluggy: https://pluggy.readthedocs.io/
Currently how out plugin system works is
- Get the list of plugins from the user config file
- Add them to the global namespace, so when the user does
from manim import *the plugin will also be imported. - Has no possible way to extend parts of the library without monkey patching or making a new subclass out of the original one. See how
manim-onlinetexdoes this currently, https://github.com/ManimCommunity/manim-onlinetex/blob/38ed76c55f387e9205beeb28307a634b46691df1/src/manim_onlinetex/manim_onlinetex.py#L109
With pluggy in place, we can decide the parts of the library which can be extendable without subclassing, see an example. https://pluggy.readthedocs.io/en/latest/#a-toy-example And it feels like we shouldn't reinvent the wheel rather than using something which is already available.
Additional comments
This would kinda require all the plugins to update to use pluggy. Let the previous implementation of importing to global namespace stay, for backward compatibility.
Proof of concept
- #2635