Fix #122769: bpy.utils.register_submodule_factory fails with extensions
The unregister function from register_submodule_factory didn't support a sub-module name argument.
This commit is contained in:
@@ -829,17 +829,16 @@ def register_submodule_factory(module_name, submodule_names):
|
||||
def register():
|
||||
nonlocal module
|
||||
module = __import__(name=module_name, fromlist=submodule_names)
|
||||
submodules[:] = [getattr(module, name) for name in submodule_names]
|
||||
for mod in submodules:
|
||||
submodules[:] = [(getattr(module, mod_name), mod_name) for mod_name in submodule_names]
|
||||
for mod, _mod_name in submodules:
|
||||
mod.register()
|
||||
|
||||
def unregister():
|
||||
from sys import modules
|
||||
for mod in reversed(submodules):
|
||||
for mod, mod_name in reversed(submodules):
|
||||
mod.unregister()
|
||||
name = mod.__name__
|
||||
delattr(module, name.partition(".")[2])
|
||||
del modules[name]
|
||||
delattr(module, mod_name)
|
||||
del modules[mod.__name__]
|
||||
submodules.clear()
|
||||
|
||||
return register, unregister
|
||||
|
||||
Reference in New Issue
Block a user