Recursively reload submodules

This commit is contained in:
Ellwood Zwovic
2017-07-24 17:42:00 -07:00
parent 4cc865cd62
commit 5fcc8153f6

View File

@@ -17,12 +17,23 @@ import logging
log = logging.getLogger(__name__)
if 'bpy' in locals():
import importlib
from importlib import reload
log.debug("Reloading")
subproc = importlib.reload(subproc)
bpkg = importlib.reload(bpkg)
def recursive_reload(mod):
"""Reloads the given module and all its submodules"""
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
else:
from . import subproc
from . import bpkg