math-spec-mapping 0.3.2__py3-none-any.whl → 0.3.3__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.
@@ -83,6 +83,7 @@ class Block:
83
83
  updates = self.all_updates
84
84
  else:
85
85
  return "\n", {}
86
+ updates = sorted(updates, key=lambda x: x[0].name + "-" + x[1].name)
86
87
 
87
88
  out = "\n"
88
89
  out += 'subgraph SVS["State Variables"]\n'
@@ -90,6 +91,7 @@ class Block:
90
91
  # Render the entities
91
92
  entity_mapping = {}
92
93
  entities = set([x[0] for x in updates])
94
+ entities = sorted(entities, key=lambda x: x.name)
93
95
  for i, x in enumerate(entities):
94
96
  entity_mapping[x.name] = "EE{}".format(i)
95
97
  out += '{}[("{}")]'.format(entity_mapping[x.name], x.name)
@@ -31,7 +31,9 @@ class State:
31
31
  # Check variable name not repeated
32
32
  assert (
33
33
  var.name not in self.variable_map
34
- ), "Variable name {} is already present in variables!".format(key)
34
+ ), "Variable name {} is already present in variables for the state of {}!".format(
35
+ key, self.name
36
+ )
35
37
 
36
38
  self.variable_map[key] = var
37
39
 
@@ -42,7 +42,9 @@ def convert_boundary_action(data: Dict, ms: Dict) -> BoundaryAction:
42
42
  for name in data["called_by"]:
43
43
  assert (
44
44
  name in ms["Entities"]
45
- ), "{} entity not in entities dictionary".format(name)
45
+ ), "{} entity not in entities dictionary which is referenced in called_by for {}".format(
46
+ name, data["name"]
47
+ )
46
48
  data["called_by"] = [ms["Entities"][x] for x in data["called_by"]]
47
49
 
48
50
  data["codomain"] = tuple(ms["Spaces"][x] for x in data["codomain"])
@@ -25,7 +25,11 @@ def convert_entity(data: Dict, ms: Dict) -> Entity:
25
25
  # Assert that the state is in the math spec and assign it here
26
26
  if data["state"]:
27
27
  name = data["state"]
28
- assert name in ms["State"], "{} state not in states dictionary".format(name)
28
+ assert (
29
+ name in ms["State"]
30
+ ), "{} state not in states dictionary for the entity of {}".format(
31
+ name, data["name"]
32
+ )
29
33
  data["state"] = ms["State"][name]
30
34
 
31
35
  # Build the state object
@@ -25,7 +25,7 @@ def convert_state(ms, data: Dict) -> State:
25
25
  new_variables = []
26
26
  for var in data["variables"]:
27
27
  check_json_keys(var, "State Variable")
28
- assert var["type"] in ms["Types"], "Type not in ms"
28
+ assert var["type"] in ms["Types"], "Type {} not in ms".format(var["name"])
29
29
  var["type"] = ms["Types"][var["type"]]
30
30
  if "metadata" not in var:
31
31
  var["metadata"] = {}
@@ -225,7 +225,7 @@ def write_policy_markdown_report(ms, path, policy, add_metadata=True):
225
225
  out += "\n"
226
226
 
227
227
  out += "## Parameters Used\n"
228
- for i, x in enumerate(policy.parameters_used):
228
+ for i, x in enumerate(sorted(policy.parameters_used, key=lambda x: x)):
229
229
  out += "{}. [[{}]]".format(i + 1, x)
230
230
  out += "\n"
231
231
 
@@ -427,7 +427,7 @@ def write_wiring_markdown_report(ms, path, wiring, add_metadata=True):
427
427
  out += "\n"
428
428
 
429
429
  out += "## All Blocks\n"
430
- for i, x in enumerate(wiring.components_full()):
430
+ for i, x in enumerate(sorted(wiring.components_full(), key=lambda x: x.name)):
431
431
  out += "{}. [[{}]]".format(i + 1, x.name)
432
432
  out += "\n"
433
433
 
@@ -452,13 +452,13 @@ def write_wiring_markdown_report(ms, path, wiring, add_metadata=True):
452
452
  out += "\n"
453
453
 
454
454
  out += "## All Spaces Used\n"
455
- for i, x in enumerate(wiring.all_spaces_used):
455
+ for i, x in enumerate(sorted(wiring.all_spaces_used, key=lambda x: x.name)):
456
456
  out += "{}. [[{}]]".format(i + 1, x.name)
457
457
  out += "\n"
458
458
  out += "\n"
459
459
 
460
460
  out += "## Parameters Used\n"
461
- for i, x in enumerate(wiring.parameters_used):
461
+ for i, x in enumerate(sorted(wiring.parameters_used, key=lambda x: x)):
462
462
  out += "{}. [[{}]]".format(i + 1, x)
463
463
  out += "\n"
464
464
  out += "\n"
@@ -477,7 +477,9 @@ def write_wiring_markdown_report(ms, path, wiring, add_metadata=True):
477
477
 
478
478
  out += "## All State Updates\n"
479
479
 
480
- for i, x in enumerate(wiring.all_updates):
480
+ for i, x in enumerate(
481
+ sorted(wiring.all_updates, key=lambda x: x[0].name + "-" + x[1].name)
482
+ ):
481
483
  out += "{}. [[{}]].[[{}|{}]]".format(
482
484
  i + 1,
483
485
  x[0].name,
@@ -536,7 +538,7 @@ def write_stateful_metrics_markdown_report(ms, path, metric, add_metadata=True):
536
538
  out += "Domain: {}\n\n".format(metric.domain)
537
539
 
538
540
  out += "## Parameters Used\n"
539
- for i, x in enumerate(metric.parameters_used):
541
+ for i, x in enumerate(sorted(metric.parameters_used, key=lambda x: x.name)):
540
542
  out += "{}. [[{}]]".format(i + 1, x)
541
543
  out += "\n"
542
544
  out += "\n"
@@ -575,7 +577,7 @@ def write_metrics_markdown_report(ms, path, metric, add_metadata=True):
575
577
  out += "\n\n"
576
578
 
577
579
  out += "## Parameters Used\n"
578
- for i, x in enumerate(metric.parameters_used):
580
+ for i, x in enumerate(sorted(metric.parameters_used, key=lambda x: x.name)):
579
581
  out += "{}. [[{}]]".format(i + 1, x)
580
582
  var = ms.parameters.parameter_map[x]
581
583
  if var.symbol:
@@ -683,6 +685,7 @@ def write_wiring_display_markdown_report(ms, path, wiring, add_metadata=True):
683
685
  out += "## Unique Components Used\n"
684
686
  components = [set(x.components_full()) for x in wirings]
685
687
  components = set().union(*components)
688
+ components = sorted(components, key=lambda x: x.name)
686
689
  for i, x in enumerate(components):
687
690
  out += "{}. [[{}]]".format(i + 1, x.name)
688
691
  out += "\n"
@@ -706,8 +709,9 @@ def write_wiring_display_markdown_report(ms, path, wiring, add_metadata=True):
706
709
 
707
710
  parameters = [set(x.parameters_used) for x in wirings]
708
711
  parameters = set().union(*parameters)
712
+ parameters = sorted(parameters, key=lambda x: x)
709
713
  out += "## Unique Parameters Used\n"
710
- for i, x in enumerate(parameters):
714
+ for i, x in enumerate(sorted(parameters, key=lambda x: x.name)):
711
715
  out += "{}. [[{}]]".format(i + 1, x)
712
716
  out += "\n"
713
717
  out += "\n"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: math-spec-mapping
3
- Version: 0.3.2
3
+ Version: 0.3.3
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
@@ -2,7 +2,7 @@ math_spec_mapping/__init__.py,sha256=CzT9KycdX5nuiUzDFmLXVeAIr8v8UKGbXsEQF8vjl1c
2
2
  math_spec_mapping/schema.py,sha256=6mrRqzEnTTSXjb19xJ63MBp0KjKH0s7i6TfT4MkAY9k,233
3
3
  math_spec_mapping/schema.schema.json,sha256=5_DiubQzPo8koyx5PKFh_zIINyjtrhGWG_7N73s9b1Q,29400
4
4
  math_spec_mapping/Classes/ActionTransmissionChannel.py,sha256=zWMo5QsgPh5WGIWXl-xOrZNMXYJXmK6Vejw1dQvi0og,246
5
- math_spec_mapping/Classes/Block.py,sha256=hXQO221IP-TqZm_TwFKfURpEEjZm7L1TPZDCYlaOdho,17302
5
+ math_spec_mapping/Classes/Block.py,sha256=OsWM1ZAi6ZvavDhMFJi_H7w8ZF9LqJIKR3ZLTXnts9w,17437
6
6
  math_spec_mapping/Classes/BoundaryAction.py,sha256=AOENCqCEfpjotnHhzUj_F2SOP0SGpkN1tNPr8Mtl6Tc,476
7
7
  math_spec_mapping/Classes/ControlAction.py,sha256=ysqpgANwdizVdwqtgZmnxXMpCqrzmVEF_6YT0M3l4Ho,526
8
8
  math_spec_mapping/Classes/Entity.py,sha256=fA0-b128_OHHxfCg4pzqyQV083EYev1HlVpy86S5igg,1226
@@ -12,7 +12,7 @@ math_spec_mapping/Classes/Metric.py,sha256=AhPgYppOP6q49xvR8S9STxQsXUKJlTWx7wI1L
12
12
  math_spec_mapping/Classes/Parameter.py,sha256=ZuJ_w0sChvRElJ4sOnXZ2EV4Ell2xXFulKLjVOpgz2E,1237
13
13
  math_spec_mapping/Classes/Policy.py,sha256=fzV85tB3QScjiYGfhw_dyQt9L1BYYfTyTIQQcxeT8ac,530
14
14
  math_spec_mapping/Classes/Space.py,sha256=QsahxoUfRsDWQLBL683KnGx72MAmRxv7CDE7TMgCG-E,472
15
- math_spec_mapping/Classes/State.py,sha256=2Yn4wQnbBK-Au40tx5YHR8ZsLA7NHHbWvVPjDzU6Tq0,1538
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=UCis1BJ7fsajHHxFF05ZiyDean2D4s4a95uYYW1Mjq4,749
18
18
  math_spec_mapping/Classes/Type.py,sha256=2KFY8d3cv1PzJJ7SSMHJf1zcfQ3ZbqxotK2KgTaLZdM,289
@@ -22,10 +22,10 @@ math_spec_mapping/Convenience/documentation.py,sha256=1ziWVJznbCUxeAAt03nAdEYtMl
22
22
  math_spec_mapping/Convenience/starter.py,sha256=Pv0b5pHnv5Bxk3PkY8O9Nv62z2C_gxj5xcf8G9r4Pkw,11010
23
23
  math_spec_mapping/Load/__init__.py,sha256=_ga5nHi7U5rY5lCF36_XI9Qmybq4P8R4m5I5mmjLBk8,33
24
24
  math_spec_mapping/Load/action_transmission_channel.py,sha256=9Wer7g2s5SSOcUYuZ0PqSKUVVnW3EvGQJZNXJTwW__0,2561
25
- math_spec_mapping/Load/boundary_actions.py,sha256=WvEj2tqN0pUZtE4EiKUuGzMdAcWsMlLslJJeFjIu6gk,2058
25
+ math_spec_mapping/Load/boundary_actions.py,sha256=mKX4hUHlX4xoJzm-6W3W3AjWRC9RNiEWb0al7lN0DBs,2142
26
26
  math_spec_mapping/Load/control_actions.py,sha256=4E57s730W4tX5SaKXKaAvet37r8Bwt-g8Kk6EanF4TU,2042
27
27
  math_spec_mapping/Load/displays.py,sha256=ooHWT_OryzEkp7F3LcGywwdLMRJLxuyPK82zJ3gcyN0,414
28
- math_spec_mapping/Load/entities.py,sha256=rMD_Pja-zqH1Z14rsO_Ia7dg3BIi5_HoQmqGAoEYofA,1208
28
+ math_spec_mapping/Load/entities.py,sha256=Ds7VQY_govWEn1vSHYVrLa8IadSNyOQzaCK18JPYPKk,1289
29
29
  math_spec_mapping/Load/general.py,sha256=2q6aGKxXhebiHHTZhtACvM4nWIkTben0o5rXuvfv2Vw,4463
30
30
  math_spec_mapping/Load/implementations.py,sha256=SGKZ_YXeNpJUTnw5fajQTXji7S2bNQo8sh-7YcIO6pk,395
31
31
  math_spec_mapping/Load/load.py,sha256=CLprDhJpbwm9RAzKM2Ghwr8eqBu0a-wvGDOCMmc01YE,2484
@@ -36,7 +36,7 @@ math_spec_mapping/Load/policy.py,sha256=HvlhGHGJTweVs7DOI2HSL_2_diECr8ukDUmzoFLQ
36
36
  math_spec_mapping/Load/spaces.py,sha256=7zgGA57Te7T4hfuCCDElffiidWgn1lKm5E14e1yjt8M,1116
37
37
  math_spec_mapping/Load/state_update_transmission_channels.py,sha256=FJWp5n4HdtHAfof5BUQ6BnRakljatL2h8dWCapaVSc0,2238
38
38
  math_spec_mapping/Load/stateful_metrics.py,sha256=uGSTc6x6lld5xptgSUMHrO0Vg0QDRIL14C6zTg33S8o,1977
39
- math_spec_mapping/Load/states.py,sha256=gAiCGxqc8_js8Gd0aRRrK4PeUW4jgZsgukR6e-5fcg4,1290
39
+ math_spec_mapping/Load/states.py,sha256=WTLvonzrUQWDVnkF9OPzHeyImrxoMPmonEl5O9O6Pxg,1313
40
40
  math_spec_mapping/Load/type.py,sha256=z6cBdBNjWed7cRyA0Bj7Jd5PmtemVVh07n3mWFj_5U4,4356
41
41
  math_spec_mapping/Load/wiring.py,sha256=1dR94U5N1W_WI5rL6lYBltH25ZvApB2pIpq9r5Opkug,3083
42
42
  math_spec_mapping/Reports/__init__.py,sha256=W27I6S9Ro1hWeHmnxIokCA06awB__eYey7PvKD4Hc1s,933
@@ -44,7 +44,7 @@ math_spec_mapping/Reports/boundary_actions.py,sha256=45BPp4QjWdD-3E9ZWwqgj_nI2-Y
44
44
  math_spec_mapping/Reports/control_actions.py,sha256=NksekZKIPFSIkubttFstKFthc5AU9B9PWRLSl9j1wWs,1216
45
45
  math_spec_mapping/Reports/general.py,sha256=WOOn6Wlb8M4fsdN49FlKLwOka6vJPQ9aCUy88TL2ki0,1610
46
46
  math_spec_mapping/Reports/html.py,sha256=tqydmwFWz_1Bg_J_avG4t9LtE-DUGbOKAPNuwg6lgRI,9007
47
- math_spec_mapping/Reports/markdown.py,sha256=JF4D95pocWfQFi5uFjMFewWabuo4MSlfKeoB-TUpWFk,22505
47
+ math_spec_mapping/Reports/markdown.py,sha256=K1amcJrAs4dNv9mN8NeC8U97RtWGJrRmJfEkZlAn_jA,22881
48
48
  math_spec_mapping/Reports/mechanisms.py,sha256=d2Rxt3JBYvqAOAYUynl0buYVoXEHrO8EGq7GK6hK8NA,1322
49
49
  math_spec_mapping/Reports/node_map.py,sha256=FdSMDQG16NX6n9sZcH-T5xwsvgjrV9OqBHc9J_VlNK0,3129
50
50
  math_spec_mapping/Reports/parameters.py,sha256=yizNG4lNGrgrlzYYcHMGfXKDFlPw4PMDYshDqZ3YARs,535
@@ -53,8 +53,8 @@ math_spec_mapping/Reports/spaces.py,sha256=-76hR5wQBv4lsG000ypBJ-OprjsNjI-rNRMYd
53
53
  math_spec_mapping/Reports/state.py,sha256=RkqfSonar74KVC8PpA9GgI2xaHX6BrkNdAuWMZlYQfI,2321
54
54
  math_spec_mapping/Reports/tables.py,sha256=O0CNuqh3LMECq5uLjBOoxMUk5hUvkUK660FNnwWUxDY,1505
55
55
  math_spec_mapping/Reports/wiring.py,sha256=u9SvKWy6T-WJUEgFI6-zgZanoOaTTs_2YwmEceDLsV8,1618
56
- math_spec_mapping-0.3.2.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
57
- math_spec_mapping-0.3.2.dist-info/METADATA,sha256=whpL8E0F7P53HUUVAYIMsMVTOBv8oFGSok6a6IHF2BM,6012
58
- math_spec_mapping-0.3.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
59
- math_spec_mapping-0.3.2.dist-info/top_level.txt,sha256=AImhn9wgazkdV0a9vfiphtQR8uGe2nq-ZIOp-6yUk9o,18
60
- math_spec_mapping-0.3.2.dist-info/RECORD,,
56
+ math_spec_mapping-0.3.3.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
57
+ math_spec_mapping-0.3.3.dist-info/METADATA,sha256=M8t5087vsXIk7Xw-SROeZa8xWRuuMs2lkaqswl0_srU,6012
58
+ math_spec_mapping-0.3.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
59
+ math_spec_mapping-0.3.3.dist-info/top_level.txt,sha256=AImhn9wgazkdV0a9vfiphtQR8uGe2nq-ZIOp-6yUk9o,18
60
+ math_spec_mapping-0.3.3.dist-info/RECORD,,