mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
modified dynamic schemas attributes
This commit is contained in:
parent
fff590f7f8
commit
b507b4e9d3
1 changed files with 20 additions and 16 deletions
|
|
@ -108,8 +108,8 @@ class OverrideState:
|
|||
|
||||
|
||||
class SchemasHub:
|
||||
def __init__(self, schema_subfolder, reset=True):
|
||||
self._schema_subfolder = schema_subfolder
|
||||
def __init__(self, schema_type, reset=True):
|
||||
self._schema_type = schema_type
|
||||
|
||||
self._loaded_types = {}
|
||||
self._gui_types = tuple()
|
||||
|
|
@ -119,13 +119,17 @@ class SchemasHub:
|
|||
self._loaded_schemas = {}
|
||||
|
||||
# Attributes for modules settings
|
||||
self._modules_settings_defs_by_id = {}
|
||||
self._dynamic_schemas_def_by_id = {}
|
||||
self._dynamic_schemas_defs_by_id = {}
|
||||
self._dynamic_schemas_by_id = {}
|
||||
|
||||
# Trigger reset
|
||||
if reset:
|
||||
self.reset()
|
||||
|
||||
@property
|
||||
def schema_type(self):
|
||||
return self._schema_type
|
||||
|
||||
def reset(self):
|
||||
self._load_modules_settings_defs()
|
||||
self._load_types()
|
||||
|
|
@ -138,7 +142,7 @@ class SchemasHub:
|
|||
for module_settings_def_cls in module_settings_defs:
|
||||
module_settings_def = module_settings_def_cls()
|
||||
def_id = module_settings_def.id
|
||||
self._modules_settings_defs_by_id[def_id] = module_settings_def
|
||||
self._dynamic_schemas_defs_by_id[def_id] = module_settings_def
|
||||
|
||||
@property
|
||||
def gui_types(self):
|
||||
|
|
@ -146,7 +150,7 @@ class SchemasHub:
|
|||
|
||||
def resolve_dynamic_schema(self, dynamic_key):
|
||||
output = []
|
||||
for def_id, def_keys in self._dynamic_schemas_def_by_id.items():
|
||||
for def_id, def_keys in self._dynamic_schemas_by_id.items():
|
||||
if dynamic_key in def_keys:
|
||||
def_schema = def_keys[dynamic_key]
|
||||
if not def_schema:
|
||||
|
|
@ -346,16 +350,16 @@ class SchemasHub:
|
|||
self._crashed_on_load = {}
|
||||
self._loaded_templates = {}
|
||||
self._loaded_schemas = {}
|
||||
self._dynamic_schemas_def_by_id = {}
|
||||
self._dynamic_schemas_by_id = {}
|
||||
|
||||
dirpath = os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"schemas",
|
||||
self._schema_subfolder
|
||||
self.schema_type
|
||||
)
|
||||
loaded_schemas = {}
|
||||
loaded_templates = {}
|
||||
dynamic_schemas_def_by_id = {}
|
||||
dynamic_schemas_by_id = {}
|
||||
for root, _, filenames in os.walk(dirpath):
|
||||
for filename in filenames:
|
||||
basename, ext = os.path.splitext(filename)
|
||||
|
|
@ -405,13 +409,13 @@ class SchemasHub:
|
|||
)
|
||||
loaded_schemas[basename] = schema_data
|
||||
|
||||
defs_iter = self._modules_settings_defs_by_id.items()
|
||||
defs_iter = self._dynamic_schemas_defs_by_id.items()
|
||||
for def_id, module_settings_def in defs_iter:
|
||||
dynamic_schemas_def_by_id[def_id] = (
|
||||
module_settings_def.get_dynamic_schemas(self._schema_subfolder)
|
||||
dynamic_schemas_by_id[def_id] = (
|
||||
module_settings_def.get_dynamic_schemas(self.schema_type)
|
||||
)
|
||||
module_schemas = module_settings_def.get_settings_schemas(
|
||||
self._schema_subfolder
|
||||
self.schema_type
|
||||
)
|
||||
for key, schema_data in module_schemas.items():
|
||||
if isinstance(schema_data, list):
|
||||
|
|
@ -429,10 +433,10 @@ class SchemasHub:
|
|||
|
||||
self._loaded_templates = loaded_templates
|
||||
self._loaded_schemas = loaded_schemas
|
||||
self._dynamic_schemas_def_by_id = dynamic_schemas_def_by_id
|
||||
self._dynamic_schemas_by_id = dynamic_schemas_by_id
|
||||
|
||||
def get_dynamic_schema_def(self, schema_def_id):
|
||||
return self._dynamic_schemas_def_by_id.get(schema_def_id)
|
||||
def get_dynamic_modules_settings_defs(self, schema_def_id):
|
||||
return self._dynamic_schemas_defs_by_id.get(schema_def_id)
|
||||
|
||||
def _fill_template(self, child_data, template_def):
|
||||
"""Fill template based on schema definition and template definition.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue