Skip to content

Commit a23bc18

Browse files
author
Oliver Strait
committed
Custom api for DearPyGui to process and fetch
Scene classes
1 parent 91c4f3e commit a23bc18

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

manim/scene/scene.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import threading
1717
import time
1818
from dataclasses import dataclass
19-
from pathlib import Path
2019
from queue import Queue
2120

2221
import srt
@@ -56,7 +55,7 @@
5655
from ..utils.family_ops import restructure_list_to_exclude_certain_family_members
5756
from ..utils.file_ops import open_media_file
5857
from ..utils.iterables import list_difference_update, list_update
59-
from ..utils.module_ops import scene_classes_from_file
58+
from ..utils.module_ops import scene_classes_for_gui
6059

6160
if TYPE_CHECKING:
6261
from collections.abc import Iterable, Sequence
@@ -1622,9 +1621,7 @@ def scene_selection_callback(sender: Any, data: Any) -> None:
16221621
config["scene_names"] = (dpg.get_value(sender),)
16231622
self.queue.put(SceneInteractRerun("gui"))
16241623

1625-
scene_classes = scene_classes_from_file(
1626-
Path(config["input_file"]), full_list=True
1627-
) # type: ignore[call-overload]
1624+
scene_classes = scene_classes_for_gui(config.input_file, type(self))
16281625
scene_names = [scene_class.__name__ for scene_class in scene_classes]
16291626

16301627
with dpg.window(

manim/utils/module_ops.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,9 @@ def is_child_scene(obj: Any) -> bool:
8282
if len(classes) == 0:
8383
raise ValueError(f"Could not found any classes of type {class_type.__name__}")
8484
return classes
85+
86+
87+
def scene_classes_for_gui(path: str, class_type: type[T]) -> list[type[T]]:
88+
"""Specified interface of dearpyGUI to fetch Scene-class instances"""
89+
module = module_from_file(Path(path))
90+
return search_classes_from_module(module, class_type)

0 commit comments

Comments
 (0)