math-spec-mapping 0.3.14__py3-none-any.whl → 0.3.15__py3-none-any.whl
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.
- math_spec_mapping/Classes/Block.py +16 -0
- math_spec_mapping/Classes/MathSpec.py +18 -1
- math_spec_mapping/Classes/Policy.py +0 -1
- math_spec_mapping/Classes/Space.py +2 -0
- math_spec_mapping/Load/boundary_actions.py +6 -0
- math_spec_mapping/Load/control_actions.py +7 -0
- math_spec_mapping/Load/load.py +3 -0
- math_spec_mapping/Load/mechanism.py +7 -0
- math_spec_mapping/Load/metrics.py +6 -5
- math_spec_mapping/Load/policy.py +7 -0
- math_spec_mapping/Load/wiring.py +5 -0
- math_spec_mapping/Reports/markdown.py +50 -0
- {math_spec_mapping-0.3.14.dist-info → math_spec_mapping-0.3.15.dist-info}/METADATA +4 -4
- {math_spec_mapping-0.3.14.dist-info → math_spec_mapping-0.3.15.dist-info}/RECORD +17 -17
- {math_spec_mapping-0.3.14.dist-info → math_spec_mapping-0.3.15.dist-info}/WHEEL +1 -1
- {math_spec_mapping-0.3.14.dist-info → math_spec_mapping-0.3.15.dist-info}/LICENSE +0 -0
- {math_spec_mapping-0.3.14.dist-info → math_spec_mapping-0.3.15.dist-info}/top_level.txt +0 -0
@@ -11,6 +11,10 @@ class Block:
|
|
11
11
|
self.codomain = data["codomain"]
|
12
12
|
self.parameters_used = data["parameters_used"]
|
13
13
|
self.metadata = data["metadata"]
|
14
|
+
if "metrics_used" in data:
|
15
|
+
self.metrics_used = data["metrics_used"]
|
16
|
+
else:
|
17
|
+
self.metrics_used = []
|
14
18
|
if "label" in data:
|
15
19
|
self.label = data["label"]
|
16
20
|
else:
|
@@ -163,6 +167,10 @@ class ParallelBlock(Block):
|
|
163
167
|
self.components = data["components"]
|
164
168
|
self.description = data["description"]
|
165
169
|
self.constraints = data["constraints"]
|
170
|
+
if "metrics_used" in data:
|
171
|
+
self.metrics_used = data["metrics_used"]
|
172
|
+
else:
|
173
|
+
self.metrics_used = []
|
166
174
|
self.mermaid_show_name = data["mermaid_show_name"]
|
167
175
|
self.domain = tuple(
|
168
176
|
[
|
@@ -316,6 +324,10 @@ class StackBlock(Block):
|
|
316
324
|
self.mermaid_show_name = data["mermaid_show_name"]
|
317
325
|
self.optional_indices = data["optional_indices"]
|
318
326
|
self.loop = data["loop"]
|
327
|
+
if "metrics_used" in data:
|
328
|
+
self.metrics_used = data["metrics_used"]
|
329
|
+
else:
|
330
|
+
self.metrics_used = []
|
319
331
|
self._check_domain_mapping()
|
320
332
|
self.domain = self.components[0].domain
|
321
333
|
self.codomain = self.components[-1].codomain
|
@@ -470,6 +482,10 @@ class SplitBlock(Block):
|
|
470
482
|
self.description = data["description"]
|
471
483
|
self.constraints = data["constraints"]
|
472
484
|
self.mermaid_show_name = data["mermaid_show_name"]
|
485
|
+
if "metrics_used" in data:
|
486
|
+
self.metrics_used = data["metrics_used"]
|
487
|
+
else:
|
488
|
+
self.metrics_used = []
|
473
489
|
self.domain = tuple(
|
474
490
|
[
|
475
491
|
i
|
@@ -32,7 +32,9 @@ class MathSpec:
|
|
32
32
|
]
|
33
33
|
self.stateful_metrics = ms_dict["Stateful Metrics"]
|
34
34
|
self.wiring = ms_dict["Wiring"]
|
35
|
-
self.blocks = ms_dict["Blocks"]
|
35
|
+
# self.blocks = ms_dict["Blocks"]
|
36
|
+
self._load_blocks()
|
37
|
+
self._load_components()
|
36
38
|
self.types = ms_dict["Types"]
|
37
39
|
self.metrics = ms_dict["Metrics"]
|
38
40
|
self.displays = ms_dict["Displays"]
|
@@ -206,6 +208,21 @@ class MathSpec:
|
|
206
208
|
|
207
209
|
return out
|
208
210
|
|
211
|
+
def _load_blocks(self):
|
212
|
+
self.blocks = {}
|
213
|
+
self.blocks.update(self.control_actions)
|
214
|
+
self.blocks.update(self.boundary_actions)
|
215
|
+
self.blocks.update(self.policies)
|
216
|
+
self.blocks.update(self.mechanisms)
|
217
|
+
self.blocks.update(self.wiring)
|
218
|
+
|
219
|
+
def _load_components(self):
|
220
|
+
self.components = {}
|
221
|
+
self.components.update(self.control_actions)
|
222
|
+
self.components.update(self.boundary_actions)
|
223
|
+
self.components.update(self.policies)
|
224
|
+
self.components.update(self.mechanisms)
|
225
|
+
|
209
226
|
def crawl_action_chains(self, action_keys: List[str]) -> dict:
|
210
227
|
"""Crawl the graph of the actions to find all policies, entities, edges, etc.
|
211
228
|
|
@@ -79,3 +79,9 @@ def load_boundary_actions(ms: Dict, json: Dict) -> None:
|
|
79
79
|
ms["Boundary Actions"][key] = convert_boundary_action(ba, ms)
|
80
80
|
for entity in ms["Boundary Actions"][key].called_by:
|
81
81
|
entity.add_boundary_action(ms["Boundary Actions"][key])
|
82
|
+
|
83
|
+
for space in ms["Boundary Actions"][key].domain:
|
84
|
+
space.domain_blocks.append(ms["Boundary Actions"][key])
|
85
|
+
|
86
|
+
for space in ms["Boundary Actions"][key].codomain:
|
87
|
+
space.codomain_blocks.append(ms["Boundary Actions"][key])
|
@@ -66,3 +66,10 @@ def load_control_actions(ms: Dict, json: Dict) -> None:
|
|
66
66
|
ms["Control Actions"] = {}
|
67
67
|
for ca in json["Control Actions"]:
|
68
68
|
ms["Control Actions"][ca["name"]] = convert_control_action(ca, ms)
|
69
|
+
|
70
|
+
key = ca["name"]
|
71
|
+
for space in ms["Control Actions"][key].domain:
|
72
|
+
space.domain_blocks.append(ms["Control Actions"][key])
|
73
|
+
|
74
|
+
for space in ms["Control Actions"][key].codomain:
|
75
|
+
space.codomain_blocks.append(ms["Control Actions"][key])
|
math_spec_mapping/Load/load.py
CHANGED
@@ -78,4 +78,7 @@ def load_from_json(json: Dict) -> MathSpec:
|
|
78
78
|
check_json_keys(ms, "Math Spec")
|
79
79
|
|
80
80
|
ms = MathSpec(ms, json)
|
81
|
+
for space in ms.spaces.values():
|
82
|
+
space.domain_blocks = list(set(space.domain_blocks))
|
83
|
+
space.codomain_blocks = list(set(space.codomain_blocks))
|
81
84
|
return ms
|
@@ -68,4 +68,11 @@ def load_mechanisms(ms: Dict, json: Dict) -> None:
|
|
68
68
|
for m in json["Mechanisms"]:
|
69
69
|
ms["Mechanisms"][m["name"]], new_channels = convert_mechanism(m, ms)
|
70
70
|
state_update_transmission_channels.extend(new_channels)
|
71
|
+
|
72
|
+
key = m["name"]
|
73
|
+
for space in ms["Mechanisms"][key].domain:
|
74
|
+
space.domain_blocks.append(ms["Mechanisms"][key])
|
75
|
+
|
76
|
+
for space in ms["Mechanisms"][key].codomain:
|
77
|
+
space.codomain_blocks.append(ms["Mechanisms"][key])
|
71
78
|
return state_update_transmission_channels
|
@@ -105,14 +105,15 @@ def load_metrics(ms: Dict, json: Dict, stateful_metrics_map) -> None:
|
|
105
105
|
assert len(metrics) == 0, "There are circular references"
|
106
106
|
|
107
107
|
# Load the metrics into the policies
|
108
|
-
for key in ms["
|
109
|
-
|
110
|
-
hold =
|
111
|
-
|
108
|
+
for key in ms["Blocks"]:
|
109
|
+
block = ms["Blocks"][key]
|
110
|
+
hold = block.metrics_used[:]
|
111
|
+
block.metrics_used = []
|
112
112
|
for x in hold:
|
113
113
|
assert (
|
114
114
|
x in ms["Metrics"] or x in stateful_metrics_map
|
115
115
|
), "{} not a valid metric or stateful metric".format(x)
|
116
|
-
|
116
|
+
block.metrics_used.append(
|
117
117
|
ms["Metrics"][x] if x in ms["Metrics"] else stateful_metrics_map[x]
|
118
118
|
)
|
119
|
+
block.metrics_used = sorted(block.metrics_used, key=lambda x: x.name)
|
math_spec_mapping/Load/policy.py
CHANGED
@@ -92,3 +92,10 @@ def load_policies(ms: Dict, json: Dict) -> None:
|
|
92
92
|
ms["Policies"] = {}
|
93
93
|
for policy in json["Policies"]:
|
94
94
|
ms["Policies"][policy["name"]] = convert_policy(policy, ms)
|
95
|
+
|
96
|
+
key = policy["name"]
|
97
|
+
for space in ms["Policies"][key].domain:
|
98
|
+
space.domain_blocks.append(ms["Policies"][key])
|
99
|
+
|
100
|
+
for space in ms["Policies"][key].codomain:
|
101
|
+
space.codomain_blocks.append(ms["Policies"][key])
|
math_spec_mapping/Load/wiring.py
CHANGED
@@ -24,6 +24,11 @@ def load_single_wiring(data, ms):
|
|
24
24
|
# Map components
|
25
25
|
data["components"] = [ms["Blocks"][x] for x in data["components"]]
|
26
26
|
|
27
|
+
data["metrics_used"] = []
|
28
|
+
for x in data["components"]:
|
29
|
+
data["metrics_used"].extend(x.metrics_used)
|
30
|
+
data["metrics_used"] = list(set(data["metrics_used"]))
|
31
|
+
|
27
32
|
# Map to the correct block
|
28
33
|
if block_type == "Stack":
|
29
34
|
block = StackBlock(data)
|
@@ -157,6 +157,18 @@ def write_boundary_action_markdown_report(ms, path, boundary_action, add_metadat
|
|
157
157
|
out += "\n"
|
158
158
|
out += "\n"
|
159
159
|
|
160
|
+
out += "## Metrics Used\n"
|
161
|
+
for i, x in enumerate(boundary_action.metrics_used):
|
162
|
+
out += "{}. [[{}]]".format(i + 1, x.name)
|
163
|
+
out += "\n"
|
164
|
+
out += "\n"
|
165
|
+
|
166
|
+
out += "## Parameters Used\n"
|
167
|
+
for i, x in enumerate(sorted(boundary_action.parameters_used, key=lambda x: x)):
|
168
|
+
out += "{}. [[{}]]".format(i + 1, x)
|
169
|
+
out += "\n"
|
170
|
+
out += "\n"
|
171
|
+
|
160
172
|
if boundary_action.boundary_action_options:
|
161
173
|
out += "## Boundary Action Options:\n"
|
162
174
|
for i, x in enumerate(boundary_action.boundary_action_options):
|
@@ -288,6 +300,18 @@ def write_mechanism_markdown_report(ms, path, mechanism, add_metadata=True):
|
|
288
300
|
out += "{}. {}".format(i + 1, x)
|
289
301
|
out += "\n"
|
290
302
|
|
303
|
+
out += "## Metrics Used\n"
|
304
|
+
for i, x in enumerate(mechanism.metrics_used):
|
305
|
+
out += "{}. [[{}]]".format(i + 1, x.name)
|
306
|
+
out += "\n"
|
307
|
+
out += "\n"
|
308
|
+
|
309
|
+
out += "## Parameters Used\n"
|
310
|
+
for i, x in enumerate(sorted(mechanism.parameters_used, key=lambda x: x)):
|
311
|
+
out += "{}. [[{}]]".format(i + 1, x)
|
312
|
+
out += "\n"
|
313
|
+
out += "\n"
|
314
|
+
|
291
315
|
out += "## Logic\n"
|
292
316
|
out += mechanism.logic
|
293
317
|
|
@@ -329,6 +353,20 @@ def write_space_markdown_report(ms, path, space, add_metadata=True):
|
|
329
353
|
)
|
330
354
|
d = "{" + d + "}"
|
331
355
|
out += d
|
356
|
+
out += "\n\n"
|
357
|
+
|
358
|
+
out += "## Blocks with Space in Domain"
|
359
|
+
out += "\n"
|
360
|
+
for i, x in enumerate(space.domain_blocks):
|
361
|
+
out += "{}. [[{}]]".format(i + 1, x.name)
|
362
|
+
out += "\n"
|
363
|
+
out += "\n"
|
364
|
+
|
365
|
+
out += "## Blocks with Space in Codomain"
|
366
|
+
out += "\n"
|
367
|
+
for i, x in enumerate(space.codomain_blocks):
|
368
|
+
out += "{}. [[{}]]".format(i + 1, x.name)
|
369
|
+
out += "\n"
|
332
370
|
out += "\n"
|
333
371
|
|
334
372
|
with open("{}/Spaces/{}.md".format(path, space.name), "w") as f:
|
@@ -374,6 +412,12 @@ def write_control_action_markdown_report(ms, path, control_action, add_metadata=
|
|
374
412
|
out += "\n"
|
375
413
|
out += "\n"
|
376
414
|
|
415
|
+
out += "## Metrics Used\n"
|
416
|
+
for i, x in enumerate(control_action.metrics_used):
|
417
|
+
out += "{}. [[{}]]".format(i + 1, x.name)
|
418
|
+
out += "\n"
|
419
|
+
out += "\n"
|
420
|
+
|
377
421
|
out += "## Parameters Used\n"
|
378
422
|
for i, x in enumerate(sorted(control_action.parameters_used, key=lambda x: x)):
|
379
423
|
out += "{}. [[{}]]".format(i + 1, x)
|
@@ -463,6 +507,12 @@ def write_wiring_markdown_report(ms, path, wiring, add_metadata=True):
|
|
463
507
|
out += "\n"
|
464
508
|
out += "\n"
|
465
509
|
|
510
|
+
out += "## Metrics Used\n"
|
511
|
+
for i, x in enumerate(wiring.metrics_used):
|
512
|
+
out += "{}. [[{}]]".format(i + 1, x.name)
|
513
|
+
out += "\n"
|
514
|
+
out += "\n"
|
515
|
+
|
466
516
|
out += "## Parameters Used\n"
|
467
517
|
for i, x in enumerate(sorted(wiring.parameters_used, key=lambda x: x)):
|
468
518
|
out += "{}. [[{}]]".format(i + 1, x)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: math-spec-mapping
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.15
|
4
4
|
Summary: A library for easy mapping of mathematical specifications.
|
5
5
|
Author-email: Sean McOwen <Sean@Block.Science>
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
@@ -9,9 +9,9 @@ Classifier: Operating System :: OS Independent
|
|
9
9
|
Requires-Python: >=3.7
|
10
10
|
Description-Content-Type: text/markdown
|
11
11
|
License-File: LICENSE
|
12
|
-
Requires-Dist: graphviz
|
13
|
-
Requires-Dist: ipython
|
14
|
-
Requires-Dist: pandas
|
12
|
+
Requires-Dist: graphviz>=0.20.1
|
13
|
+
Requires-Dist: ipython>=7.7.0
|
14
|
+
Requires-Dist: pandas>=1.4
|
15
15
|
|
16
16
|
# MSML
|
17
17
|
|
@@ -2,16 +2,16 @@ math_spec_mapping/__init__.py,sha256=LvuIbfILQf3UGyHympLJyncfnnpZpEyvN5UDOpi8bWw
|
|
2
2
|
math_spec_mapping/schema.py,sha256=6mrRqzEnTTSXjb19xJ63MBp0KjKH0s7i6TfT4MkAY9k,233
|
3
3
|
math_spec_mapping/schema.schema.json,sha256=hJP2TcV5WPFPmx4u_A5U1xtnpkE1LeYaTeYOXadTot0,30916
|
4
4
|
math_spec_mapping/Classes/ActionTransmissionChannel.py,sha256=zWMo5QsgPh5WGIWXl-xOrZNMXYJXmK6Vejw1dQvi0og,246
|
5
|
-
math_spec_mapping/Classes/Block.py,sha256=
|
5
|
+
math_spec_mapping/Classes/Block.py,sha256=geaH3cNPJ-BOSj1pqccexFl6FqmolAFbrb7wpQQqaUE,18215
|
6
6
|
math_spec_mapping/Classes/BoundaryAction.py,sha256=_rFvEZ4LNxmlM59js4SuQ9n5CgVmITw4YWKs0-q0r-4,560
|
7
7
|
math_spec_mapping/Classes/ControlAction.py,sha256=4AzMSA8fbnUf-fGlvMJXHJFbz32G1h1QVWf2yzrXrLA,493
|
8
8
|
math_spec_mapping/Classes/Entity.py,sha256=fA0-b128_OHHxfCg4pzqyQV083EYev1HlVpy86S5igg,1226
|
9
|
-
math_spec_mapping/Classes/MathSpec.py,sha256=
|
9
|
+
math_spec_mapping/Classes/MathSpec.py,sha256=94cJsKpdcBj_jzlQhNYnNBJQyBVOI-RrNHuWHdbieUs,42637
|
10
10
|
math_spec_mapping/Classes/Mechanism.py,sha256=2sLm3wYBIeTQaMBcsJ9btqIWsbS895Ra8NY6Y9_G_Dg,379
|
11
11
|
math_spec_mapping/Classes/Metric.py,sha256=iQhH4g8Z60QlM22nPX9ytGmidOsZSiSs0KjqwmsScwU,636
|
12
12
|
math_spec_mapping/Classes/Parameter.py,sha256=ZuJ_w0sChvRElJ4sOnXZ2EV4Ell2xXFulKLjVOpgz2E,1237
|
13
|
-
math_spec_mapping/Classes/Policy.py,sha256=
|
14
|
-
math_spec_mapping/Classes/Space.py,sha256=
|
13
|
+
math_spec_mapping/Classes/Policy.py,sha256=Nso8QJMBDeyN66VkZ29nnZ1WjaMnReMn7SxKt_bRngU,481
|
14
|
+
math_spec_mapping/Classes/Space.py,sha256=TpZ5m28xRzPIDZ98IYtdemgyAm34JuWkgBPNyHpEglg,538
|
15
15
|
math_spec_mapping/Classes/State.py,sha256=U40DoF2qlx_k9gvqQiP1S3C9ZLk3cW_-jmJn71TiCxg,1599
|
16
16
|
math_spec_mapping/Classes/StateUpdateTransmissionChannel.py,sha256=3hBLvD1lE64PkwqksBXAfFWv7foOZzGQLAFQWy42tOA,257
|
17
17
|
math_spec_mapping/Classes/StatefulMetric.py,sha256=plMFMAFEk1y2t4DR5lA2SRC9UrYArsx_W33l3mZSdgE,804
|
@@ -23,29 +23,29 @@ math_spec_mapping/Convenience/github.py,sha256=mMOhIH3Nvh_91fNTOPjz1oQq1iDq2m5hN
|
|
23
23
|
math_spec_mapping/Convenience/starter.py,sha256=9dBKU3EHscut2wA6Nx1XUmehrFIdr4dCjP9V1BbTF6s,12567
|
24
24
|
math_spec_mapping/Load/__init__.py,sha256=_ga5nHi7U5rY5lCF36_XI9Qmybq4P8R4m5I5mmjLBk8,33
|
25
25
|
math_spec_mapping/Load/action_transmission_channel.py,sha256=9Wer7g2s5SSOcUYuZ0PqSKUVVnW3EvGQJZNXJTwW__0,2561
|
26
|
-
math_spec_mapping/Load/boundary_actions.py,sha256=
|
27
|
-
math_spec_mapping/Load/control_actions.py,sha256=
|
26
|
+
math_spec_mapping/Load/boundary_actions.py,sha256=cDN0pjkkWfYY3HHmgSrD__-weGD4DXElnG8w1pRc5Lc,2933
|
27
|
+
math_spec_mapping/Load/control_actions.py,sha256=Y9LeEJuVj2OwxdTfnHZ57UV48j6PYCfyQWux4uXp1Mo,2371
|
28
28
|
math_spec_mapping/Load/displays.py,sha256=uQvs0Jhp8-9SXGex8SG3ibxHJu7ahAV3xLeBFbT8QEE,480
|
29
29
|
math_spec_mapping/Load/entities.py,sha256=Ds7VQY_govWEn1vSHYVrLa8IadSNyOQzaCK18JPYPKk,1289
|
30
30
|
math_spec_mapping/Load/general.py,sha256=2q6aGKxXhebiHHTZhtACvM4nWIkTben0o5rXuvfv2Vw,4463
|
31
31
|
math_spec_mapping/Load/implementations.py,sha256=a8YvumnyQvrnCo-o52Rv4yU8D7nmkMrV1iIA15fr6Bw,490
|
32
|
-
math_spec_mapping/Load/load.py,sha256=
|
33
|
-
math_spec_mapping/Load/mechanism.py,sha256=
|
34
|
-
math_spec_mapping/Load/metrics.py,sha256=
|
32
|
+
math_spec_mapping/Load/load.py,sha256=oC-CuqbVqqhWw0kK7iiNKexAB_djgVNbjXSQfTsj2FA,2647
|
33
|
+
math_spec_mapping/Load/mechanism.py,sha256=VRjkR2McsSJh2oq8n9JkeewirdlVjPRA-T5SRSKWPPQ,2293
|
34
|
+
math_spec_mapping/Load/metrics.py,sha256=CcVM0_aN-aPnH5_AyEKzFCJGPbgMb0brw5nECsdNVeU,3936
|
35
35
|
math_spec_mapping/Load/parameters.py,sha256=W4utm7to3s2fo4z3XgLH0TM1agaIad1qfM2I-lLMua4,1393
|
36
|
-
math_spec_mapping/Load/policy.py,sha256=
|
36
|
+
math_spec_mapping/Load/policy.py,sha256=QTIcslHKgdYjjG69cqkJbW20CPvEL-B8R5u51rd2Puo,2697
|
37
37
|
math_spec_mapping/Load/spaces.py,sha256=5nJto38BVMED5KuMXOqavYj8gcSTKiNSTdMOOp5ThTA,1186
|
38
38
|
math_spec_mapping/Load/state_update_transmission_channels.py,sha256=FJWp5n4HdtHAfof5BUQ6BnRakljatL2h8dWCapaVSc0,2238
|
39
39
|
math_spec_mapping/Load/stateful_metrics.py,sha256=3Lq1ZGMaDd5OcGeqR2p5c_znkYw7ETTNPFjUVdZAHKk,2384
|
40
40
|
math_spec_mapping/Load/states.py,sha256=3YurI7eTNkN6nrXRFVrc58wH0VfM22XOuWE07HVpR7Y,1365
|
41
41
|
math_spec_mapping/Load/type.py,sha256=FbViE3wV1o1JTx7mUYyUpAvgIxDKDQYc6Iw50FrZ4nY,4808
|
42
|
-
math_spec_mapping/Load/wiring.py,sha256=
|
42
|
+
math_spec_mapping/Load/wiring.py,sha256=l1FhHNFRMKorn1oiRhsuMDsExcXnUmTjqQt5ElE-Bbk,3258
|
43
43
|
math_spec_mapping/Reports/__init__.py,sha256=P3IuE1wiM1EO_yCSD73D4O0O6j7aVWmiwpKJM58ISEs,1121
|
44
44
|
math_spec_mapping/Reports/boundary_actions.py,sha256=45BPp4QjWdD-3E9ZWwqgj_nI2-YdcI2ZZ19_Qv_K7Qk,1410
|
45
45
|
math_spec_mapping/Reports/control_actions.py,sha256=NksekZKIPFSIkubttFstKFthc5AU9B9PWRLSl9j1wWs,1216
|
46
46
|
math_spec_mapping/Reports/general.py,sha256=WOOn6Wlb8M4fsdN49FlKLwOka6vJPQ9aCUy88TL2ki0,1610
|
47
47
|
math_spec_mapping/Reports/html.py,sha256=RpyQQON8pDnMmfcyxOsm8UAD5Ad8VKnnW-OyOarTmzA,9711
|
48
|
-
math_spec_mapping/Reports/markdown.py,sha256=
|
48
|
+
math_spec_mapping/Reports/markdown.py,sha256=oLammMJMkWhZXmODKzCuZDdJpiJIs5P-84gVsYhs0Rw,24605
|
49
49
|
math_spec_mapping/Reports/mechanisms.py,sha256=d2Rxt3JBYvqAOAYUynl0buYVoXEHrO8EGq7GK6hK8NA,1322
|
50
50
|
math_spec_mapping/Reports/node_map.py,sha256=FdSMDQG16NX6n9sZcH-T5xwsvgjrV9OqBHc9J_VlNK0,3129
|
51
51
|
math_spec_mapping/Reports/parameters.py,sha256=-ucL71lolqU0xvV7yb0sXl4pFMRl5tXNWdoBfUjLOaQ,1944
|
@@ -54,8 +54,8 @@ math_spec_mapping/Reports/spaces.py,sha256=-76hR5wQBv4lsG000ypBJ-OprjsNjI-rNRMYd
|
|
54
54
|
math_spec_mapping/Reports/state.py,sha256=QYeCvX5cHeZBrbvMeDsTqJcUDTuDFJSLvPbasjLspk8,3643
|
55
55
|
math_spec_mapping/Reports/tables.py,sha256=O0CNuqh3LMECq5uLjBOoxMUk5hUvkUK660FNnwWUxDY,1505
|
56
56
|
math_spec_mapping/Reports/wiring.py,sha256=u9SvKWy6T-WJUEgFI6-zgZanoOaTTs_2YwmEceDLsV8,1618
|
57
|
-
math_spec_mapping-0.3.
|
58
|
-
math_spec_mapping-0.3.
|
59
|
-
math_spec_mapping-0.3.
|
60
|
-
math_spec_mapping-0.3.
|
61
|
-
math_spec_mapping-0.3.
|
57
|
+
math_spec_mapping-0.3.15.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
|
58
|
+
math_spec_mapping-0.3.15.dist-info/METADATA,sha256=H3FF0wDPZ2BUneG-JTOGfaGh8Z24tr2tgLlfOqe67Y4,6498
|
59
|
+
math_spec_mapping-0.3.15.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
60
|
+
math_spec_mapping-0.3.15.dist-info/top_level.txt,sha256=AImhn9wgazkdV0a9vfiphtQR8uGe2nq-ZIOp-6yUk9o,18
|
61
|
+
math_spec_mapping-0.3.15.dist-info/RECORD,,
|
File without changes
|
File without changes
|