mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
mutable dict inherit from endpoint
This commit is contained in:
parent
830076debf
commit
cf79d23c9f
3 changed files with 27 additions and 44 deletions
|
|
@ -4,7 +4,7 @@ from .lib import (
|
||||||
NOT_SET,
|
NOT_SET,
|
||||||
OverrideState
|
OverrideState
|
||||||
)
|
)
|
||||||
from . import ItemEntity
|
from . import EndpointEntity
|
||||||
from .exceptions import DefaultsNotDefined
|
from .exceptions import DefaultsNotDefined
|
||||||
from pype.settings.constants import (
|
from pype.settings.constants import (
|
||||||
METADATA_KEYS,
|
METADATA_KEYS,
|
||||||
|
|
@ -13,7 +13,8 @@ from pype.settings.constants import (
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class DictMutableKeysEntity(ItemEntity):
|
class DictMutableKeysEntity(EndpointEntity):
|
||||||
|
""""""
|
||||||
schema_types = ["dict-modifiable"]
|
schema_types = ["dict-modifiable"]
|
||||||
_miss_arg = object()
|
_miss_arg = object()
|
||||||
|
|
||||||
|
|
@ -78,20 +79,6 @@ class DictMutableKeysEntity(ItemEntity):
|
||||||
self.children_by_key[new_key] = self.children_by_key.pop(old_key)
|
self.children_by_key[new_key] = self.children_by_key.pop(old_key)
|
||||||
self.on_change()
|
self.on_change()
|
||||||
|
|
||||||
def change_child_key(self, child_entity, new_key):
|
|
||||||
old_key = None
|
|
||||||
for key, child in self.children_by_key.items():
|
|
||||||
if child is child_entity:
|
|
||||||
old_key = key
|
|
||||||
break
|
|
||||||
|
|
||||||
self.change_key(old_key, new_key)
|
|
||||||
|
|
||||||
def get_child_key(self, child_entity):
|
|
||||||
for key, child in self.children_by_key.items():
|
|
||||||
if child is child_entity:
|
|
||||||
return key
|
|
||||||
return None
|
|
||||||
def _add_key(self, key):
|
def _add_key(self, key):
|
||||||
if key in self.children_by_key:
|
if key in self.children_by_key:
|
||||||
self.pop(key)
|
self.pop(key)
|
||||||
|
|
@ -112,6 +99,21 @@ class DictMutableKeysEntity(ItemEntity):
|
||||||
self.on_change()
|
self.on_change()
|
||||||
return new_child
|
return new_child
|
||||||
|
|
||||||
|
def change_child_key(self, child_entity, new_key):
|
||||||
|
old_key = None
|
||||||
|
for key, child in self.children_by_key.items():
|
||||||
|
if child is child_entity:
|
||||||
|
old_key = key
|
||||||
|
break
|
||||||
|
|
||||||
|
self.change_key(old_key, new_key)
|
||||||
|
|
||||||
|
def get_child_key(self, child_entity):
|
||||||
|
for key, child in self.children_by_key.items():
|
||||||
|
if child is child_entity:
|
||||||
|
return key
|
||||||
|
return None
|
||||||
|
|
||||||
def _item_initalization(self):
|
def _item_initalization(self):
|
||||||
self._default_metadata = {}
|
self._default_metadata = {}
|
||||||
self._studio_override_metadata = {}
|
self._studio_override_metadata = {}
|
||||||
|
|
@ -185,12 +187,7 @@ class DictMutableKeysEntity(ItemEntity):
|
||||||
|
|
||||||
return "/".join([self.path, result_key])
|
return "/".join([self.path, result_key])
|
||||||
|
|
||||||
def on_change(self):
|
def on_child_change(self, _child_entity):
|
||||||
for callback in self.on_change_callbacks:
|
|
||||||
callback()
|
|
||||||
self.parent.on_child_change(self)
|
|
||||||
|
|
||||||
def on_child_change(self, _child_obj):
|
|
||||||
if self._ignore_child_changes:
|
if self._ignore_child_changes:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
@ -367,19 +364,7 @@ class DictMutableKeysEntity(ItemEntity):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def settings_value(self):
|
def _settings_value(self):
|
||||||
if self._override_state is OverrideState.NOT_DEFINED:
|
|
||||||
return NOT_SET
|
|
||||||
|
|
||||||
if self.is_group:
|
|
||||||
if self._override_state is OverrideState.STUDIO:
|
|
||||||
if not self._has_studio_override:
|
|
||||||
return NOT_SET
|
|
||||||
|
|
||||||
elif self._override_state is OverrideState.PROJECT:
|
|
||||||
if not self._has_project_override:
|
|
||||||
return NOT_SET
|
|
||||||
|
|
||||||
output = {}
|
output = {}
|
||||||
for key, child_entity in self.children_by_key.items():
|
for key, child_entity in self.children_by_key.items():
|
||||||
child_value = child_entity.settings_value()
|
child_value = child_entity.settings_value()
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,11 @@ class EndpointEntity(ItemEntity):
|
||||||
return NOT_SET
|
return NOT_SET
|
||||||
return self._settings_value()
|
return self._settings_value()
|
||||||
|
|
||||||
|
def on_change(self):
|
||||||
|
for callback in self.on_change_callbacks:
|
||||||
|
callback()
|
||||||
|
self.parent.on_child_change(self)
|
||||||
|
|
||||||
def update_default_value(self, value):
|
def update_default_value(self, value):
|
||||||
value = self._check_update_value(value, "default")
|
value = self._check_update_value(value, "default")
|
||||||
self._default_value = value
|
self._default_value = value
|
||||||
|
|
@ -184,9 +189,7 @@ class InputEntity(EndpointEntity):
|
||||||
|
|
||||||
self._value_is_modified = value_is_modified
|
self._value_is_modified = value_is_modified
|
||||||
|
|
||||||
for callback in self.on_change_callbacks:
|
super(InputEntity, self).on_change()
|
||||||
callback()
|
|
||||||
self.parent.on_child_change(self)
|
|
||||||
|
|
||||||
def on_child_change(self, child_obj):
|
def on_child_change(self, child_obj):
|
||||||
raise TypeError("Input entities do not contain children.")
|
raise TypeError("Input entities do not contain children.")
|
||||||
|
|
|
||||||
|
|
@ -149,12 +149,7 @@ class ListEntity(EndpointEntity):
|
||||||
for item in value:
|
for item in value:
|
||||||
self.append(item)
|
self.append(item)
|
||||||
|
|
||||||
def on_change(self):
|
def on_child_change(self, _child_entity):
|
||||||
for callback in self.on_change_callbacks:
|
|
||||||
callback()
|
|
||||||
self.parent.on_child_change(self)
|
|
||||||
|
|
||||||
def on_child_change(self, child_obj):
|
|
||||||
if self._ignore_child_changes:
|
if self._ignore_child_changes:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue