handle cleaning out _potentially_dirty_states on reload
This commit is contained in:
parent
0aad41681c
commit
c30e725715
@ -4075,12 +4075,19 @@ def reload_state_module(
|
|||||||
state: Recursive argument for the state class to reload.
|
state: Recursive argument for the state class to reload.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
# Clean out all potentially dirty states of reloaded modules.
|
||||||
|
for pd_state in tuple(state._potentially_dirty_states):
|
||||||
|
with contextlib.suppress(ValueError):
|
||||||
|
if (
|
||||||
|
state.get_root_state().get_class_substate(pd_state).__module__ == module
|
||||||
|
and module is not None
|
||||||
|
):
|
||||||
|
state._potentially_dirty_states.remove(pd_state)
|
||||||
for subclass in tuple(state.class_subclasses):
|
for subclass in tuple(state.class_subclasses):
|
||||||
reload_state_module(module=module, state=subclass)
|
reload_state_module(module=module, state=subclass)
|
||||||
if subclass.__module__ == module and module is not None:
|
if subclass.__module__ == module and module is not None:
|
||||||
state.class_subclasses.remove(subclass)
|
state.class_subclasses.remove(subclass)
|
||||||
state._always_dirty_substates.discard(subclass.get_name())
|
state._always_dirty_substates.discard(subclass.get_name())
|
||||||
state._potentially_dirty_states.discard(subclass.get_name())
|
|
||||||
state._var_dependencies = {}
|
state._var_dependencies = {}
|
||||||
state._init_var_dependency_dicts()
|
state._init_var_dependency_dicts()
|
||||||
state.get_class_substate.cache_clear()
|
state.get_class_substate.cache_clear()
|
||||||
|
@ -488,7 +488,7 @@ def output_system_info():
|
|||||||
dependencies.append(fnm_info)
|
dependencies.append(fnm_info)
|
||||||
|
|
||||||
if system == "Linux":
|
if system == "Linux":
|
||||||
import distro
|
import distro # pyright: ignore[reportMissingImports]
|
||||||
|
|
||||||
os_version = distro.name(pretty=True)
|
os_version = distro.name(pretty=True)
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user