one unique source could create 2 templates

This commit is contained in:
2020-07-31 09:41:30 +02:00
parent 00a69e72a2
commit b612d7884e
11 changed files with 103 additions and 20 deletions

View File

@ -265,15 +265,17 @@ class ServiceAnnotator:
name,
path,
):
family = self.objectspace.family()
family.name = normalize_family(name)
family.doc = name
family.mode = None
self.objectspace.paths.add_family('services',
path,
family,
)
return family
if self.objectspace.paths.family_is_defined(path):
return self.objectspace.paths.get_family_obj(path)
family = self.objectspace.family()
family.name = normalize_family(name)
family.doc = name
family.mode = None
self.objectspace.paths.add_family('services',
path,
family,
)
return family
def make_group_from_elts(self,
service_name,
@ -301,11 +303,18 @@ class ServiceAnnotator:
service_name,
)
if hasattr(elt, 'source'):
c_name = elt.source
else:
c_name = elt.name
subpath = '{}.{}'.format(path, c_name)
idx = 0
while True:
if hasattr(elt, 'source'):
c_name = elt.source
else:
c_name = elt.name
if idx:
c_name += f'_{idx}'
subpath = '{}.{}'.format(path, c_name)
if not self.objectspace.paths.family_is_defined(subpath):
break
idx += 1
family = self.gen_family(c_name, subpath)
family.variable = []
listname = '{}list'.format(name)

View File

@ -522,7 +522,6 @@ class CreoleObjSpace:
SpaceAnnotator(self, eosfunc_file)
def save(self,
filename,
):
tiramisu_objects = TiramisuReflector(self.space,
self.funcs_path,

View File

@ -26,6 +26,8 @@ class Path:
self.full_paths[name] = full_name
else:
full_name = name
if full_name in self.families and self.families[full_name]['variableobj'] != variableobj:
raise DictConsistencyError(_(f'Duplicate family name {name}'))
self.families[full_name] = dict(name=name,
namespace=namespace,
variableobj=variableobj,
@ -60,6 +62,13 @@ class Path:
dico = self.families[name]
return dico['variableobj']
def family_is_defined(self,
name: str,
) -> str: # pylint: disable=C0111
if '.' not in name and name not in self.families and name in self.full_paths:
return True
return name in self.families
# Leadership
def set_leader(self,
namespace: str,