one unique source could create 2 templates
This commit is contained in:
@ -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)
|
||||
|
@ -522,7 +522,6 @@ class CreoleObjSpace:
|
||||
SpaceAnnotator(self, eosfunc_file)
|
||||
|
||||
def save(self,
|
||||
filename,
|
||||
):
|
||||
tiramisu_objects = TiramisuReflector(self.space,
|
||||
self.funcs_path,
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user