svgmapviewer-tools-floors 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +15 -0
- package/inkscape/extensions/Attic/fix_guides.inx +17 -0
- package/inkscape/extensions/Attic/fix_guides.py +30 -0
- package/inkscape/extensions/Attic/fix_symbol_links.inx +17 -0
- package/inkscape/extensions/Attic/fix_symbol_links.py +71 -0
- package/inkscape/extensions/Attic/flatten_style.inx +17 -0
- package/inkscape/extensions/Attic/flatten_style.py +31 -0
- package/inkscape/extensions/Attic/load_markers.inx +17 -0
- package/inkscape/extensions/Attic/load_markers.py +117 -0
- package/inkscape/extensions/Attic/load_patterns.inx +17 -0
- package/inkscape/extensions/Attic/load_patterns.py +116 -0
- package/inkscape/extensions/Attic/load_symbols.inx +17 -0
- package/inkscape/extensions/Attic/load_symbols.py +164 -0
- package/inkscape/extensions/Attic/renumber_tree.inx +24 -0
- package/inkscape/extensions/Attic/renumber_tree.py +39 -0
- package/inkscape/extensions/Attic/repeat_path.inx +17 -0
- package/inkscape/extensions/Attic/repeat_path.py +58 -0
- package/inkscape/extensions/Attic/resolve_facility_links.inx +19 -0
- package/inkscape/extensions/Attic/resolve_facility_links.py +16 -0
- package/inkscape/extensions/Attic/sort_symbols.inx +17 -0
- package/inkscape/extensions/Attic/sort_symbols.py +48 -0
- package/inkscape/extensions/Attic/symbol_load.inx +17 -0
- package/inkscape/extensions/Attic/symbol_load.py +99 -0
- package/inkscape/extensions/Attic/tidy_tree.inx +22 -0
- package/inkscape/extensions/Attic/tidy_tree.py +178 -0
- package/inkscape/extensions/Attic/use_shop.inx +22 -0
- package/inkscape/extensions/Attic/use_shop.py +26 -0
- package/inkscape/extensions/README.md +34 -0
- package/inkscape/extensions/daijimaps/__init__.py +72 -0
- package/inkscape/extensions/daijimaps/address_tree.py +231 -0
- package/inkscape/extensions/daijimaps/common.py +49 -0
- package/inkscape/extensions/daijimaps/generate_addresses.py +41 -0
- package/inkscape/extensions/daijimaps/guards.py +47 -0
- package/inkscape/extensions/daijimaps/map_layer.py +47 -0
- package/inkscape/extensions/daijimaps/name.py +167 -0
- package/inkscape/extensions/daijimaps/renumber.py +38 -0
- package/inkscape/extensions/daijimaps/resolve_labels.py +65 -0
- package/inkscape/extensions/daijimaps/resolve_names.py +170 -0
- package/inkscape/extensions/daijimaps/save_addresses.py +274 -0
- package/inkscape/extensions/daijimaps/types.py +128 -0
- package/inkscape/extensions/daijimaps/visit_parents.py +37 -0
- package/inkscape/extensions/extract_labels.py +79 -0
- package/inkscape/extensions/fixup_floor_svg.py +28 -0
- package/inkscape/extensions/fixup_texts.inx +15 -0
- package/inkscape/extensions/fixup_texts.py +110 -0
- package/inkscape/extensions/fixup_tree.inx +15 -0
- package/inkscape/extensions/fixup_tree.py +17 -0
- package/inkscape/extensions/flatten_transform.inx +17 -0
- package/inkscape/extensions/flatten_transform.py +63 -0
- package/inkscape/extensions/import_labels.inx +20 -0
- package/inkscape/extensions/import_labels.py +52 -0
- package/inkscape/extensions/import_shops.inx +20 -0
- package/inkscape/extensions/import_shops.py +47 -0
- package/inkscape/extensions/install.sh +14 -0
- package/inkscape/extensions/load_shops.inx +20 -0
- package/inkscape/extensions/load_shops.py +86 -0
- package/inkscape/extensions/renumber_group.inx +15 -0
- package/inkscape/extensions/renumber_group.py +17 -0
- package/inkscape/extensions/resolve_labels.inx +20 -0
- package/inkscape/extensions/resolve_labels.py +142 -0
- package/inkscape/extensions/resolve_shops.inx +20 -0
- package/inkscape/extensions/resolve_shops.py +73 -0
- package/inkscape/extensions/unresolve_labels.inx +20 -0
- package/inkscape/extensions/unresolve_labels.py +53 -0
- package/inkscape/extensions/unresolve_shops.inx +20 -0
- package/inkscape/extensions/unresolve_shops.py +56 -0
- package/inkscape/templates/floors.svg +665 -0
- package/map-extract-floors.js +821 -0
- package/package.json +19 -0
- package/pyproject.toml +20 -0
- package/scripts/inkex-inkscape +14 -0
- package/scripts/inkex-python +14 -0
- package/scripts/inkex-setup +6 -0
- package/scripts/labels.sh +18 -0
- package/scripts/regen.py +77 -0
- package/scripts/regen.sh +24 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding=utf-8
|
|
3
|
+
|
|
4
|
+
import inkex
|
|
5
|
+
import inkex.command
|
|
6
|
+
|
|
7
|
+
import daijimaps
|
|
8
|
+
import daijimaps.resolve_labels
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
PX_PER_MM = 3.779527559
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ResolveLabels(daijimaps.resolve_labels.ResolveLabels):
|
|
15
|
+
_bounding_boxes: dict[str, inkex.BoundingBox] = {}
|
|
16
|
+
|
|
17
|
+
def _exec_query_all(self) -> str:
|
|
18
|
+
return inkex.command.call(
|
|
19
|
+
"inkscape",
|
|
20
|
+
"--query-all",
|
|
21
|
+
self.document_path(),
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
def _load_bounding_boxes(self) -> None:
|
|
25
|
+
self._bounding_boxes = {}
|
|
26
|
+
query_all_result = self._exec_query_all()
|
|
27
|
+
# self.msg(f"query_all_result: {query_all_result}")
|
|
28
|
+
for line in query_all_result.splitlines():
|
|
29
|
+
if len(line) == 0:
|
|
30
|
+
continue
|
|
31
|
+
try:
|
|
32
|
+
(id, x, y, width, height) = line.split(",")
|
|
33
|
+
bb = inkex.BoundingBox.new_xywh(
|
|
34
|
+
float(x), float(y), float(width), float(height)
|
|
35
|
+
)
|
|
36
|
+
self._bounding_boxes[id] = bb
|
|
37
|
+
except Exception as e:
|
|
38
|
+
self.msg(f"failed to parse --query-all result: {line}: {e}")
|
|
39
|
+
|
|
40
|
+
def _move_resolved_name(
|
|
41
|
+
self,
|
|
42
|
+
names_group: inkex.Group,
|
|
43
|
+
unresolved_names_group: inkex.Group,
|
|
44
|
+
astr: str,
|
|
45
|
+
name: str,
|
|
46
|
+
) -> None:
|
|
47
|
+
label = f"{name} @ {astr}"
|
|
48
|
+
((x, y), _bb, _href) = self._addresses[astr]
|
|
49
|
+
daijimaps.move_name(unresolved_names_group, names_group, name, label, x, y)
|
|
50
|
+
|
|
51
|
+
def _move_resolved_names(
|
|
52
|
+
self, names_group: inkex.Group, unresolved_names_group: inkex.Group
|
|
53
|
+
) -> None:
|
|
54
|
+
self.msg(f"drawing result {self._tmp_resolved_names}")
|
|
55
|
+
for name, astrs in self._tmp_resolved_names.items():
|
|
56
|
+
for astr in astrs:
|
|
57
|
+
self._move_resolved_name(
|
|
58
|
+
names_group, unresolved_names_group, astr, name
|
|
59
|
+
)
|
|
60
|
+
self._sort_children(names_group)
|
|
61
|
+
|
|
62
|
+
def _process_addresses(self, node) -> None:
|
|
63
|
+
self.msg("=== resolve: start")
|
|
64
|
+
|
|
65
|
+
self._load_bounding_boxes()
|
|
66
|
+
# self.msg(f"_bounding_boxes: {self._bounding_boxes}")
|
|
67
|
+
|
|
68
|
+
names_group = self._prepare_names_group(node)
|
|
69
|
+
if names_group is None:
|
|
70
|
+
self.msg("(Names) group does not exist!")
|
|
71
|
+
return
|
|
72
|
+
|
|
73
|
+
unresolved_labels_group = self._prepare_unresolved_labels_group(node)
|
|
74
|
+
if unresolved_labels_group is None:
|
|
75
|
+
self.msg("(Unresolved Labels) group does not exist!")
|
|
76
|
+
return
|
|
77
|
+
|
|
78
|
+
labels_group = self._prepare_labels_group(node)
|
|
79
|
+
if labels_group is None:
|
|
80
|
+
self.msg("(Labels) group does not exist!")
|
|
81
|
+
return
|
|
82
|
+
|
|
83
|
+
# self.msg(f"_unresolved_labels: {self._unresolved_labels}")
|
|
84
|
+
|
|
85
|
+
for name, text_element in self._unresolved_labels.items():
|
|
86
|
+
addresses = self._resolved_names.get(name)
|
|
87
|
+
if addresses is None:
|
|
88
|
+
self.msg(f"_unresolved_labels: {name} {text_element}: no resolved name")
|
|
89
|
+
continue
|
|
90
|
+
bb = self._bounding_boxes.get(text_element.get_id())
|
|
91
|
+
if bb is None:
|
|
92
|
+
self.msg(f"_unresolved_labels: {name} {text_element}: no bounding box")
|
|
93
|
+
continue
|
|
94
|
+
c = bb.center
|
|
95
|
+
if c is None:
|
|
96
|
+
self.msg(f"_unresolved_labels: {name} {text_element}: no center")
|
|
97
|
+
continue
|
|
98
|
+
# XXX TODO Support multiple addresses for a name
|
|
99
|
+
(address, xy) = addresses[0]
|
|
100
|
+
if address is None:
|
|
101
|
+
self.msg(f"_unresolved_labels: {name} {text_element}: no address")
|
|
102
|
+
continue
|
|
103
|
+
(x, y) = xy
|
|
104
|
+
dcx = - c.x / PX_PER_MM # XXX unit
|
|
105
|
+
dcy = - c.y / PX_PER_MM # XXX unit
|
|
106
|
+
self.msg(f"_unresolved_labels: {name}@{xy} -> {c} ({x + dcx}, {y + dcy})")
|
|
107
|
+
t = text_element.transform
|
|
108
|
+
t2 = (
|
|
109
|
+
#t.add_translate(dcx, dcy).add_translate(x, y)
|
|
110
|
+
#if t is not None
|
|
111
|
+
#else
|
|
112
|
+
inkex.Transform(f"translate({x},{y}) translate({dcx},{dcy})")
|
|
113
|
+
)
|
|
114
|
+
text_element.transform = t2
|
|
115
|
+
text_element.set("data-x", str(x))
|
|
116
|
+
text_element.set("data-y", str(y))
|
|
117
|
+
|
|
118
|
+
text_element.label = f"{name} @ {address}"
|
|
119
|
+
|
|
120
|
+
parent = text_element.getparent()
|
|
121
|
+
if parent is not None:
|
|
122
|
+
parent.remove(text_element)
|
|
123
|
+
labels_group.append(text_element)
|
|
124
|
+
|
|
125
|
+
# resolve labels!
|
|
126
|
+
self._resolve_labels()
|
|
127
|
+
|
|
128
|
+
# self._move_resolved_names(names_group, unresolved_names_group)
|
|
129
|
+
|
|
130
|
+
# self._read_resolved_names(names_group)
|
|
131
|
+
# self._save_resolved_names()
|
|
132
|
+
# self._read_unresolved_names(unresolved_names_group)
|
|
133
|
+
# self._save_unresolved_names()
|
|
134
|
+
|
|
135
|
+
# self._save_floors_addresses()
|
|
136
|
+
# self._save_floors_names()
|
|
137
|
+
|
|
138
|
+
self.msg("=== resolve: end")
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
if __name__ == "__main__":
|
|
142
|
+
ResolveLabels().run()
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
|
3
|
+
<name>Address: Resolve: Resolve shops</name>
|
|
4
|
+
<id>daijimaps.resolve_shops</id>
|
|
5
|
+
<label>Address: Resolve: Resolve shop names to addresses.</label>
|
|
6
|
+
<param name="tab" type="notebook">
|
|
7
|
+
<page name="Options" gui-text="Options">
|
|
8
|
+
<param name="floor" type="string" gui-text="Target floor (regular expression)">.</param>
|
|
9
|
+
</page>
|
|
10
|
+
</param>
|
|
11
|
+
<effect needs-live-preview="false">
|
|
12
|
+
<object-type>all</object-type>
|
|
13
|
+
<effects-menu>
|
|
14
|
+
<submenu name="Daiji Maps"/>
|
|
15
|
+
</effects-menu>
|
|
16
|
+
</effect>
|
|
17
|
+
<script>
|
|
18
|
+
<command location="inx" interpreter="python">resolve_shops.py</command>
|
|
19
|
+
</script>
|
|
20
|
+
</inkscape-extension>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding=utf-8
|
|
3
|
+
|
|
4
|
+
import inkex
|
|
5
|
+
|
|
6
|
+
import daijimaps
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ResolveShops(daijimaps.ResolveNames):
|
|
10
|
+
def _move_resolved_name(
|
|
11
|
+
self,
|
|
12
|
+
names_group: inkex.Group,
|
|
13
|
+
unresolved_names_group: inkex.Group,
|
|
14
|
+
astr: str,
|
|
15
|
+
name: str,
|
|
16
|
+
) -> None:
|
|
17
|
+
label = f"{name} @ {astr}"
|
|
18
|
+
((x, y), _bb, _href) = self._addresses[astr]
|
|
19
|
+
daijimaps.move_name(unresolved_names_group, names_group, name, label, x, y)
|
|
20
|
+
|
|
21
|
+
def _move_resolved_names(
|
|
22
|
+
self, names_group: inkex.Group, unresolved_names_group: inkex.Group
|
|
23
|
+
) -> None:
|
|
24
|
+
self.msg(f"drawing result {self._tmp_resolved_names}")
|
|
25
|
+
for name, astrs in self._tmp_resolved_names.items():
|
|
26
|
+
for astr in astrs:
|
|
27
|
+
self._move_resolved_name(
|
|
28
|
+
names_group, unresolved_names_group, astr, name
|
|
29
|
+
)
|
|
30
|
+
self._sort_children(names_group)
|
|
31
|
+
|
|
32
|
+
def _process_addresses(self, node) -> None:
|
|
33
|
+
self.msg("=== resolve: start")
|
|
34
|
+
|
|
35
|
+
names_group = self._prepare_names_group(node)
|
|
36
|
+
unresolved_names_group = self._prepare_unresolved_names_group(node)
|
|
37
|
+
|
|
38
|
+
if names_group is None:
|
|
39
|
+
self.msg("(Names) group does not exist!")
|
|
40
|
+
return
|
|
41
|
+
if unresolved_names_group is None:
|
|
42
|
+
self.msg("(Unresolved Names) group does not exist!")
|
|
43
|
+
return
|
|
44
|
+
|
|
45
|
+
# resolve names!
|
|
46
|
+
self._resolve_names()
|
|
47
|
+
|
|
48
|
+
self._move_resolved_names(names_group, unresolved_names_group)
|
|
49
|
+
|
|
50
|
+
self._read_resolved_names(names_group)
|
|
51
|
+
self._save_resolved_names()
|
|
52
|
+
self._read_unresolved_names(unresolved_names_group)
|
|
53
|
+
self._save_unresolved_names()
|
|
54
|
+
|
|
55
|
+
self._save_floors_addresses()
|
|
56
|
+
self._save_floors_names()
|
|
57
|
+
|
|
58
|
+
self.msg("=== resolve: end")
|
|
59
|
+
|
|
60
|
+
# XXX
|
|
61
|
+
def _post_layers(self) -> None:
|
|
62
|
+
if self.options.floor != ".":
|
|
63
|
+
# avoid incomplete links
|
|
64
|
+
self.msg("=== resolve facility links: skip")
|
|
65
|
+
return
|
|
66
|
+
self.msg("=== resolve facility links: start")
|
|
67
|
+
self._collect_links()
|
|
68
|
+
self._save_links()
|
|
69
|
+
self.msg("=== resolve facility links: end")
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
if __name__ == "__main__":
|
|
73
|
+
ResolveShops().run()
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
|
3
|
+
<name>Address: Resolve: Un-resolve labels</name>
|
|
4
|
+
<id>daijimaps.unresolve_labels</id>
|
|
5
|
+
<label>Address: Resolve: Un-resolve shop labels to addresses.</label>
|
|
6
|
+
<param name="tab" type="notebook">
|
|
7
|
+
<page name="Options" gui-text="Options">
|
|
8
|
+
<param name="floor" type="string" gui-text="Target floor (regular expression)">.</param>
|
|
9
|
+
</page>
|
|
10
|
+
</param>
|
|
11
|
+
<effect needs-live-preview="false">
|
|
12
|
+
<object-type>all</object-type>
|
|
13
|
+
<effects-menu>
|
|
14
|
+
<submenu name="Daiji Maps"/>
|
|
15
|
+
</effects-menu>
|
|
16
|
+
</effect>
|
|
17
|
+
<script>
|
|
18
|
+
<command location="inx" interpreter="python">unresolve_labels.py</command>
|
|
19
|
+
</script>
|
|
20
|
+
</inkscape-extension>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding=utf-8
|
|
3
|
+
|
|
4
|
+
import inkex
|
|
5
|
+
|
|
6
|
+
import daijimaps.name
|
|
7
|
+
import daijimaps.resolve_labels
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class UnresolveLabels(daijimaps.resolve_labels.ResolveLabels):
|
|
11
|
+
def _move_resolved_label(
|
|
12
|
+
self,
|
|
13
|
+
labels_group: inkex.Group,
|
|
14
|
+
unresolved_labels_group: inkex.Group,
|
|
15
|
+
new_name: str,
|
|
16
|
+
t: inkex.TextElement,
|
|
17
|
+
) -> None:
|
|
18
|
+
old_name = t.label
|
|
19
|
+
daijimaps.name.move_label(
|
|
20
|
+
labels_group, unresolved_labels_group, old_name, new_name
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
def _move_resolved_labels(
|
|
24
|
+
self, labels_group: inkex.Group, unresolved_labels_group: inkex.Group
|
|
25
|
+
) -> None:
|
|
26
|
+
for name, t in self._resolved_labels.items():
|
|
27
|
+
self.msg(f"moving label: {name}")
|
|
28
|
+
self._move_resolved_label(labels_group, unresolved_labels_group, name, t)
|
|
29
|
+
self._sort_children(unresolved_labels_group)
|
|
30
|
+
|
|
31
|
+
def _process_addresses(self, node: inkex.Group) -> None:
|
|
32
|
+
self.msg("=== unresolve: start")
|
|
33
|
+
|
|
34
|
+
unresolved_labels_group = self._prepare_unresolved_labels_group(node)
|
|
35
|
+
labels_group = self._prepare_labels_group(node)
|
|
36
|
+
|
|
37
|
+
if labels_group is None:
|
|
38
|
+
self.msg("(Labels) group does not exist!")
|
|
39
|
+
return
|
|
40
|
+
if unresolved_labels_group is None:
|
|
41
|
+
self.msg("(Unresolved Labels) group does not exist!")
|
|
42
|
+
return
|
|
43
|
+
|
|
44
|
+
self._move_resolved_labels(labels_group, unresolved_labels_group)
|
|
45
|
+
|
|
46
|
+
# self._read_unresolved_labels(unresolved_labels_group)
|
|
47
|
+
# self._read_resolved_labels(labels_group)
|
|
48
|
+
|
|
49
|
+
self.msg("=== unresolve: end")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
if __name__ == "__main__":
|
|
53
|
+
UnresolveLabels().run()
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
|
3
|
+
<name>Address: Resolve: Un-resolve shops</name>
|
|
4
|
+
<id>daijimaps.unresolve_shops</id>
|
|
5
|
+
<label>Address: Resolve: Un-resolve shop names to addresses.</label>
|
|
6
|
+
<param name="tab" type="notebook">
|
|
7
|
+
<page name="Options" gui-text="Options">
|
|
8
|
+
<param name="floor" type="string" gui-text="Target floor (regular expression)">.</param>
|
|
9
|
+
</page>
|
|
10
|
+
</param>
|
|
11
|
+
<effect needs-live-preview="false">
|
|
12
|
+
<object-type>all</object-type>
|
|
13
|
+
<effects-menu>
|
|
14
|
+
<submenu name="Daiji Maps"/>
|
|
15
|
+
</effects-menu>
|
|
16
|
+
</effect>
|
|
17
|
+
<script>
|
|
18
|
+
<command location="inx" interpreter="python">unresolve_shops.py</command>
|
|
19
|
+
</script>
|
|
20
|
+
</inkscape-extension>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding=utf-8
|
|
3
|
+
|
|
4
|
+
import inkex
|
|
5
|
+
|
|
6
|
+
import daijimaps
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UnresolveShops(daijimaps.ResolveNames):
|
|
10
|
+
def _move_unresolved_name(
|
|
11
|
+
self,
|
|
12
|
+
names_group: inkex.Group,
|
|
13
|
+
unresolved_names_group: inkex.Group,
|
|
14
|
+
name: str,
|
|
15
|
+
address: daijimaps.AddressString | None,
|
|
16
|
+
x: float,
|
|
17
|
+
y: float,
|
|
18
|
+
) -> None:
|
|
19
|
+
label = name if address is None else f"{name} @ {address}"
|
|
20
|
+
daijimaps.move_name(names_group, unresolved_names_group, label, name, x, y)
|
|
21
|
+
|
|
22
|
+
def _move_unresolved_names(
|
|
23
|
+
self, names_group: inkex.Group, unresolved_names_group: inkex.Group
|
|
24
|
+
) -> None:
|
|
25
|
+
for name, addresses in self._resolved_names.items():
|
|
26
|
+
for address, (x, y) in addresses:
|
|
27
|
+
self._move_unresolved_name(
|
|
28
|
+
names_group, unresolved_names_group, name, address, x, y
|
|
29
|
+
)
|
|
30
|
+
self._sort_children(unresolved_names_group)
|
|
31
|
+
|
|
32
|
+
def _process_addresses(self, node: inkex.Group) -> None:
|
|
33
|
+
self.msg("=== unresolve: start")
|
|
34
|
+
|
|
35
|
+
names_group = self._prepare_names_group(node)
|
|
36
|
+
unresolved_names_group = self._prepare_unresolved_names_group(node)
|
|
37
|
+
|
|
38
|
+
if names_group is None:
|
|
39
|
+
self.msg("(Names) group does not exist!")
|
|
40
|
+
return
|
|
41
|
+
if unresolved_names_group is None:
|
|
42
|
+
self.msg("(Unresolved Names) group does not exist!")
|
|
43
|
+
return
|
|
44
|
+
|
|
45
|
+
self._move_unresolved_names(names_group, unresolved_names_group)
|
|
46
|
+
|
|
47
|
+
self._read_resolved_names(names_group)
|
|
48
|
+
self._save_resolved_names()
|
|
49
|
+
self._read_unresolved_names(unresolved_names_group)
|
|
50
|
+
self._save_unresolved_names()
|
|
51
|
+
|
|
52
|
+
self.msg("=== unresolve: end")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
if __name__ == "__main__":
|
|
56
|
+
UnresolveShops().run()
|