call default_factorys on State.reset (#2749)
This commit is contained in:
parent
3bcd0672e5
commit
e70c149752
@ -1047,7 +1047,12 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|||||||
for prop_name in self.base_vars:
|
for prop_name in self.base_vars:
|
||||||
if prop_name == constants.ROUTER:
|
if prop_name == constants.ROUTER:
|
||||||
continue # never reset the router data
|
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.
|
# Recursively reset the substates.
|
||||||
for substate in self.substates.values():
|
for substate in self.substates.values():
|
||||||
|
Loading…
Reference in New Issue
Block a user