math-spec-mapping 0.2.4__py3-none-any.whl → 0.2.6__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Classes/Block.py CHANGED
@@ -141,6 +141,18 @@ class Block:
141
141
  self.all_updates.extend(x.all_updates)
142
142
  self.all_updates = list(set(self.all_updates))
143
143
 
144
+ def components_full(self):
145
+ q = [self]
146
+ out = []
147
+ while len(q) > 0:
148
+ cur = q.pop()
149
+ if hasattr(cur, "components"):
150
+ q.extend(cur.components)
151
+ else:
152
+ out.append(cur)
153
+ out = list(set(out))
154
+ return out
155
+
144
156
 
145
157
  class ParallelBlock(Block):
146
158
  def __init__(self, data: Dict):
Convenience/__init__.py CHANGED
@@ -0,0 +1 @@
1
+ from .documentation import write_top_level_json_description
@@ -0,0 +1,49 @@
1
+ from src import schema
2
+
3
+
4
+ def write_json_description(schema, key, name):
5
+ out = "- **{}**: ".format(name)
6
+
7
+ out += schema["definitions"][key]["description"]
8
+ out += "\n"
9
+ return out
10
+
11
+
12
+ def write_top_level_json_description(indent_level):
13
+
14
+ out = "#{} MSML Components".format("#" * indent_level)
15
+ out += "\n\n"
16
+ out += "MSML extends GDS with multiple types of blocks and other enhancements. Below are the definitions of top level components."
17
+ out += "\n\n"
18
+
19
+ out += "##{} Types & Spaces".format("#" * indent_level)
20
+ out += "\n\n"
21
+
22
+ out += write_json_description(schema, "Type", "Type")
23
+ out += write_json_description(schema, "Space", "Space")
24
+
25
+ out += "\n"
26
+
27
+ out += "##{} Entities, States, Parameters & Metrics".format("#" * indent_level)
28
+ out += "\n\n"
29
+
30
+ out += write_json_description(schema, "Entity", "Entity")
31
+ out += write_json_description(schema, "State", "State")
32
+ out += write_json_description(schema, "StatefulMetric", "Stateful Metric")
33
+ out += write_json_description(schema, "Parameter", "Parameter")
34
+ out += write_json_description(schema, "Metric", "Metric")
35
+
36
+ out += "\n"
37
+
38
+ out += "##{} Blocks & Wiring".format("#" * indent_level)
39
+ out += "\n\n"
40
+
41
+ out += write_json_description(schema, "BoundaryAction", "Boundary Action")
42
+ out += write_json_description(schema, "ControlAction", "Control Action")
43
+ out += write_json_description(schema, "Policy", "Policy")
44
+ out += write_json_description(schema, "Mechanism", "Mechanism")
45
+ out += write_json_description(schema, "Wiring", "Wiring")
46
+
47
+ out += "\n"
48
+
49
+ return out
@@ -0,0 +1,16 @@
1
+ import os
2
+
3
+
4
+ def load_implementations(ms):
5
+ implementations = {}
6
+ python_path = "src/Implementations/Python/__init__.py"
7
+ if os.path.exists(python_path):
8
+ implementations["python"] = load_python_implementations()
9
+
10
+ ms["Implementations"] = implementations
11
+
12
+
13
+ def load_python_implementations():
14
+ from src.Implementations.Python import implementation
15
+
16
+ return implementation
Load/load.py CHANGED
@@ -16,6 +16,7 @@ from .wiring import load_wiring
16
16
  from .type import load_types, load_type_keys
17
17
  from .metrics import load_metrics
18
18
  from .displays import load_displays
19
+ from .implementations import load_implementations
19
20
 
20
21
 
21
22
  def load_from_json(json: Dict) -> MathSpec:
@@ -39,6 +40,7 @@ def load_from_json(json: Dict) -> MathSpec:
39
40
  # Do loading one by one to transfer the json
40
41
 
41
42
  load_type_keys(ms)
43
+ load_implementations(ms)
42
44
  load_types(ms, json)
43
45
  load_spaces(ms, json)
44
46
  load_states(ms, json)
Load/stateful_metrics.py CHANGED
@@ -55,5 +55,9 @@ def load_stateful_metrics(ms: Dict, json: Dict) -> None:
55
55
  """
56
56
 
57
57
  ms["Stateful Metrics"] = {}
58
+ check = []
58
59
  for sm in json["Stateful Metrics"]:
59
60
  ms["Stateful Metrics"][sm["name"]] = convert_stateful_metric(ms, sm)
61
+ for x in ms["Stateful Metrics"][sm["name"]].metrics:
62
+ assert x.name not in check, "{} stateful metric name is repeated"
63
+ check.append(x)
Load/type.py CHANGED
@@ -37,9 +37,14 @@ def convert_type(data, ms):
37
37
  data["type_name"]["python"] = data["type"]["python"].__repr__()
38
38
  else:
39
39
  data["type_name"]["python"] = data["type"]["python"].__name__
40
+ if "typescript" in ms["Type Keys"]:
40
41
  if type_name in ms["Type Keys"]["typescript"]:
41
42
  data["type"]["typescript"] = ms["Type Keys"]["typescript"][type_name]
42
43
  data["type_name"]["typescript"] = ms["Type Keys"]["typescript"][type_name]
44
+ if "julia" in ms["Type Keys"]:
45
+ if type_name in ms["Type Keys"]["julia"]:
46
+ data["type"]["julia"] = ms["Type Keys"]["julia"][type_name]
47
+ data["type_name"]["julia"] = ms["Type Keys"]["julia"][type_name]
43
48
 
44
49
  # Build the type object
45
50
  return Type(data)
@@ -88,13 +93,40 @@ def load_typescript_type_key(path):
88
93
  return type_definitions
89
94
 
90
95
 
91
- def load_type_keys(ms) -> dict:
96
+ def load_julia_type_key(path):
97
+ with open(path, "r") as file:
98
+ type_definitions = file.read()
99
+ type_definitions = type_definitions.split("end")
100
+ type_definitions = [x.strip() for x in type_definitions]
101
+ type_definitions = [x for x in type_definitions if len(x) > 0]
102
+
103
+ hold = type_definitions[:]
104
+ type_definitions = {}
105
+ for x in hold:
106
+ name = x
107
+ if x.startswith("abstract type"):
108
+ name = name[14:]
109
+ name = name[: name.index("<:")].strip()
110
+ elif x.startswith("struct"):
111
+ name = name[7:]
112
+ name = name[: name.index("\n")].strip()
113
+ else:
114
+ assert False
115
+
116
+ type_definitions[name] = x
117
+ return type_definitions
118
+
119
+
120
+ def load_type_keys(ms):
92
121
  type_keys = {}
93
122
  python_path = "src/TypeMappings/types.py"
94
123
  typescript_path = "src/TypeMappings/types.ts"
124
+ julia_path = "src/TypeMappings/types.jl"
95
125
  if os.path.exists(python_path):
96
126
  type_keys["python"] = load_python_type_key()
97
127
  if os.path.exists(typescript_path):
98
128
  type_keys["typescript"] = load_typescript_type_key(typescript_path)
129
+ if os.path.exists(julia_path):
130
+ type_keys["julia"] = load_julia_type_key(julia_path)
99
131
 
100
132
  ms["Type Keys"] = type_keys
Reports/html.py CHANGED
@@ -147,11 +147,18 @@ def write_spec_tree(
147
147
  out += symbol1 + "**Stateful Metrics**\n"
148
148
  for name in ms.stateful_metrics.keys():
149
149
  if linking:
150
- out += symbol2 + "[[{}]]".format(name) + "\n"
150
+ out += symbol2 + "{}".format(name) + "\n"
151
151
  else:
152
152
  out += symbol2 + name + "\n"
153
153
  for var in ms.stateful_metrics[name].metrics:
154
- out += symbol3 + var.name + "\n"
154
+ out += symbol3 + "[[{}]]".format(var.name) + "\n"
155
+
156
+ out += symbol1 + "**Types**\n"
157
+ for name in ms.types.keys():
158
+ if linking:
159
+ out += symbol2 + "[[{}]]".format(name) + "\n"
160
+ else:
161
+ out += symbol2 + name + "\n"
155
162
 
156
163
  out += symbol1 + "**Spaces**\n"
157
164
  for name in ms.spaces.keys():
@@ -162,11 +169,11 @@ def write_spec_tree(
162
169
  out += symbol1 + "**Parameters**\n"
163
170
  for name in ms.parameters.data.keys():
164
171
  if linking:
165
- out += symbol2 + "[[{}]]".format(name) + "\n"
172
+ out += symbol2 + "{}".format(name) + "\n"
166
173
  else:
167
174
  out += symbol2 + name + "\n"
168
175
  for param in [x.name for x in ms.parameters.data[name].parameters]:
169
- out += symbol3 + param + "\n"
176
+ out += symbol3 + "[[{}]]".format(param) + "\n"
170
177
 
171
178
  out += symbol1 + "**Boundary Actions**\n"
172
179
  for name in ms.boundary_actions.keys():
Reports/markdown.py CHANGED
@@ -99,6 +99,10 @@ def write_types_markdown_report(ms, path, t, add_metadata=True):
99
99
  out += "### Typescript Type\n"
100
100
  out += t.type_name["typescript"]
101
101
  out += "\n"
102
+ if "julia" in t.type:
103
+ out += "### Julia Type\n"
104
+ out += t.type_name["julia"]
105
+ out += "\n"
102
106
  out += "\n"
103
107
  out += "## Notes"
104
108
  out += "\n\n"
@@ -135,6 +139,12 @@ def write_boundary_action_markdown_report(ms, path, boundary_action, add_metadat
135
139
  out += "\n"
136
140
  out += "\n"
137
141
 
142
+ out += "## Followed By\n"
143
+ for i, x in enumerate([x[0] for x in boundary_action.calls]):
144
+ out += "{}. [[{}]]".format(i + 1, x.label)
145
+ out += "\n"
146
+ out += "\n"
147
+
138
148
  out += "## Constraints"
139
149
  for i, x in enumerate(boundary_action.constraints):
140
150
  out += "{}. {}".format(i + 1, x)
@@ -342,6 +352,12 @@ def write_control_action_markdown_report(ms, path, control_action, add_metadata=
342
352
  out += control_action.description
343
353
  out += "\n"
344
354
 
355
+ out += "## Followed By\n"
356
+ for i, x in enumerate([x[0] for x in control_action.calls]):
357
+ out += "{}. [[{}]]".format(i + 1, x.label)
358
+ out += "\n"
359
+ out += "\n"
360
+
345
361
  out += "## Constraints"
346
362
  for i, x in enumerate(control_action.constraints):
347
363
  out += "{}. {}".format(i + 1, x)
@@ -406,7 +422,14 @@ def write_wiring_markdown_report(ms, path, wiring, add_metadata=True):
406
422
 
407
423
  out += "\n"
408
424
 
409
- out += "## Constraints"
425
+ out += "## All Blocks\n"
426
+ for i, x in enumerate(wiring.components_full()):
427
+ out += "{}. [[{}]]".format(i + 1, x.name)
428
+ out += "\n"
429
+
430
+ out += "\n"
431
+
432
+ out += "## Constraints\n"
410
433
  for i, x in enumerate(wiring.constraints):
411
434
  out += "{}. {}".format(i + 1, x)
412
435
  out += "\n"
@@ -510,7 +533,7 @@ def write_stateful_metrics_markdown_report(ms, path, metric, add_metadata=True):
510
533
 
511
534
  out += "## Variables Used\n"
512
535
  for i, x in enumerate(metric.variables_used):
513
- out += "{}. {}.{}".format(i + 1, x[0], x[1])
536
+ out += "{}. [[{}]].{}".format(i + 1, x[0], x[1])
514
537
  out += "\n"
515
538
  out += "\n"
516
539
 
@@ -544,12 +567,18 @@ def write_metrics_markdown_report(ms, path, metric, add_metadata=True):
544
567
  out += "## Parameters Used\n"
545
568
  for i, x in enumerate(metric.parameters_used):
546
569
  out += "{}. [[{}]]".format(i + 1, x)
570
+ var = ms.parameters.parameter_map[x]
571
+ if var.symbol:
572
+ out += " , symbol: {}".format(var.symbol)
547
573
  out += "\n"
548
574
  out += "\n"
549
575
 
550
576
  out += "## Variables Used\n"
551
577
  for i, x in enumerate(metric.variables_used):
552
578
  out += "{}. {}.{}".format(i + 1, x[0], x[1])
579
+ var = ms.state[x[0]].variable_map[x[1]]
580
+ if var.symbol:
581
+ out += " , symbol: {}".format(var.symbol)
553
582
  out += "\n"
554
583
  out += "\n"
555
584
 
@@ -603,7 +632,7 @@ def write_wiring_display_markdown_report(ms, path, wiring, add_metadata=True):
603
632
  out += "\n"
604
633
 
605
634
  out += "## Unique Components Used\n"
606
- components = [set(x.components) for x in wirings]
635
+ components = [set(x.components_full()) for x in wirings]
607
636
  components = set().union(*components)
608
637
  for i, x in enumerate(components):
609
638
  out += "{}. [[{}]]".format(i + 1, x.name)
@@ -638,7 +667,26 @@ def write_wiring_display_markdown_report(ms, path, wiring, add_metadata=True):
638
667
  f.write(out)
639
668
 
640
669
 
641
- def write_all_markdown_reports(ms, path):
670
+ def write_all_markdown_reports(ms, path, clear_folders=False):
671
+ if clear_folders:
672
+ for x in [
673
+ "Metrics",
674
+ "Mechanisms",
675
+ "Types",
676
+ "Control Actions",
677
+ "Spaces",
678
+ ".obsidian",
679
+ "Boundary Actions",
680
+ "Policies",
681
+ "Wiring",
682
+ "States",
683
+ "Parameters",
684
+ "Entities",
685
+ "Stateful Metrics",
686
+ ]:
687
+ if os.path.exists("{}/{}".format(path, x)):
688
+ for y in os.listdir("{}/{}".format(path, x)):
689
+ os.remove("{}/{}/{}".format(path, x, y))
642
690
 
643
691
  # Write entities
644
692
  entities = list(ms.entities.keys())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: math_spec_mapping
3
- Version: 0.2.4
3
+ Version: 0.2.6
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
@@ -23,6 +23,10 @@ It uses block diagram wirings and spaces to represent the actions in complex sys
23
23
 
24
24
  One good example is the [wiring report](https://github.com/SeanMcOwen/Root-Finding-Simulation/blob/main/MSML/reports/Simulation%20Block.md) for the Root Finding Simulation canonical example.
25
25
 
26
+ ## Installing the library
27
+
28
+ To install the library, simply pip install by running "pip install math_spec_mapping"
29
+
26
30
  ## Why MSML?
27
31
 
28
32
  Writing mathematical specifications can be a difficult process, especially when variable names are changed or new mechanisms are introduced. MSML seeks to streamline the process with automations as well as enhance the abilities of static math specs to deliver deeper insights. Because it is automated, one can write specifications at different levels of details or for different purposes.
@@ -1,7 +1,5 @@
1
- __init__.py,sha256=bWYy9HVSz89bN8y7H7fP7Xrd1TLliPp73zWBUe3KuFE,846
2
- schema.py,sha256=6mrRqzEnTTSXjb19xJ63MBp0KjKH0s7i6TfT4MkAY9k,233
3
1
  Classes/ActionTransmissionChannel.py,sha256=zWMo5QsgPh5WGIWXl-xOrZNMXYJXmK6Vejw1dQvi0og,246
4
- Classes/Block.py,sha256=HUM_ziEE40DBy_mG-XFnHjg3MTTO2C5e6ONyZIAy77Q,17000
2
+ Classes/Block.py,sha256=hXQO221IP-TqZm_TwFKfURpEEjZm7L1TPZDCYlaOdho,17302
5
3
  Classes/BoundaryAction.py,sha256=AOENCqCEfpjotnHhzUj_F2SOP0SGpkN1tNPr8Mtl6Tc,476
6
4
  Classes/ControlAction.py,sha256=xaU3_WVeWOoOFX3O86x30_9Eiirfe76KrO3M2kfjcmo,471
7
5
  Classes/Entity.py,sha256=fA0-b128_OHHxfCg4pzqyQV083EYev1HlVpy86S5igg,1226
@@ -16,7 +14,8 @@ Classes/StateUpdateTransmissionChannel.py,sha256=3hBLvD1lE64PkwqksBXAfFWv7foOZzG
16
14
  Classes/StatefulMetric.py,sha256=UCis1BJ7fsajHHxFF05ZiyDean2D4s4a95uYYW1Mjq4,749
17
15
  Classes/Type.py,sha256=ZDHSiaDixHOxasOJlHbuBsMjZ29O2O5K_nmHOmlO-Ck,228
18
16
  Classes/__init__.py,sha256=_hXyZMJanmIex_W6yCR2H7Jw8iU2JJIf3U7VcvBSOGU,737
19
- Convenience/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ Convenience/__init__.py,sha256=-hNZVoaNSgTmZTiyZoMfWyg14xonC3ppz-diQk1VlUY,60
18
+ Convenience/documentation.py,sha256=Jf7-JJIk_vZkNBIGV4bs5LM3B0RVaCCtuwJ164thGfY,1607
20
19
  Convenience/starter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
20
  Load/__init__.py,sha256=_ga5nHi7U5rY5lCF36_XI9Qmybq4P8R4m5I5mmjLBk8,33
22
21
  Load/action_transmission_channel.py,sha256=9Wer7g2s5SSOcUYuZ0PqSKUVVnW3EvGQJZNXJTwW__0,2561
@@ -25,23 +24,24 @@ Load/control_actions.py,sha256=VmjezReijEqe9cdPHQubGZTGVPsYbMzWfLu5Dfm9WvY,1563
25
24
  Load/displays.py,sha256=ooHWT_OryzEkp7F3LcGywwdLMRJLxuyPK82zJ3gcyN0,414
26
25
  Load/entities.py,sha256=rMD_Pja-zqH1Z14rsO_Ia7dg3BIi5_HoQmqGAoEYofA,1208
27
26
  Load/general.py,sha256=2q6aGKxXhebiHHTZhtACvM4nWIkTben0o5rXuvfv2Vw,4463
28
- Load/load.py,sha256=VEiZRsiO3QQnw5ZIJ0RQzgQ5hKoWLz6b36Zv9tG-XvI,2405
27
+ Load/implementations.py,sha256=SGKZ_YXeNpJUTnw5fajQTXji7S2bNQo8sh-7YcIO6pk,395
28
+ Load/load.py,sha256=CLprDhJpbwm9RAzKM2Ghwr8eqBu0a-wvGDOCMmc01YE,2484
29
29
  Load/mechanism.py,sha256=aIpMzgQn8f1aywgOHxL5kHQUn1N8K9pmHOVs51bv3Hk,1673
30
30
  Load/metrics.py,sha256=gD68mt0Y5jSgofZUwscV8PFatOMV_LPwYyPrwV9SdtE,3273
31
31
  Load/parameters.py,sha256=aid_vqYub9643s82NDtMAXLRdV9BPQkri5MadA0L0eQ,1334
32
32
  Load/policy.py,sha256=fDBuOe1LWw-6C_xcYtvtx9dpjWoD9GNEumW7bK8QaT0,2077
33
33
  Load/spaces.py,sha256=7zgGA57Te7T4hfuCCDElffiidWgn1lKm5E14e1yjt8M,1116
34
34
  Load/state_update_transmission_channels.py,sha256=FJWp5n4HdtHAfof5BUQ6BnRakljatL2h8dWCapaVSc0,2238
35
- Load/stateful_metrics.py,sha256=Z4S1BWVRfE0cGtcUikJnhmYLKW4k1CurAPrOfjObSKo,1795
35
+ Load/stateful_metrics.py,sha256=uGSTc6x6lld5xptgSUMHrO0Vg0QDRIL14C6zTg33S8o,1977
36
36
  Load/states.py,sha256=cwo29SBAtj1FoQLEb8c0wkSCn038lIgM9RjNiZefUaE,1223
37
- Load/type.py,sha256=cKfeLAmYG4hl4mxYA3FvWoQt16ReWrL64H98wgehp6U,3043
37
+ Load/type.py,sha256=R6d5t55TMMCKsOk8xXp_Cu5gvkt2DG4Yzvq6NREIefs,4174
38
38
  Load/wiring.py,sha256=1dR94U5N1W_WI5rL6lYBltH25ZvApB2pIpq9r5Opkug,3083
39
39
  Reports/__init__.py,sha256=W27I6S9Ro1hWeHmnxIokCA06awB__eYey7PvKD4Hc1s,933
40
40
  Reports/boundary_actions.py,sha256=45BPp4QjWdD-3E9ZWwqgj_nI2-YdcI2ZZ19_Qv_K7Qk,1410
41
41
  Reports/control_actions.py,sha256=NksekZKIPFSIkubttFstKFthc5AU9B9PWRLSl9j1wWs,1216
42
42
  Reports/general.py,sha256=WOOn6Wlb8M4fsdN49FlKLwOka6vJPQ9aCUy88TL2ki0,1610
43
- Reports/html.py,sha256=4wpry61_URAc_LeVemQWowVWGlhMwayjaS3eyUSm0rM,7866
44
- Reports/markdown.py,sha256=j5QYmk9HXZK9mL3LQqJaW7FJ9oqCmBpEfmvtElljiso,19643
43
+ Reports/html.py,sha256=rBnwvWeFgCfP7O8nsBL6hWE63Y1Qd24QyGD2Z7CnZ-8,8094
44
+ Reports/markdown.py,sha256=pDGHYMdtZmeXHqvU9FB3BycyB4qflWXq0bf2m-wsXMU,21138
45
45
  Reports/mechanisms.py,sha256=d2Rxt3JBYvqAOAYUynl0buYVoXEHrO8EGq7GK6hK8NA,1322
46
46
  Reports/node_map.py,sha256=FdSMDQG16NX6n9sZcH-T5xwsvgjrV9OqBHc9J_VlNK0,3129
47
47
  Reports/parameters.py,sha256=yizNG4lNGrgrlzYYcHMGfXKDFlPw4PMDYshDqZ3YARs,535
@@ -50,8 +50,8 @@ Reports/spaces.py,sha256=-76hR5wQBv4lsG000ypBJ-OprjsNjI-rNRMYdtsYnjQ,579
50
50
  Reports/state.py,sha256=RSHDjzSiUj4ZjReWbkBW7k2njs3Ovp-q0rCC7GBfD-A,2203
51
51
  Reports/tables.py,sha256=O0CNuqh3LMECq5uLjBOoxMUk5hUvkUK660FNnwWUxDY,1505
52
52
  Reports/wiring.py,sha256=u9SvKWy6T-WJUEgFI6-zgZanoOaTTs_2YwmEceDLsV8,1618
53
- math_spec_mapping-0.2.4.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
54
- math_spec_mapping-0.2.4.dist-info/METADATA,sha256=LuLoWfDUlm2t-bKaYix2Pc6C4Fdzq-jVBJ1meGJKKsc,5898
55
- math_spec_mapping-0.2.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
56
- math_spec_mapping-0.2.4.dist-info/top_level.txt,sha256=DKHirRZ28B4EfLjV3iAU31Sdj6q90EDPTSkRGRZf3uo,49
57
- math_spec_mapping-0.2.4.dist-info/RECORD,,
53
+ math_spec_mapping-0.2.6.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
54
+ math_spec_mapping-0.2.6.dist-info/METADATA,sha256=1v4DFrmGZm4H3SbrpBO9BM55KgJVnWGqVtHnEoy3zjQ,6012
55
+ math_spec_mapping-0.2.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
56
+ math_spec_mapping-0.2.6.dist-info/top_level.txt,sha256=Su_elDptuaN90UL6S2mN2Tb7kpAL6HuAZiLrbNPwBdc,33
57
+ math_spec_mapping-0.2.6.dist-info/RECORD,,
@@ -2,5 +2,3 @@ Classes
2
2
  Convenience
3
3
  Load
4
4
  Reports
5
- __init__
6
- schema
__init__.py DELETED
@@ -1,28 +0,0 @@
1
- from .Load import load_from_json
2
- from .Reports import (
3
- create_action_chains_graph,
4
- write_out_boundary_actions,
5
- write_out_policies,
6
- write_out_mechanisms,
7
- load_svg_graphviz,
8
- write_basic_report_full,
9
- write_action_chain_reports,
10
- write_spec_tree,
11
- create_parameter_impact_table,
12
- write_entity_reports,
13
- write_wiring_report,
14
- write_overview,
15
- write_entity_markdown_report,
16
- write_state_markdown_report,
17
- write_types_markdown_report,
18
- write_boundary_action_markdown_report,
19
- write_policy_markdown_report,
20
- write_mechanism_markdown_report,
21
- write_space_markdown_report,
22
- write_control_action_markdown_report,
23
- write_wiring_markdown_report,
24
- write_parameter_markdown_report,
25
- write_stateful_metrics_markdown_report,
26
- write_all_markdown_reports,
27
- )
28
- from .schema import schema
schema.py DELETED
@@ -1,8 +0,0 @@
1
- import pathlib
2
- import json
3
-
4
- current_path = pathlib.Path(__file__).parent.resolve()
5
- with open("{}/schema.schema.json".format(current_path), "r") as f:
6
- f = f.read()
7
- f = f.replace("./schema.schema.json/", "")
8
- schema = json.loads(f)