[Import] Marked filters from internal imports as internal

- Allows using _* as name
This commit is contained in:
Salvador E. Tropea 2023-01-04 13:45:17 -03:00
parent 638dcdf970
commit c8ae01c374
1 changed files with 14 additions and 11 deletions

View File

@ -192,7 +192,7 @@ class CfgYamlReader(object):
raise KiPlotConfigurationError("`groups` must be a list") raise KiPlotConfigurationError("`groups` must be a list")
return groups return groups
def _parse_variant_or_filter(self, o_tree, kind, reg_class): def _parse_variant_or_filter(self, o_tree, kind, reg_class, is_internal=False):
kind_f = kind[0].upper()+kind[1:] kind_f = kind[0].upper()+kind[1:]
try: try:
name = str(o_tree['name']) name = str(o_tree['name'])
@ -213,27 +213,28 @@ class CfgYamlReader(object):
name_type = "`"+name+"` ("+otype+")" name_type = "`"+name+"` ("+otype+")"
logger.debug("Parsing "+kind+" "+name_type) logger.debug("Parsing "+kind+" "+name_type)
o_var = reg_class.get_class_for(otype)() o_var = reg_class.get_class_for(otype)()
o_var._internal = is_internal
o_var.set_tree(o_tree) o_var.set_tree(o_tree)
o_var.name = name o_var.name = name
o_var._name_type = name_type o_var._name_type = name_type
# Don't configure it yet, wait until we finish loading (could be an import) # Don't configure it yet, wait until we finish loading (could be an import)
return o_var return o_var
def _parse_variants(self, v): def _parse_variants(self, v, is_internal=False):
variants = {} variants = {}
if isinstance(v, list): if isinstance(v, list):
for o in v: for o in v:
o_var = self._parse_variant_or_filter(o, 'variant', RegVariant) o_var = self._parse_variant_or_filter(o, 'variant', RegVariant, is_internal)
variants[o_var.name] = o_var variants[o_var.name] = o_var
else: else:
raise KiPlotConfigurationError("`variants` must be a list") raise KiPlotConfigurationError("`variants` must be a list")
return variants return variants
def _parse_filters(self, v): def _parse_filters(self, v, is_internal=False):
filters = {} filters = {}
if isinstance(v, list): if isinstance(v, list):
for o in v: for o in v:
o_fil = self._parse_variant_or_filter(o, 'filter', RegFilter) o_fil = self._parse_variant_or_filter(o, 'filter', RegFilter, is_internal)
self.configure_variant_or_filter(o_fil) self.configure_variant_or_filter(o_fil)
filters[o_fil.name] = o_fil filters[o_fil.name] = o_fil
else: else:
@ -349,11 +350,11 @@ class CfgYamlReader(object):
logger.warning(W_NOPREFLIGHTS+"No preflights found in `{}`".format(fn_rel)) logger.warning(W_NOPREFLIGHTS+"No preflights found in `{}`".format(fn_rel))
return sel_pres return sel_pres
def _parse_import_filters(self, filters, explicit_fils, fn_rel, data, imported): def _parse_import_filters(self, filters, explicit_fils, fn_rel, data, imported, is_internal):
sel_fils = {} sel_fils = {}
if filters is None or len(filters) > 0: if filters is None or len(filters) > 0:
if 'filters' in data: if 'filters' in data:
imported.filters.update(self._parse_filters(data['filters'])) imported.filters.update(self._parse_filters(data['filters'], is_internal))
i_fils = imported.filters i_fils = imported.filters
if filters is not None: if filters is not None:
for f in filters: for f in filters:
@ -395,11 +396,11 @@ class CfgYamlReader(object):
logger.warning(W_NOGROUPS+"No groups found in `{}`".format(fn_rel)) logger.warning(W_NOGROUPS+"No groups found in `{}`".format(fn_rel))
return sel_grps return sel_grps
def _parse_import_variants(self, vars, explicit_vars, fn_rel, data, imported): def _parse_import_variants(self, vars, explicit_vars, fn_rel, data, imported, is_internal):
sel_vars = {} sel_vars = {}
if vars is None or len(vars) > 0: if vars is None or len(vars) > 0:
if 'variants' in data: if 'variants' in data:
imported.variants.update(self._parse_variants(data['variants'])) imported.variants.update(self._parse_variants(data['variants'], is_internal))
i_vars = imported.variants i_vars = imported.variants
if vars is not None: if vars is not None:
for f in vars: for f in vars:
@ -536,9 +537,11 @@ class CfgYamlReader(object):
# Preflights # Preflights
all_collected.preflights.extend(self._parse_import_preflights(pre, explicit_pres, fn_rel, data, imported)) all_collected.preflights.extend(self._parse_import_preflights(pre, explicit_pres, fn_rel, data, imported))
# Filters # Filters
all_collected.filters.update(self._parse_import_filters(filters, explicit_fils, fn_rel, data, imported)) all_collected.filters.update(self._parse_import_filters(filters, explicit_fils, fn_rel, data, imported,
is_internal))
# Variants # Variants
all_collected.variants.update(self._parse_import_variants(vars, explicit_vars, fn_rel, data, imported)) all_collected.variants.update(self._parse_import_variants(vars, explicit_vars, fn_rel, data, imported,
is_internal))
# Globals # Globals
update_dict(all_collected.globals, self._parse_import_globals(globals, explicit_globals, fn_rel, data, imported)) update_dict(all_collected.globals, self._parse_import_globals(globals, explicit_globals, fn_rel, data, imported))
# Groups # Groups