/ 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