- use relative imports for packages
authorCampbell Barton <ideasman42@gmail.com>
Sat, 20 Nov 2010 02:56:58 +0000 (02:56 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 20 Nov 2010 02:56:58 +0000 (02:56 +0000)
- reload() has been removed from pythons builtins. use imp.reload() instead (still need to apply globally).
- fixed own mistake, not ignoring 'filter_glob' as a keyword argument (broke fbx, obj, 3ds export)

release/scripts/modules/bpy/__init__.py
release/scripts/modules/bpy/utils.py
release/scripts/op/console_python.py
release/scripts/op/io_anim_bvh/__init__.py
release/scripts/op/io_mesh_ply/__init__.py
release/scripts/op/io_scene_3ds/__init__.py
release/scripts/op/io_scene_fbx/__init__.py
release/scripts/op/io_scene_obj/__init__.py
release/scripts/op/io_scene_x3d/__init__.py
release/scripts/op/io_shape_mdd/__init__.py

index cba85d935ae620ea00a96c8c20f89bedc577da9f..3d8bf0724fbe1d40d1716cdc6d92919096006be2 100644 (file)
@@ -26,9 +26,8 @@ data = _bpy.data
 context = _bpy.context
 
 # python modules
-from bpy import utils, path
-
-from bpy import ops as _ops_module
+from . import utils, path
+from . import ops as _ops_module
 
 # fake operator module
 ops = _ops_module.ops_fake_module
index d5da7cfa13c84d27be8e392a6c8898034b5700f5..78c60eab4fc148223d131a4f1f05f1a0587204ec 100644 (file)
@@ -23,13 +23,12 @@ This module contains utility functions specific to blender but
 not assosiated with blenders internal data.
 """
 
-import bpy as _bpy
-import os as _os
-import sys as _sys
-
 from _bpy import blend_paths, user_resource
 from _bpy import script_paths as _bpy_script_paths
 
+import bpy as _bpy
+import os as _os
+import sys as _sys
 
 def _test_import(module_name, loaded_modules):
     import traceback
index be960d9a0d414ba2ccaeb18efb516ba2f8d6ecdd..7a969cbe9f5d0aa67e0a634d92a3f8f56a5295a6 100644 (file)
@@ -82,6 +82,9 @@ def get_console(console_id):
         namespace["__builtins__"] = sys.modules["builtins"]
         namespace["bpy"] = bpy
         namespace["C"] = bpy.context
+        
+        namespace.update(__import__("mathutils").__dict__) # from mathutils import *
+        namespace.update(__import__("math").__dict__) # from math import *
 
         console = InteractiveConsole(locals=namespace, filename="<blender_console>")
 
@@ -263,6 +266,7 @@ def banner(context):
     add_scrollback("Autocomplete:     Ctrl+Space", 'OUTPUT')
     add_scrollback("Ctrl +/-  Wheel:  Zoom", 'OUTPUT')
     add_scrollback("Builtin Modules: bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bgl, blf, mathutils", 'OUTPUT')
+    add_scrollback("Convenience Imports: from mathutils import *; from math import *", 'OUTPUT')
     add_scrollback("", 'OUTPUT')
     add_scrollback("  WARNING!!! Blender 2.5 API is subject to change, see API reference for more info.", 'ERROR')
     add_scrollback("", 'OUTPUT')
index de7d135a7b3d233d2a41f09ca91238217143bc12..d32fdfad0ce8028b0a77477cb306943be04ee467 100644 (file)
@@ -20,9 +20,9 @@
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    # only reload if we alredy loaded, highly annoying
-    import sys
-    reload(sys.modules.get("io_anim_bvh.import_bvh", sys))
+    from imp import reload
+    if "import_bvh" in locals():
+        reload(import_bvh)
 
 
 import bpy
@@ -56,8 +56,8 @@ class BvhImporter(bpy.types.Operator, ImportHelper):
                 default='NATIVE')
 
     def execute(self, context):
-        import io_anim_bvh.import_bvh
-        return io_anim_bvh.import_bvh.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
+        from . import import_bvh
+        return import_bvh.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
 
 
 def menu_func(self, context):
index cdd78d5992e18807c638022781bb2a70c0f03c1f..73ac15167ae00995f877453dabcabf375bd241f6 100644 (file)
@@ -18,8 +18,9 @@
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    import sys
-    reload(sys.modules.get("io_mesh_ply.export_ply", sys))
+    from imp import reload
+    if "export_ply" in locals():
+        reload(export_ply)
 
 
 import bpy
@@ -47,8 +48,8 @@ class ExportPLY(bpy.types.Operator, ExportHelper):
     def execute(self, context):
         filepath = self.filepath
         filepath = bpy.path.ensure_ext(filepath, self.filename_ext)
-        import io_mesh_ply.export_ply
-        return io_mesh_ply.export_ply.save(self, context, **self.as_keywords(ignore=("check_existing",)))
+        from . import export_ply
+        return export_ply.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob")))
 
     def draw(self, context):
         layout = self.layout
index ca50338eae9832caf0a3734728003cb99b0ca5c5..da5807b5c4a7a1c57e7fac08ec758a599357ddd7 100644 (file)
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    import sys
-    reload(sys.modules.get("io_scene_3ds.import_3ds", sys))
-    reload(sys.modules.get("io_scene_3ds.export_3ds", sys))
+    from imp import reload
+    if "import_3ds" in locals():
+        reload(import_3ds)
+    if "export_3ds" in locals():
+        reload(export_3ds)
 
 
 import bpy
@@ -43,8 +45,8 @@ class Import3DS(bpy.types.Operator, ImportHelper):
     use_apply_transform = BoolProperty(name="Apply Transform", description="Workaround for object transformations importing incorrectly", default=True)
 
     def execute(self, context):
-        import io_scene_3ds.import_3ds
-        return io_scene_3ds.import_3ds.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
+        from . import import_3ds
+        return import_3ds.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
 
 
 class Export3DS(bpy.types.Operator, ExportHelper):
@@ -56,8 +58,8 @@ class Export3DS(bpy.types.Operator, ExportHelper):
     filter_glob = StringProperty(default="*.3ds", options={'HIDDEN'})
 
     def execute(self, context):
-        import io_scene_3ds.export_3ds
-        return io_scene_3ds.export_3ds.save(self, context, **self.as_keywords(ignore=("check_existing",)))
+        from . import export_3ds
+        return export_3ds.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob")))
 
 
 # Add to a menu
index 9c2de24ee9558946a0091ab73a25e7a018f8cdc1..e2c281efee4dfe242c9c321bd67d2c40add23c54 100644 (file)
@@ -20,9 +20,9 @@
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    # only reload if we alredy loaded, highly annoying
-    import sys
-    reload(sys.modules.get("io_scene_fbx.export_fbx", sys))
+    from imp import reload
+    if "export_fbx" in locals():
+        reload(export_fbx)
 
 
 import bpy
@@ -87,7 +87,7 @@ class ExportFBX(bpy.types.Operator, ExportHelper):
             GLOBAL_MATRIX = mtx4_z90n * GLOBAL_MATRIX
 
         import io_scene_fbx.export_fbx
-        return io_scene_fbx.export_fbx.save(self, context, **self.as_keywords(ignore=("TX_XROT90", "TX_YROT90", "TX_ZROT90", "TX_SCALE", "check_existing")))
+        return io_scene_fbx.export_fbx.save(self, context, **self.as_keywords(ignore=("TX_XROT90", "TX_YROT90", "TX_ZROT90", "TX_SCALE", "check_existing", "filter_glob")))
 
 
 def menu_func(self, context):
index 50af30d724f4096c074966183520be6db4e6ff65..f2825d4e33e8d7e833cf0f1671e26d8b43bc51c7 100644 (file)
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    # only reload if we alredy loaded, highly annoying
-    import sys
-    reload(sys.modules.get("io_scene_obj.import_obj", sys))
-    reload(sys.modules.get("io_scene_obj.export_obj", sys))
+    from imp import reload
+    if "import_obj" in locals():
+        reload(import_obj)
+    if "export_obj" in locals():
+        reload(export_obj)
 
 
 import bpy
@@ -55,8 +56,8 @@ class ImportOBJ(bpy.types.Operator, ImportHelper):
 
     def execute(self, context):
         # print("Selected: " + context.active_object.name)
-        import io_scene_obj.import_obj
-        return io_scene_obj.import_obj.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
+        from . import import_obj
+        return import_obj.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
 
 
 class ExportOBJ(bpy.types.Operator, ExportHelper):
@@ -99,8 +100,8 @@ class ExportOBJ(bpy.types.Operator, ExportHelper):
 
 
     def execute(self, context):
-        import io_scene_obj.export_obj
-        return io_scene_obj.export_obj.save(self, context, **self.as_keywords(ignore=("check_existing",)))
+        from . import export_obj
+        return export_obj.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob")))
 
 
 def menu_func_import(self, context):
index a430d52a2d9a5433478777593b61d674763632f1..a33c5c05dfdc1c090bf7e3efdb00e1a94c653ab8 100644 (file)
@@ -18,9 +18,9 @@
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    # only reload if we alredy loaded, highly annoying
-    import sys
-    reload(sys.modules.get("io_scene_x3d.export_x3d", sys))
+    from imp import reload
+    if "export_x3d" in locals():
+        reload(export_x3d)
 
 
 import bpy
@@ -41,8 +41,8 @@ class ExportX3D(bpy.types.Operator, ExportHelper):
     use_compress = BoolProperty(name="Compress", description="GZip the resulting file, requires a full python install", default=False)
 
     def execute(self, context):
-        import io_scene_x3d.export_x3d
-        return io_scene_x3d.export_x3d.save(self, context, **self.as_keywords(ignore=("check_existing",)))
+        from . import export_x3d
+        return export_x3d.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob")))
 
 
 def menu_func(self, context):
index 588523e5aced616db7743b269b051b4b5f1d6903..dc4f6513d61e38bfc935c2b530420a9bf6d8bcf4 100644 (file)
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    # only reload if we alredy loaded, highly annoying
-    import sys
-    reload(sys.modules.get("io_shape_mdd.import_mdd", sys))
-    reload(sys.modules.get("io_shape_mdd.export_mdd", sys))
+    from imp import reload
+    if "import_mdd" in locals():
+        reload(import_mdd)
+    if "export_mdd" in locals():
+        reload(export_mdd)
 
 
 import bpy
@@ -53,9 +54,9 @@ class ImportMDD(bpy.types.Operator, ImportHelper):
         scene = context.scene
         if not self.frame_start:
             self.frame_start = scene.frame_current
-        
-        import io_shape_mdd.import_mdd
-        return io_shape_mdd.import_mdd.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
+
+        from . import import_mdd
+        return import_mdd.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
 
 class ExportMDD(bpy.types.Operator, ExportHelper):
     '''Animated mesh to MDD vertex keyframe file'''
@@ -93,8 +94,8 @@ class ExportMDD(bpy.types.Operator, ExportHelper):
         if not self.fps:
             self.fps = scene.render.fps
 
-        import io_shape_mdd.export_mdd
-        return io_shape_mdd.export_mdd.save(self, context, **self.as_keywords(ignore=("check_existing",)))
+        from . import export_mdd
+        return export_mdd.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob")))
 
 
 def menu_func_import(self, context):