core: fix __setattr__ behavior for setters

This commit is contained in:
Shiz 2022-01-18 11:17:08 +01:00
parent 1669b3fd7a
commit 02d8d5a569
1 changed files with 6 additions and 4 deletions

View File

@ -118,10 +118,12 @@ class WeegeeBase:
return self.item[name]
def __setattr__(self, name: str, value: Any) -> None:
if 'item' in self.__dict__ and self.item.is_type_resolved(name):
self.item[name] = value
else:
super().__setattr__(name, value)
if 'item' in self.__dict__:
desc = getattr(self.__class__, name, None)
if not isinstance(desc, property) and self.item.is_type_resolved(name):
self.item[name] = value
return
super().__setattr__(name, value)
def __dir__(self) -> List[str]:
return list(super().__dir__()) + list(self.item.values)