mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 08:54:53 +01:00
implemented getters and setters
This commit is contained in:
parent
5e2615e18a
commit
3ba089382d
1 changed files with 26 additions and 0 deletions
|
|
@ -36,6 +36,32 @@ class FamilyAttributeValues(dict):
|
|||
|
||||
self._last_data = copy.deepcopy(values)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
if key not in self._attr_defs_by_key:
|
||||
raise KeyError("Key \"{}\" was not found.".format(key))
|
||||
|
||||
old_value = self._data.get(key)
|
||||
if old_value == value:
|
||||
return
|
||||
self._data[key] = value
|
||||
|
||||
self._propagate_changes({
|
||||
key: (old_value, value)
|
||||
})
|
||||
|
||||
def __getitem__(self, key):
|
||||
if key not in self._attr_defs_by_key:
|
||||
return self._data[key]
|
||||
return self._data.get(key, self._attr_defs_by_key[key].default)
|
||||
|
||||
def __contains__(self, key):
|
||||
return key in self._attr_defs_by_key
|
||||
|
||||
def get(self, key, default=None):
|
||||
if key in self._attr_defs_by_key:
|
||||
return self[key]
|
||||
return default
|
||||
|
||||
def keys(self):
|
||||
return self._attr_defs_by_key.keys()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue