diff --git a/reflex/state.py b/reflex/state.py index 11f5b09b7..7688dcf78 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -4075,12 +4075,19 @@ def reload_state_module( 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): reload_state_module(module=module, state=subclass) if subclass.__module__ == module and module is not None: state.class_subclasses.remove(subclass) state._always_dirty_substates.discard(subclass.get_name()) - state._potentially_dirty_states.discard(subclass.get_name()) state._var_dependencies = {} state._init_var_dependency_dicts() state.get_class_substate.cache_clear() diff --git a/reflex/utils/exec.py b/reflex/utils/exec.py index 479ff816a..67df7ea91 100644 --- a/reflex/utils/exec.py +++ b/reflex/utils/exec.py @@ -488,7 +488,7 @@ def output_system_info(): dependencies.append(fnm_info) if system == "Linux": - import distro + import distro # pyright: ignore[reportMissingImports] os_version = distro.name(pretty=True) else: