/ imports.py
imports.py
1 """ 2 DreamTalk Imports - Fresh Architecture (v2.0) 3 4 Simplified import module for DreamTalk. 5 All objects use geometry-based stroke rendering and Python Generators. 6 No Sketch & Toon or XPresso dependencies. 7 8 Usage: 9 from DreamTalk.imports import * 10 11 Canonical syntax also available: 12 from DreamTalk.imports import Holon, Dream, TwoDDream, ThreeDDream 13 from DreamTalk.imports import Length, Bipolar, Color, Completion 14 from DreamTalk.imports import State 15 """ 16 17 from types import ModuleType 18 19 try: 20 from importlib import reload 21 except ImportError: 22 from imp import reload 23 24 def rreload(module): 25 """Recursively reload modules.""" 26 reload(module) 27 for attribute_name in dir(module): 28 attribute = getattr(module, attribute_name) 29 if type(attribute) is ModuleType: 30 rreload(attribute) 31 32 33 # Reload submodules to pick up changes 34 import sys 35 import importlib 36 import DreamTalk.scene 37 import DreamTalk.utils 38 import DreamTalk.objects.abstract_objects 39 import DreamTalk.objects.helper_objects 40 import DreamTalk.objects.camera_objects 41 import DreamTalk.objects.custom_objects 42 import DreamTalk.objects.effect_objects 43 import DreamTalk.objects.line_objects 44 import DreamTalk.objects.solid_objects 45 import DreamTalk.objects.stroke_objects 46 import DreamTalk.constants 47 import DreamTalk.xpresso.userdata 48 import DreamTalk.xpresso.types 49 import DreamTalk.xpresso.states 50 import DreamTalk.animation.animation 51 import DreamTalk.animation.abstract_animators 52 import DreamTalk.animation.animate 53 54 # Resolve DreamTalk path 55 import os as _os 56 DreamTalk_path = _os.path.dirname(_os.path.abspath(__file__)) 57 58 # Reload order matters - dependencies first 59 reload(DreamTalk.scene) 60 reload(DreamTalk.utils) 61 reload(DreamTalk.objects.abstract_objects) 62 reload(DreamTalk.objects.helper_objects) 63 reload(DreamTalk.objects.camera_objects) 64 reload(DreamTalk.objects.custom_objects) 65 reload(DreamTalk.objects.effect_objects) 66 reload(DreamTalk.objects.stroke_objects) 67 reload(DreamTalk.objects.line_objects) 68 reload(DreamTalk.objects.solid_objects) 69 reload(DreamTalk.constants) 70 reload(DreamTalk.xpresso.userdata) 71 reload(DreamTalk.xpresso.types) 72 reload(DreamTalk.xpresso.states) 73 reload(DreamTalk.animation.animation) 74 reload(DreamTalk.animation.abstract_animators) 75 reload(DreamTalk.animation.animate) 76 77 78 # Import public API 79 from DreamTalk.scene import * 80 from DreamTalk.objects.helper_objects import * 81 from DreamTalk.objects.camera_objects import * 82 from DreamTalk.objects.custom_objects import * 83 from DreamTalk.objects.effect_objects import * 84 from DreamTalk.objects.line_objects import * 85 from DreamTalk.objects.solid_objects import * 86 from DreamTalk.objects.stroke_objects import * 87 from DreamTalk.constants import * 88 from DreamTalk.xpresso.userdata import * 89 from DreamTalk.animation.abstract_animators import * 90 91 # Canonical DreamTalk syntax - philosophical naming 92 from DreamTalk.objects.abstract_objects import Holon 93 from DreamTalk.scene import Dream, TwoDDream, ThreeDDream 94 from DreamTalk.objects.camera_objects import Observer 95 from DreamTalk.xpresso.types import Length, Angle, Bipolar, Completion, Color, Integer, Bool 96 from DreamTalk.xpresso.states import State