|
@@ -315,7 +315,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
cls.new_backend_vars = {
|
|
|
name: value
|
|
|
for name, value in cls.__dict__.items()
|
|
|
- if types.is_backend_variable(name)
|
|
|
+ if types.is_backend_variable(name, cls)
|
|
|
and name not in cls.inherited_backend_vars
|
|
|
and not isinstance(value, FunctionType)
|
|
|
}
|
|
@@ -878,7 +878,10 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
setattr(self.parent_state, name, value)
|
|
|
return
|
|
|
|
|
|
- if types.is_backend_variable(name) and name not in RESERVED_BACKEND_VAR_NAMES:
|
|
|
+ if (
|
|
|
+ types.is_backend_variable(name, self.__class__)
|
|
|
+ and name not in RESERVED_BACKEND_VAR_NAMES
|
|
|
+ ):
|
|
|
self._backend_vars.__setitem__(name, value)
|
|
|
self.dirty_vars.add(name)
|
|
|
self._mark_dirty()
|
|
@@ -1177,7 +1180,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
subdelta = {
|
|
|
prop: getattr(self, prop)
|
|
|
for prop in delta_vars
|
|
|
- if not types.is_backend_variable(prop)
|
|
|
+ if not types.is_backend_variable(prop, self.__class__)
|
|
|
}
|
|
|
if len(subdelta) > 0:
|
|
|
delta[self.get_full_name()] = subdelta
|