Source code for elasticai.creator.graph.name_generation
import re
[docs]
class NameRegistry:
def __init__(self):
self._registry = {}
def _get_name_count(self, name):
return self._registry.get(name, 0)
[docs]
def prepopulate(self, names):
for name in names:
match = re.match(r"(.+)_(\d+)$", name)
suffix = 0
if match:
name = match.group(1)
suffix = int(match.group(2))
suffix = max(suffix, self._get_name_count(name))
self._registry[name] = suffix
return self
[docs]
def get_unique_name(self, name):
if name not in self._registry:
self._registry[name] = 0
return name
new_name = f"{name}_{self._registry[name] + 1}"
self._registry[name] += 1
return new_name