Recursively reload submodules
This commit is contained in:
@@ -17,12 +17,23 @@ import logging
|
|||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
if 'bpy' in locals():
|
if 'bpy' in locals():
|
||||||
import importlib
|
from importlib import reload
|
||||||
|
|
||||||
log.debug("Reloading")
|
def recursive_reload(mod):
|
||||||
subproc = importlib.reload(subproc)
|
"""Reloads the given module and all its submodules"""
|
||||||
bpkg = importlib.reload(bpkg)
|
log.debug("Reloading %s", mod)
|
||||||
|
from types import ModuleType
|
||||||
|
reloaded_mod = reload(mod)
|
||||||
|
for attr in [getattr(mod, attr_name) for attr_name in dir(mod)]:
|
||||||
|
if type(attr) is ModuleType and attr.__name__.startswith(mod.__name__):
|
||||||
|
recursive_reload(attr)
|
||||||
|
return reloaded_mod
|
||||||
|
|
||||||
|
subproc = recursive_reload(subproc)
|
||||||
|
utils = recursive_reload(utils)
|
||||||
|
bpkg = recursive_reload(bpkg)
|
||||||
Package = bpkg.Package
|
Package = bpkg.Package
|
||||||
|
|
||||||
else:
|
else:
|
||||||
from . import subproc
|
from . import subproc
|
||||||
from . import bpkg
|
from . import bpkg
|
||||||
|
Reference in New Issue
Block a user