mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-05-19 03:26:17 +08:00

* feat(lib): add Jupyter magic And also use the same logger level as manim (by default) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix(lib): remove deleted module * chore(lib): fix typing issues * chore(docs): document magic * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix(ci): install kernel * fix(ci): spawning is not necessary (and fails) * chore(ci): add ipykernel --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
# flake8: noqa: F401
|
|
import sys
|
|
from types import ModuleType
|
|
from typing import Any, List
|
|
|
|
from .__version__ import __version__
|
|
|
|
|
|
class module(ModuleType):
|
|
def __getattr__(self, name: str) -> Any:
|
|
if name == "Slide" or name == "ThreeDSlide":
|
|
module = __import__(
|
|
"manim_slides.slide", None, None, ["Slide", "ThreeDSlide"]
|
|
)
|
|
return getattr(module, name)
|
|
elif name == "ManimSlidesMagic":
|
|
module = __import__(
|
|
"manim_slides.ipython.ipython_magic", None, None, ["ManimSlidesMagic"]
|
|
)
|
|
magic = getattr(module, name)
|
|
|
|
from IPython import get_ipython
|
|
|
|
ipy = get_ipython()
|
|
|
|
if ipy is not None:
|
|
ipy.register_magics(magic)
|
|
|
|
return magic
|
|
|
|
return ModuleType.__getattribute__(self, name)
|
|
|
|
def __dir__(self) -> List[str]:
|
|
result = list(new_module.__all__)
|
|
result.extend(
|
|
(
|
|
"__file__",
|
|
"__doc__",
|
|
"__all__",
|
|
"__docformat__",
|
|
"__name__",
|
|
"__path__",
|
|
"__package__",
|
|
"__version__",
|
|
)
|
|
)
|
|
return result
|
|
|
|
|
|
old_module = sys.modules["manim_slides"]
|
|
new_module = sys.modules["manim_slides"] = module("manim_slides")
|
|
|
|
new_module.__dict__.update(
|
|
{
|
|
"__file__": __file__,
|
|
"__package__": "manim_slides",
|
|
"__path__": __path__,
|
|
"__doc__": __doc__,
|
|
"__version__": __version__,
|
|
"__all__": ("__version__", "ManimSlidesMagic", "Slide", "ThreeDSlide"),
|
|
}
|
|
)
|