call default_factorys on State.reset (#2749)

This commit is contained in:
benedikt-bartscher 2024-02-28 23:55:22 +01:00 committed by GitHub
parent 3bcd0672e5
commit e70c149752
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1047,7 +1047,12 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
for prop_name in self.base_vars:
if prop_name == constants.ROUTER:
continue # never reset the router data
setattr(self, prop_name, copy.deepcopy(fields[prop_name].default))
field = fields[prop_name]
if default_factory := field.default_factory:
default = default_factory()
else:
default = copy.deepcopy(field.default)
setattr(self, prop_name, default)
# Recursively reset the substates.
for substate in self.substates.values():