Make separator character configurable
This commit is contained in:
parent
45a45dc69e
commit
0d1e3d715d
@ -75,9 +75,13 @@ def parse(yaml_input: str, file_out: (str, Path) = None, return_types: (None, st
|
|||||||
|
|
||||||
# go through connection sets, generate and connect components ==============
|
# go through connection sets, generate and connect components ==============
|
||||||
|
|
||||||
def resolve_designator(inp):
|
template_separator_char = '.' # TODO: make user-configurable (in case user wants to use `.` as part of their template/component names)
|
||||||
if '.' in inp: # generate a new instance of an item
|
|
||||||
template, designator = inp.split('.') # TODO: handle more than one `.`
|
def resolve_designator(inp, separator):
|
||||||
|
if separator in inp: # generate a new instance of an item
|
||||||
|
if inp.count(separator) > 1:
|
||||||
|
raise Exception(f'{inp} - Found more than one separator ({separator})')
|
||||||
|
template, designator = inp.split(separator)
|
||||||
if designator == '':
|
if designator == '':
|
||||||
autogenerated_designators[template] = autogenerated_designators.get(template, 0) + 1
|
autogenerated_designators[template] = autogenerated_designators.get(template, 0) + 1
|
||||||
designator = f'__{template}_{autogenerated_designators[template]}'
|
designator = f'__{template}_{autogenerated_designators[template]}'
|
||||||
@ -148,11 +152,11 @@ def parse(yaml_input: str, file_out: (str, Path) = None, return_types: (None, st
|
|||||||
for index, entry in enumerate(connection_set):
|
for index, entry in enumerate(connection_set):
|
||||||
if isinstance(entry, list):
|
if isinstance(entry, list):
|
||||||
for subindex, item in enumerate(entry):
|
for subindex, item in enumerate(entry):
|
||||||
template, designator = resolve_designator(item)
|
template, designator = resolve_designator(item, template_separator_char)
|
||||||
connection_set[index][subindex] = designator
|
connection_set[index][subindex] = designator
|
||||||
elif isinstance(entry, dict):
|
elif isinstance(entry, dict):
|
||||||
key = list(entry.keys())[0]
|
key = list(entry.keys())[0]
|
||||||
template, designator = resolve_designator(key)
|
template, designator = resolve_designator(key, template_separator_char)
|
||||||
value = entry[key]
|
value = entry[key]
|
||||||
connection_set[index] = {designator: value}
|
connection_set[index] = {designator: value}
|
||||||
else:
|
else:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user