Skip to content

Commit 132d091

Browse files
committed
fix lines naming
1 parent 3d8f743 commit 132d091

File tree

3 files changed

+26
-14
lines changed

3 files changed

+26
-14
lines changed

openglider/glider/parametric/table/base/parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ def get_units(self) -> dict[str, type[Quantity]]:
7575
return self._units
7676

7777
def get_parser(self) -> Forward:
78-
if self._parser is None:
78+
if self._parser is None:
7979
regex_number = Regex(f"({Quantity.re_number})")
80-
units = regex_number + Regex(f"\s*({Quantity.re_unit})")
80+
units = regex_number + Regex(rf"\s*({Quantity.re_unit})")
8181
#units = Regex(Quantity.re_combined)
8282

8383
identifier = Word(alphas, alphanums + "_$")

openglider/lines/line_types/edelrid.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def A7343(strength: int, diameter: float, weight: float) -> None:
6767
"fluored": Color.parse_hex("f70000"),
6868
"sky": Color.parse_hex("b2d4dd"),
6969
"citrus": Color.parse_hex("f5ff00"),
70+
"turquoise": Color.parse_hex("44bbca")
7071
}
7172
)
7273

openglider/lines/lineset.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -628,8 +628,8 @@ def insert_block(line: Line, upper: list[Any], row: int, column: int) -> int:
628628

629629
node_group_rex = re.compile(r"[^A-Za-z]*([A-Za-z]*)[^A-Za-z]*")
630630

631-
def rename_lines(self) -> LineSet:
632-
def get_floor(line: Line) -> tuple[int, list[str]]:
631+
def rename_lines(self) -> LineSet:
632+
def get_floor(line: Line) -> tuple[int, str]:
633633
upper_lines = self.get_upper_connected_lines(line.upper_node)
634634

635635
if len(upper_lines) < 1:
@@ -638,7 +638,7 @@ def get_floor(line: Line) -> tuple[int, list[str]]:
638638
node_group = self.node_group_rex.match(line.upper_node.name)
639639
if node_group:
640640
prefix_name = node_group.group(1)
641-
return 1, [prefix_name]
641+
return 0, prefix_name
642642

643643
upper_lines_floors = [get_floor(l) for l in upper_lines]
644644
floor = max([x[0] for x in upper_lines_floors]) + 1
@@ -650,20 +650,31 @@ def get_floor(line: Line) -> tuple[int, list[str]]:
650650
prefix_lst = list(prefixes)
651651
prefix_lst.sort()
652652

653-
return floor, prefix_lst
653+
return floor, "".join(prefix_lst)
654+
655+
if not self.lines:
656+
return self
654657

655-
lines_by_prefix: dict[str, list[Line]] = {}
658+
lines_by_floor: dict[int, dict[str, list[Line]]] = {}
659+
656660
for line in self.lines:
657661
floor, prefixes = get_floor(line)
658-
prefix = f"{floor}_{''.join(prefixes)}"
659662

660-
lines_by_prefix.setdefault(prefix, [])
661-
lines_by_prefix[prefix].append(line)
663+
lines_by_floor.setdefault(floor, {})
664+
lines_by_floor[floor].setdefault(prefixes, [])
665+
666+
lines_by_floor[floor][prefixes].append(line)
667+
668+
for prefix, lines in lines_by_floor.get(0, {}).items():
669+
for line in lines:
670+
line.name = f"1_{line.upper_node.name}"
671+
672+
for floor in range(max(lines_by_floor)):
673+
for prefix, lines in lines_by_floor.get(floor, {}).items():
674+
lines_sorted = self.sort_lines(lines, by_names=True)
662675

663-
for prefix, lines in lines_by_prefix.items():
664-
lines_sorted = self.sort_lines(lines)
665-
for i, line in enumerate(lines_sorted):
666-
line.name = f"{prefix}{i+1:02d}"
676+
for i, line in enumerate(lines_sorted):
677+
line.name = f"{floor+1}_{prefix}{i+1}"
667678

668679
return self
669680

0 commit comments

Comments
 (0)