modified dynamic schemas attributes

This commit is contained in:
iLLiCiTiT 2021-08-10 13:02:08 +02:00
parent fff590f7f8
commit b507b4e9d3

View file

@ -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.