diff options
-rw-r--r-- | doc/python_api/sphinx_doc_gen.py | 1 | ||||
-rw-r--r-- | release/scripts/io/netrender/__init__.py | 23 | ||||
-rw-r--r-- | release/scripts/modules/bpy/utils.py | 11 | ||||
-rw-r--r-- | release/scripts/op/animsys_update.py | 1 | ||||
-rw-r--r-- | release/scripts/op/io_anim_bvh/__init__.py | 4 | ||||
-rw-r--r-- | release/scripts/op/io_mesh_ply/__init__.py | 4 | ||||
-rw-r--r-- | release/scripts/op/io_scene_3ds/__init__.py | 6 | ||||
-rw-r--r-- | release/scripts/op/io_scene_fbx/__init__.py | 4 | ||||
-rw-r--r-- | release/scripts/op/io_scene_obj/__init__.py | 6 | ||||
-rw-r--r-- | release/scripts/op/io_scene_x3d/__init__.py | 4 | ||||
-rw-r--r-- | release/scripts/op/io_shape_mdd/__init__.py | 6 | ||||
-rw-r--r-- | release/scripts/op/nla.py | 2 | ||||
-rw-r--r-- | release/scripts/ui/space_view3d.py | 1 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_interface.c | 15 |
14 files changed, 50 insertions, 38 deletions
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index ae0bb43d1bc..48dce92bee3 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -51,7 +51,6 @@ import os import inspect import bpy import rna_info -reload(rna_info) # lame, python wont give some access ClassMethodDescriptorType = type(dict.__dict__['fromkeys']) diff --git a/release/scripts/io/netrender/__init__.py b/release/scripts/io/netrender/__init__.py index 2ee57708fe0..2fc9e78c097 100644 --- a/release/scripts/io/netrender/__init__.py +++ b/release/scripts/io/netrender/__init__.py @@ -20,17 +20,18 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "init_data" in locals(): - reload(model) - reload(operators) - reload(client) - reload(slave) - reload(master) - reload(master_html) - reload(utils) - reload(balancing) - reload(ui) - reload(repath) - reload(versioning) + import imp + imp.reload(model) + imp.reload(operators) + imp.reload(client) + imp.reload(slave) + imp.reload(master) + imp.reload(master_html) + imp.reload(utils) + imp.reload(balancing) + imp.reload(ui) + imp.reload(repath) + imp.reload(versioning) else: from netrender import model from netrender import operators diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py index 54acc4874d1..e979c75f95e 100644 --- a/release/scripts/modules/bpy/utils.py +++ b/release/scripts/modules/bpy/utils.py @@ -140,6 +140,7 @@ def load_scripts(reload_scripts=False, refresh_scripts=False): traceback.print_exc() def test_reload(mod): + import imp # reloading this causes internal errors # because the classes from this module are stored internally # possibly to refresh internal references too but for now, best not to. @@ -147,7 +148,7 @@ def load_scripts(reload_scripts=False, refresh_scripts=False): return mod try: - return reload(mod) + return imp.reload(mod) except: traceback.print_exc() @@ -365,6 +366,7 @@ def addon_enable(module_name, default_set=True): import os import sys import bpy_types as _bpy_types + import imp _bpy_types._register_immediate = False @@ -385,7 +387,7 @@ def addon_enable(module_name, default_set=True): print("module changed on disk:", mod.__file__, "reloading...") try: - reload(mod) + imp.reload(mod) except: handle_error() del sys.modules[module_name] @@ -477,7 +479,8 @@ def addon_reset_all(reload_scripts=False): """ Sets the addon state based on the user preferences. """ - + import imp + # RELEASE SCRIPTS: official scripts distributed in Blender releases paths = script_paths("addons") @@ -496,7 +499,7 @@ def addon_reset_all(reload_scripts=False): if reload_scripts: mod = _sys.modules.get(mod_name) if mod: - reload(mod) + imp.reload(mod) if is_enabled == is_loaded: pass diff --git a/release/scripts/op/animsys_update.py b/release/scripts/op/animsys_update.py index 41ad65b1d71..24a56c7a1e1 100644 --- a/release/scripts/op/animsys_update.py +++ b/release/scripts/op/animsys_update.py @@ -692,7 +692,6 @@ class UpdateAnimData(bpy.types.Operator): def execute(self, context): import animsys_refactor - reload(animsys_refactor) animsys_refactor.update_data_paths(data_path_update) return {'FINISHED'} diff --git a/release/scripts/op/io_anim_bvh/__init__.py b/release/scripts/op/io_anim_bvh/__init__.py index d32fdfad0ce..ec56f76b11f 100644 --- a/release/scripts/op/io_anim_bvh/__init__.py +++ b/release/scripts/op/io_anim_bvh/__init__.py @@ -20,9 +20,9 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "import_bvh" in locals(): - reload(import_bvh) + imp.reload(import_bvh) import bpy diff --git a/release/scripts/op/io_mesh_ply/__init__.py b/release/scripts/op/io_mesh_ply/__init__.py index 73ac15167ae..b7004be98c2 100644 --- a/release/scripts/op/io_mesh_ply/__init__.py +++ b/release/scripts/op/io_mesh_ply/__init__.py @@ -18,9 +18,9 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "export_ply" in locals(): - reload(export_ply) + imp.reload(export_ply) import bpy diff --git a/release/scripts/op/io_scene_3ds/__init__.py b/release/scripts/op/io_scene_3ds/__init__.py index da5807b5c4a..51cec065ac0 100644 --- a/release/scripts/op/io_scene_3ds/__init__.py +++ b/release/scripts/op/io_scene_3ds/__init__.py @@ -20,11 +20,11 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "import_3ds" in locals(): - reload(import_3ds) + imp.reload(import_3ds) if "export_3ds" in locals(): - reload(export_3ds) + imp.reload(export_3ds) import bpy diff --git a/release/scripts/op/io_scene_fbx/__init__.py b/release/scripts/op/io_scene_fbx/__init__.py index d2c809cab0b..baf7e78014a 100644 --- a/release/scripts/op/io_scene_fbx/__init__.py +++ b/release/scripts/op/io_scene_fbx/__init__.py @@ -20,9 +20,9 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "export_fbx" in locals(): - reload(export_fbx) + imp.reload(export_fbx) import bpy diff --git a/release/scripts/op/io_scene_obj/__init__.py b/release/scripts/op/io_scene_obj/__init__.py index f2825d4e33e..8a35bb81dd9 100644 --- a/release/scripts/op/io_scene_obj/__init__.py +++ b/release/scripts/op/io_scene_obj/__init__.py @@ -20,11 +20,11 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "import_obj" in locals(): - reload(import_obj) + imp.reload(import_obj) if "export_obj" in locals(): - reload(export_obj) + imp.reload(export_obj) import bpy diff --git a/release/scripts/op/io_scene_x3d/__init__.py b/release/scripts/op/io_scene_x3d/__init__.py index a33c5c05dfd..545c90a9a2a 100644 --- a/release/scripts/op/io_scene_x3d/__init__.py +++ b/release/scripts/op/io_scene_x3d/__init__.py @@ -18,9 +18,9 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "export_x3d" in locals(): - reload(export_x3d) + imp.reload(export_x3d) import bpy diff --git a/release/scripts/op/io_shape_mdd/__init__.py b/release/scripts/op/io_shape_mdd/__init__.py index dc4f6513d61..1cd1ff5dce1 100644 --- a/release/scripts/op/io_shape_mdd/__init__.py +++ b/release/scripts/op/io_shape_mdd/__init__.py @@ -20,11 +20,11 @@ # To support reload properly, try to access a package var, if it's there, reload everything if "bpy" in locals(): - from imp import reload + import imp if "import_mdd" in locals(): - reload(import_mdd) + imp.reload(import_mdd) if "export_mdd" in locals(): - reload(export_mdd) + imp.reload(export_mdd) import bpy diff --git a/release/scripts/op/nla.py b/release/scripts/op/nla.py index e5a6375e2eb..acea7d53572 100644 --- a/release/scripts/op/nla.py +++ b/release/scripts/op/nla.py @@ -75,8 +75,6 @@ def pose_info(): def bake(frame_start, frame_end, step=1, only_selected=False): - # import nla; reload(nla); nla.bake() - scene = bpy.context.scene obj = bpy.context.object pose = obj.pose diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py index edc0f3ddd65..c3ef572d5c4 100644 --- a/release/scripts/ui/space_view3d.py +++ b/release/scripts/ui/space_view3d.py @@ -2290,7 +2290,6 @@ class VIEW3D_PT_context_properties(bpy.types.Panel): def draw(self, context): import rna_prop_ui - # reload(rna_prop_ui) member = __class__._active_context_member(context) if member: diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 7b31f77a0c9..2c615a52860 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -252,11 +252,24 @@ void BPY_start_python( int argc, char **argv ) { /* our own import and reload functions */ PyObject *item; + PyObject *mod; //PyObject *m = PyImport_AddModule("__builtin__"); //PyObject *d = PyModule_GetDict(m); PyObject *d = PyEval_GetBuiltins( ); - PyDict_SetItemString(d, "reload", item=PyCFunction_New(&bpy_reload_meth, NULL)); Py_DECREF(item); +// PyDict_SetItemString(d, "reload", item=PyCFunction_New(&bpy_reload_meth, NULL)); Py_DECREF(item); PyDict_SetItemString(d, "__import__", item=PyCFunction_New(&bpy_import_meth, NULL)); Py_DECREF(item); + + /* move reload here + * XXX, use import hooks */ + mod= PyImport_ImportModuleLevel((char *)"imp", NULL, NULL, NULL, 0); + if(mod) { + PyDict_SetItemString(PyModule_GetDict(mod), "reload", item=PyCFunction_New(&bpy_reload_meth, NULL)); Py_DECREF(item); + Py_DECREF(mod); + } + else { + BKE_assert(!"unable to load 'imp' module."); + } + } pyrna_alloc_types(); |