mirror of https://gitlab.com/pamhyr/pamhyr2
Solver: Mage: Fix node name generator.
parent
4a333ff988
commit
fa9ffccb19
|
|
@ -123,11 +123,15 @@ class Mage(CommandLineSolver):
|
||||||
|
|
||||||
_l_alph = len(_alph)
|
_l_alph = len(_alph)
|
||||||
|
|
||||||
|
_nodes_cnt = 0
|
||||||
|
_nodes_names = {}
|
||||||
|
_nodes_views = set()
|
||||||
|
|
||||||
def get_reach_name(self, reach):
|
def get_reach_name(self, reach):
|
||||||
return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0")
|
return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0")
|
||||||
|
|
||||||
def get_node_name(self, node):
|
def get_node_name(self, node):
|
||||||
"""Generate a 3 char name from node pamhyr_id
|
"""Generate a 3 char name for node
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
node: The node
|
node: The node
|
||||||
|
|
@ -137,18 +141,33 @@ class Mage(CommandLineSolver):
|
||||||
"""
|
"""
|
||||||
n = node.pamhyr_id
|
n = node.pamhyr_id
|
||||||
|
|
||||||
return "".join(
|
if n in self._nodes_names:
|
||||||
list(
|
return self._nodes_names[n]
|
||||||
|
|
||||||
|
name = ""
|
||||||
|
|
||||||
|
checked_new = False
|
||||||
|
while not checked_new:
|
||||||
|
self._nodes_cnt += 1
|
||||||
|
nc = self._nodes_cnt
|
||||||
|
|
||||||
|
name = "".join(
|
||||||
map(
|
map(
|
||||||
lambda i: self._alph[i % self._l_alph],
|
lambda i: self._alph[i % self._l_alph],
|
||||||
[
|
[
|
||||||
int(n/1000),
|
int(nc / (self._l_alph * self._l_alph)),
|
||||||
int(n/10),
|
int(nc / self._l_alph),
|
||||||
n
|
nc
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
checked_new = name not in self._nodes_views
|
||||||
|
|
||||||
|
self._nodes_views.add(name)
|
||||||
|
self._nodes_names[n] = name
|
||||||
|
|
||||||
|
return name
|
||||||
|
|
||||||
def cmd_args(self, study):
|
def cmd_args(self, study):
|
||||||
lst = super(Mage, self).cmd_args(study)
|
lst = super(Mage, self).cmd_args(study)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue