math-spec-mapping 0.2.6.5__py3-none-any.whl → 0.2.6.7__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. math_spec_mapping/__init__.py +30 -0
  2. math_spec_mapping/schema.py +8 -0
  3. math_spec_mapping/schema.schema.json +753 -0
  4. {math_spec_mapping-0.2.6.5.dist-info → math_spec_mapping-0.2.6.7.dist-info}/METADATA +1 -1
  5. math_spec_mapping-0.2.6.7.dist-info/RECORD +60 -0
  6. math_spec_mapping-0.2.6.7.dist-info/top_level.txt +1 -0
  7. math_spec_mapping-0.2.6.5.dist-info/RECORD +0 -57
  8. math_spec_mapping-0.2.6.5.dist-info/top_level.txt +0 -4
  9. {Classes → math_spec_mapping/Classes}/ActionTransmissionChannel.py +0 -0
  10. {Classes → math_spec_mapping/Classes}/Block.py +0 -0
  11. {Classes → math_spec_mapping/Classes}/BoundaryAction.py +0 -0
  12. {Classes → math_spec_mapping/Classes}/ControlAction.py +0 -0
  13. {Classes → math_spec_mapping/Classes}/Entity.py +0 -0
  14. {Classes → math_spec_mapping/Classes}/MathSpec.py +0 -0
  15. {Classes → math_spec_mapping/Classes}/Mechanism.py +0 -0
  16. {Classes → math_spec_mapping/Classes}/Metric.py +0 -0
  17. {Classes → math_spec_mapping/Classes}/Parameter.py +0 -0
  18. {Classes → math_spec_mapping/Classes}/Policy.py +0 -0
  19. {Classes → math_spec_mapping/Classes}/Space.py +0 -0
  20. {Classes → math_spec_mapping/Classes}/State.py +0 -0
  21. {Classes → math_spec_mapping/Classes}/StateUpdateTransmissionChannel.py +0 -0
  22. {Classes → math_spec_mapping/Classes}/StatefulMetric.py +0 -0
  23. {Classes → math_spec_mapping/Classes}/Type.py +0 -0
  24. {Classes → math_spec_mapping/Classes}/__init__.py +0 -0
  25. {Convenience → math_spec_mapping/Convenience}/__init__.py +0 -0
  26. {Convenience → math_spec_mapping/Convenience}/documentation.py +0 -0
  27. {Convenience → math_spec_mapping/Convenience}/starter.py +0 -0
  28. {Load → math_spec_mapping/Load}/__init__.py +0 -0
  29. {Load → math_spec_mapping/Load}/action_transmission_channel.py +0 -0
  30. {Load → math_spec_mapping/Load}/boundary_actions.py +0 -0
  31. {Load → math_spec_mapping/Load}/control_actions.py +0 -0
  32. {Load → math_spec_mapping/Load}/displays.py +0 -0
  33. {Load → math_spec_mapping/Load}/entities.py +0 -0
  34. {Load → math_spec_mapping/Load}/general.py +0 -0
  35. {Load → math_spec_mapping/Load}/implementations.py +0 -0
  36. {Load → math_spec_mapping/Load}/load.py +0 -0
  37. {Load → math_spec_mapping/Load}/mechanism.py +0 -0
  38. {Load → math_spec_mapping/Load}/metrics.py +0 -0
  39. {Load → math_spec_mapping/Load}/parameters.py +0 -0
  40. {Load → math_spec_mapping/Load}/policy.py +0 -0
  41. {Load → math_spec_mapping/Load}/spaces.py +0 -0
  42. {Load → math_spec_mapping/Load}/state_update_transmission_channels.py +0 -0
  43. {Load → math_spec_mapping/Load}/stateful_metrics.py +0 -0
  44. {Load → math_spec_mapping/Load}/states.py +0 -0
  45. {Load → math_spec_mapping/Load}/type.py +0 -0
  46. {Load → math_spec_mapping/Load}/wiring.py +0 -0
  47. {Reports → math_spec_mapping/Reports}/__init__.py +0 -0
  48. {Reports → math_spec_mapping/Reports}/boundary_actions.py +0 -0
  49. {Reports → math_spec_mapping/Reports}/control_actions.py +0 -0
  50. {Reports → math_spec_mapping/Reports}/general.py +0 -0
  51. {Reports → math_spec_mapping/Reports}/html.py +0 -0
  52. {Reports → math_spec_mapping/Reports}/markdown.py +0 -0
  53. {Reports → math_spec_mapping/Reports}/mechanisms.py +0 -0
  54. {Reports → math_spec_mapping/Reports}/node_map.py +0 -0
  55. {Reports → math_spec_mapping/Reports}/parameters.py +0 -0
  56. {Reports → math_spec_mapping/Reports}/policies.py +0 -0
  57. {Reports → math_spec_mapping/Reports}/spaces.py +0 -0
  58. {Reports → math_spec_mapping/Reports}/state.py +0 -0
  59. {Reports → math_spec_mapping/Reports}/tables.py +0 -0
  60. {Reports → math_spec_mapping/Reports}/wiring.py +0 -0
  61. {math_spec_mapping-0.2.6.5.dist-info → math_spec_mapping-0.2.6.7.dist-info}/LICENSE +0 -0
  62. {math_spec_mapping-0.2.6.5.dist-info → math_spec_mapping-0.2.6.7.dist-info}/WHEEL +0 -0
@@ -0,0 +1,30 @@
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
29
+
30
+ # from .Convenience import write_top_level_json_description
@@ -0,0 +1,8 @@
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)
@@ -0,0 +1,753 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "$ref": "./schema.schema.json/#/definitions/MSMLSpec",
4
+ "title": "MSML",
5
+ "$id": "https://github.com/BlockScience/MSML/src/schema.schema.json",
6
+ "definitions": {
7
+ "MSMLSpec": {
8
+ "type": "object",
9
+ "additionalProperties": false,
10
+ "properties": {
11
+ "Policies": {
12
+ "type": "array",
13
+ "items": {
14
+ "$ref": "./schema.schema.json/#/definitions/Policy"
15
+ }
16
+ },
17
+ "Spaces": {
18
+ "type": "array",
19
+ "items": {
20
+ "$ref": "./schema.schema.json/#/definitions/Space"
21
+ }
22
+ },
23
+ "State": {
24
+ "type": "array",
25
+ "items": {
26
+ "$ref": "./schema.schema.json/#/definitions/State"
27
+ }
28
+ },
29
+ "Stateful Metrics": {
30
+ "type": "array",
31
+ "items": {
32
+ "$ref": "./schema.schema.json/#/definitions/StatefulMetric"
33
+ }
34
+ },
35
+ "Parameters": {
36
+ "type": "array",
37
+ "items": {
38
+ "$ref": "./schema.schema.json/#/definitions/Parameter"
39
+ }
40
+ },
41
+ "Mechanisms": {
42
+ "type": "array",
43
+ "items": {
44
+ "$ref": "./schema.schema.json/#/definitions/Mechanism"
45
+ }
46
+ },
47
+ "Entities": {
48
+ "type": "array",
49
+ "items": {
50
+ "$ref": "./schema.schema.json/#/definitions/Entity"
51
+ }
52
+ },
53
+ "Boundary Actions": {
54
+ "type": "array",
55
+ "items": {
56
+ "$ref": "./schema.schema.json/#/definitions/BoundaryAction"
57
+ }
58
+ },
59
+ "Control Actions": {
60
+ "type": "array",
61
+ "items": {
62
+ "$ref": "./schema.schema.json/#/definitions/ControlAction"
63
+ }
64
+ },
65
+ "Wiring": {
66
+ "type": "array",
67
+ "items": {
68
+ "$ref": "./schema.schema.json/#/definitions/Wiring"
69
+ }
70
+ },
71
+ "Types": {
72
+ "type": "array",
73
+ "items": {
74
+ "$ref": "./schema.schema.json/#/definitions/Type"
75
+ }
76
+ },
77
+ "Metrics": {
78
+ "type": "array",
79
+ "items": {
80
+ "$ref": "./schema.schema.json/#/definitions/Metric"
81
+ }
82
+ },
83
+ "Displays": {"type": "object",
84
+ "additionalProperties": false,
85
+ "properties": {
86
+ "wiring": {
87
+ "type": "array",
88
+ "items": {
89
+ "$ref": "./schema.schema.json/#/definitions/WiringDisplay"
90
+ }
91
+ }
92
+ },
93
+ "required": [
94
+ "wiring"
95
+ ]}
96
+ },
97
+ "required": [
98
+ "Boundary Actions",
99
+ "Control Actions",
100
+ "Entities",
101
+ "Mechanisms",
102
+ "Parameters",
103
+ "Policies",
104
+ "Spaces",
105
+ "State",
106
+ "Stateful Metrics",
107
+ "Types",
108
+ "Wiring",
109
+ "Metrics"
110
+ ],
111
+ "title": "MSMLSpec",
112
+ "description": "A JSON schema that is used in the mathematical specification mapping library to create the underlying MSML object."
113
+ },
114
+ "ControlAction": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "properties": {
118
+ "name": {
119
+ "type": "string"
120
+ },
121
+ "description": {
122
+ "type": "string"
123
+ },
124
+ "constraints": {
125
+ "type": "array",
126
+ "items": {}
127
+ },
128
+ "control_action_options": {
129
+ "type": "array",
130
+ "items": {}
131
+ },
132
+ "codomain": {
133
+ "type": "array",
134
+ "items": {
135
+ "type": "string"
136
+ }
137
+ },
138
+ "parameters_used": {
139
+ "type": "array",
140
+ "items": {"type": "string"}
141
+ }
142
+ },
143
+ "required": [
144
+ "codomain",
145
+ "constraints",
146
+ "control_action_options",
147
+ "description",
148
+ "name",
149
+ "parameters_used"
150
+ ],
151
+ "title": "ControlAction",
152
+ "description": "The definition of actions that the system might call, such as an action to refill the stock of an item when reserves run too low or something that could get triggered from a sensor. The key differentiator from boundary actions is that there is no entity calling it and it is not done with randomness."
153
+ },
154
+ "Entity": {
155
+ "type": "object",
156
+ "additionalProperties": false,
157
+ "properties": {
158
+ "name": {
159
+ "type": "string",
160
+ "description": "The name of the entity"
161
+ },
162
+ "notes": {
163
+ "type": "string",
164
+ "description": "Any notes on the entity"
165
+ },
166
+ "state": {
167
+ "type": "string",
168
+ "description": "The string key for the state associated with the entity"
169
+ },
170
+ "metadata": {"type": "object"}
171
+ },
172
+ "required": [
173
+ "name",
174
+ "notes",
175
+ "state"
176
+ ],
177
+ "title": "Entity",
178
+ "description": "Entities are any class of user or infrastructure that should have their own state and potentially ability to call boundary actions. Examples could be a customer or a company (for which a simulation might assume it is acting as one cohesive unit)"
179
+ },
180
+ "Mechanism": {
181
+ "type": "object",
182
+ "additionalProperties": false,
183
+ "properties": {
184
+ "name": {
185
+ "type": "string",
186
+ "description": "The name of the mechanism"
187
+ },
188
+ "description": {
189
+ "type": "string",
190
+ "description": "The description of what the mechanism does"
191
+ },
192
+ "constraints": {
193
+ "type": "array",
194
+ "description": "Any constraints which the mechanism must respect",
195
+ "items": {"type": "string"}
196
+ },
197
+ "logic": {
198
+ "type": "string",
199
+ "description": "The logic of how the mechanism should work"
200
+ },
201
+ "domain": {
202
+ "type": "array",
203
+ "items": {
204
+ "type": "string"
205
+ },
206
+ "description": "The spaces which are the input into the mechanism"
207
+ },
208
+ "parameters_used": {
209
+ "type": "array",
210
+ "items": {
211
+ "type": "string"
212
+ },
213
+ "description": "The string keys of parameters which have an effect on the mechanism"
214
+ },
215
+ "updates": {
216
+ "type": "array",
217
+ "items": {
218
+ "items": {
219
+ "$ref": "./schema.schema.json/#/definitions/Update"
220
+ }
221
+ },
222
+ "description": "The states updates that the mechanism causes in the form of (Entity, State Variable)"
223
+ },
224
+ "metadata": {"type": "object",
225
+ "description": "Any metadata that is added onto the mechanism"}
226
+ },
227
+ "required": [
228
+ "constraints",
229
+ "description",
230
+ "domain",
231
+ "logic",
232
+ "name",
233
+ "parameters_used",
234
+ "updates"
235
+ ],
236
+ "title": "Mechanism",
237
+ "description": "Anything that updates state in the system, usually policies will call these with the outputs of logic. The reasoning to split them out is so that if at some point you want to add a recording variable every time an account is changed or do something like have a variable listener, you can just change the mechanism responsible for it in only one place."
238
+ },
239
+ "Parameter": {
240
+ "type": "object",
241
+ "additionalProperties": false,
242
+ "properties": {
243
+ "name": {
244
+ "type": "string",
245
+ "description": "The name of the parameter set"
246
+ },
247
+ "notes": {
248
+ "type": "string",
249
+ "description": "Any notes about the parameter set"
250
+ },
251
+ "parameters": {
252
+ "type": "array",
253
+ "items": {
254
+ "$ref": "./schema.schema.json/#/definitions/ParameterElement"
255
+ },
256
+ "description": "All parameters that are a part of this parameter set"
257
+ }
258
+ },
259
+ "required": [
260
+ "name",
261
+ "notes",
262
+ "parameters"
263
+ ],
264
+ "title": "Parameter",
265
+ "description": "Both local and global parameter sets in the system that could be set"
266
+ },
267
+ "ParameterElement": {
268
+ "type": "object",
269
+ "additionalProperties": false,
270
+ "properties": {
271
+ "variable_type": {
272
+ "type": "string",
273
+ "description": "The type of that the parameter takes."
274
+ },
275
+ "name": {
276
+ "type": "string",
277
+ "description": "The unique name of the parameter"
278
+ },
279
+ "description": {
280
+ "type": "string",
281
+ "description": "The description of the parameter"
282
+ },
283
+ "symbol": {
284
+ "type": ["string","null"],
285
+ "description": "The symbol associated with the parameter (optional)"
286
+ },
287
+ "domain": {
288
+ "type": ["string","null"],
289
+ "description": "The mathematical domain of the parameter (optional)"
290
+ },
291
+ "parameter_class": {
292
+ "type": "string",
293
+ "description": "The type of paramter this is, of which the options are system (what you would find in production code of a system), behavioral (for what kinds of behavioral assumptions and distributions there are), and functional (for defining out different functional forms such as swapping in and out policies)"
294
+ }
295
+ },
296
+ "required": [
297
+ "description",
298
+ "domain",
299
+ "name",
300
+ "parameter_class",
301
+ "symbol",
302
+ "variable_type"
303
+ ],
304
+ "title": "ParameterElement"
305
+ },
306
+ "Policy": {
307
+ "type": "object",
308
+ "additionalProperties": false,
309
+ "properties": {
310
+ "name": {
311
+ "type": "string"
312
+ },
313
+ "description": {
314
+ "type": "string"
315
+ },
316
+ "constraints": {
317
+ "type": "array",
318
+ "items": {}
319
+ },
320
+ "policy_options": {
321
+ "type": "array",
322
+ "items": {
323
+ "$ref": "./schema.schema.json/#/definitions/PolicyOption"
324
+ }
325
+ },
326
+ "domain": {
327
+ "type": "array",
328
+ "items": {
329
+ "type": "string"
330
+ }
331
+ },
332
+ "codomain": {
333
+ "type": "array",
334
+ "items": {
335
+ "type": "string"
336
+ }
337
+ },
338
+ "parameters_used": {
339
+ "type": "array",
340
+ "items": {
341
+ "type": "string"
342
+ }
343
+ },
344
+ "metrics_used": {
345
+ "type": "array",
346
+ "items": {
347
+ "type": "string"
348
+ }
349
+ }
350
+ },
351
+ "required": [
352
+ "codomain",
353
+ "constraints",
354
+ "description",
355
+ "domain",
356
+ "name",
357
+ "parameters_used",
358
+ "policy_options",
359
+ "metrics_used"
360
+ ],
361
+ "title": "Policy",
362
+ "description": "A definition of the policies that handle all logical things. This could be, for example, a policy which determines what price is paid given a boundary action of someone putting in a market buy order for a stock."
363
+ },
364
+ "PolicyOption": {
365
+ "type": "object",
366
+ "additionalProperties": false,
367
+ "properties": {
368
+ "name": {
369
+ "type": "string"
370
+ },
371
+ "description": {
372
+ "type": "string"
373
+ },
374
+ "logic": {
375
+ "type": "string"
376
+ }
377
+ },
378
+ "required": [
379
+ "description",
380
+ "logic",
381
+ "name"
382
+ ],
383
+ "title": "PolicyOption",
384
+ "description": "The concrete possible implementations that a given policy block can reference or select"
385
+ },
386
+ "Space": {
387
+ "type": "object",
388
+ "additionalProperties": false,
389
+ "properties": {
390
+ "name": {
391
+ "type": "string"
392
+ },
393
+ "schema": {
394
+ "$ref": "./schema.schema.json/#/definitions/Schema"
395
+ }
396
+ },
397
+ "required": [
398
+ "name",
399
+ "schema"
400
+ ],
401
+ "title": "Space",
402
+ "description": "Spaces are similar to types in that they define a schema for data and are used as the domain/codomain for different blocks. They can be thought of as typed dictionaries."
403
+ },
404
+ "StatefulMetric": {
405
+ "type": "object",
406
+ "additionalProperties": true,
407
+ "properties": {
408
+ "name": {
409
+ "type": "string",
410
+ "description": "The name of the stateful metric set"
411
+ },
412
+ "notes": {
413
+ "type": "string",
414
+ "description": "Any notes about the stateful metric set"
415
+ },
416
+ "metrics": {
417
+ "type": "array",
418
+ "items": {
419
+ "$ref": "./schema.schema.json/#/definitions/StatefulMetricVar",
420
+ "description": "All the attatched stateful metrics"
421
+ }
422
+ }
423
+ },
424
+ "required": [
425
+ "metrics",
426
+ "name",
427
+ "notes"
428
+ ],
429
+ "title": "Stateful Metric",
430
+ "description": "Variables that are not held directly in the state but can computed from the state & parameters."
431
+ },
432
+ "BoundaryAction": {
433
+ "type": "object",
434
+ "additionalProperties": true,
435
+ "properties": {
436
+ "name": {
437
+ "type": "string"
438
+ },
439
+ "description": {
440
+ "type": "string"
441
+ },
442
+ "constraints": {
443
+ "type": "array",
444
+ "items": {
445
+ "type": "string"
446
+ }
447
+ },
448
+ "boundary_action_options": {
449
+ "type": "array",
450
+ "items": {}
451
+ },
452
+ "called_by": {
453
+ "type": "array",
454
+ "items": {
455
+ "type": "string"
456
+ }
457
+ },
458
+ "codomain": {
459
+ "type": "array",
460
+ "items": {
461
+ "type": "string"
462
+ }
463
+ },
464
+ "parameters_used": {
465
+ "type": "array",
466
+ "items": {
467
+ "type": "string"
468
+ }
469
+ }
470
+ },
471
+ "required": [
472
+ "boundary_action_options",
473
+ "called_by",
474
+ "codomain",
475
+ "constraints",
476
+ "description",
477
+ "name",
478
+ "parameters_used"
479
+ ],
480
+ "title": "Boundary Action",
481
+ "description": "The definition of different actions that might happen outside of the system such as customers coming into a shop. Generally will be called by entities."
482
+ },
483
+ "Schema": {
484
+ "type": "object",
485
+ "additionalProperties": true,
486
+ "required": [],
487
+ "title": "Schema"
488
+ },
489
+ "State": {
490
+ "type": "object",
491
+ "additionalProperties": false,
492
+ "properties": {
493
+ "name": {
494
+ "type": "string",
495
+ "description": "Any notes about the state or its implementation"
496
+ },
497
+ "notes": {
498
+ "type": "string",
499
+ "description": "The name of the state"
500
+ },
501
+ "variables": {
502
+ "type": "array",
503
+ "items": {
504
+ "$ref": "./schema.schema.json/#/definitions/Variable"
505
+ },
506
+ "description": "All the attatched state variables for the component"
507
+ }
508
+ },
509
+ "required": [
510
+ "name",
511
+ "notes",
512
+ "variables"
513
+ ],
514
+ "title": "State",
515
+ "description": "The definition of states in the system. There is one global system state and then the rest of the definitions are local states, generally for recording what entity states there are."
516
+ },
517
+ "Variable": {
518
+ "type": "object",
519
+ "additionalProperties": false,
520
+ "properties": {
521
+ "type": {
522
+ "type": "string",
523
+ "description": "The type of the variable"
524
+ },
525
+ "name": {
526
+ "type": "string",
527
+ "description": "Variable name"
528
+ },
529
+ "description": {
530
+ "type": "string",
531
+ "description": "Description of what the variable is"
532
+ },
533
+ "symbol": {
534
+ "type": ["string","null"],
535
+ "description": "The symbol associated with the parameter (optional)"
536
+ },
537
+ "domain": {
538
+ "type": ["string","null"],
539
+ "description": "The mathematical domain of the parameter (optional)"
540
+ }
541
+ },
542
+ "required": [
543
+ "description",
544
+ "domain",
545
+ "name",
546
+ "symbol",
547
+ "type"
548
+ ],
549
+ "title": "Variable"
550
+ },
551
+ "Type": {
552
+ "type": "object",
553
+ "additionalProperties": false,
554
+ "properties": {
555
+ "name": {
556
+ "type": "string"
557
+ },
558
+ "type": {
559
+ "type": "string"
560
+ },
561
+ "notes": {
562
+ "type": "string"
563
+ },
564
+ "metadata": {"type": "object"}
565
+ },
566
+ "required": [
567
+ "name",
568
+ "notes",
569
+ "type"
570
+ ],
571
+ "title": "Type",
572
+ "description": "This is for defining what a type might in its most basic form. These could be single typings or compound typings. The point here is to allow for changing typing in one single place and having it flow through anywhere else. I.e. if one were to define the currency type as USD, but then the project switched to using EUR, it would just require changing currency to be EUR."
573
+ },
574
+ "Metric": {
575
+ "type": "object",
576
+ "additionalProperties": false,
577
+ "properties": {
578
+ "type": {
579
+ "type": "string"
580
+ },
581
+ "name": {
582
+ "type": "string"
583
+ },
584
+ "description": {
585
+ "type": "string"
586
+ },
587
+ "variables_used": {
588
+ "type": "array",
589
+ "items": {
590
+ "type": "array",
591
+ "items": {
592
+ "type": "string"
593
+ }
594
+ }
595
+ },
596
+ "parameters_used": {
597
+ "type": "array",
598
+ "items": {
599
+ "type": "string"
600
+ }
601
+ },
602
+ "metrics_used": {
603
+ "type": "array",
604
+ "items": {
605
+ "type": "string"
606
+ }
607
+ },
608
+ "domain": {
609
+ "type": "array",
610
+ "items": {
611
+ "type": "string"
612
+ }
613
+ },
614
+ "logic": {
615
+ "type": "string"
616
+ },
617
+ "symbol": {
618
+ "type": ["string", "null"]
619
+ }
620
+ },
621
+ "required": [
622
+ "description",
623
+ "domain",
624
+ "logic",
625
+ "name",
626
+ "parameters_used",
627
+ "symbol",
628
+ "type",
629
+ "variables_used",
630
+ "metrics_used"
631
+ ],
632
+ "title": "Metric",
633
+ "description": "This component takes a variety of potential inputs and creates a metric from it. This can be used for defining out system success metrics or trying to modularize certain calculations that are needed across many other system components."
634
+ },
635
+ "Wiring": {
636
+ "type": "object",
637
+ "additionalProperties": false,
638
+ "properties": {
639
+ "name": {
640
+ "type": "string"
641
+ },
642
+ "components": {
643
+ "type": "array",
644
+ "items": {
645
+ "type": "string"
646
+ }
647
+ },
648
+ "description": {
649
+ "type": "string"
650
+ },
651
+ "constraints": {
652
+ "type": "array",
653
+ "items": {}
654
+ },
655
+ "type": {
656
+ "$ref": "./schema.schema.json/#/definitions/TypeEnum"
657
+ },
658
+ "mermaid_show_name": {
659
+ "type": "boolean"
660
+ },
661
+ "loop": {
662
+ "type": "boolean"
663
+ },
664
+ "optional_indices": {
665
+ "type": "array",
666
+ "items": {
667
+ "type": "integer"
668
+ }
669
+ }
670
+ },
671
+ "required": [
672
+ "components",
673
+ "constraints",
674
+ "description",
675
+ "name",
676
+ "type"
677
+ ],
678
+ "title": "Wiring",
679
+ "description": "A wiring is a block composed of other blocks with specific behaviors or orders of execution. For instance, there can be wirings that have blocks run one after another, passing their codomains to the next block's domain. There can also be wirings for blocks that all should run in parallel."
680
+ },
681
+ "Update": {
682
+ "title": "Update"
683
+ },
684
+ "TypeEnum": {
685
+ "type": "string",
686
+ "enum": [
687
+ "Parallel",
688
+ "Stack"
689
+ ],
690
+ "title": "TypeEnum"
691
+ },
692
+ "WiringDisplay": {"type": "object",
693
+ "additionalProperties": false,
694
+ "properties": {
695
+ "name": {
696
+ "type": "string"
697
+ },
698
+ "description": {
699
+ "type": "string"
700
+ },
701
+ "components": {
702
+ "type": "array",
703
+ "items": {
704
+ "type": "string"
705
+ }
706
+ }
707
+ },
708
+ "required": [
709
+ "components",
710
+ "name",
711
+ "description"
712
+ ]},
713
+ "StatefulMetricVar": {"type": "object",
714
+ "additionalProperties": false,
715
+ "properties": {
716
+ "type": {
717
+ "type": "string",
718
+ "description": "The type of the metric variable"
719
+ },
720
+ "name": {
721
+ "type": "string",
722
+ "description": "The name of the stateful metric variable"
723
+ },
724
+ "description": {
725
+ "type": "string",
726
+ "description": "The description of the computation"
727
+ },
728
+ "variables_used": {
729
+ "type": "array",
730
+ "items": {
731
+
732
+ },
733
+ "description": "The variables used for computation of the form (state, variable)"
734
+ },
735
+ "parameters_used": {
736
+ "type": "array",
737
+ "items": {
738
+ "type": "string",
739
+ "description": "The string keys of parameters which are used in the metric calculation"
740
+ }
741
+ },
742
+ "symbol": {
743
+ "type": ["string","null"],
744
+ "description": "The symbol associated with the stateful metric (optional)"
745
+ },
746
+ "domain": {
747
+ "type": ["string","null"],
748
+ "description": "The mathematical domain of the stateful metric (optional)"
749
+ }
750
+ }
751
+ }
752
+ }
753
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: math-spec-mapping
3
- Version: 0.2.6.5
3
+ Version: 0.2.6.7
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
@@ -0,0 +1,60 @@
1
+ math_spec_mapping/__init__.py,sha256=k5KVhqX1_iIkGjTBHAHezWUeh0b3ilWpJaSIVSbKMcg,907
2
+ math_spec_mapping/schema.py,sha256=6mrRqzEnTTSXjb19xJ63MBp0KjKH0s7i6TfT4MkAY9k,233
3
+ math_spec_mapping/schema.schema.json,sha256=E8-TQIiv7AjIMXnAIB84z_O4cMLfGuDmDCFCoIlwQz0,27174
4
+ math_spec_mapping/Classes/ActionTransmissionChannel.py,sha256=zWMo5QsgPh5WGIWXl-xOrZNMXYJXmK6Vejw1dQvi0og,246
5
+ math_spec_mapping/Classes/Block.py,sha256=hXQO221IP-TqZm_TwFKfURpEEjZm7L1TPZDCYlaOdho,17302
6
+ math_spec_mapping/Classes/BoundaryAction.py,sha256=AOENCqCEfpjotnHhzUj_F2SOP0SGpkN1tNPr8Mtl6Tc,476
7
+ math_spec_mapping/Classes/ControlAction.py,sha256=xaU3_WVeWOoOFX3O86x30_9Eiirfe76KrO3M2kfjcmo,471
8
+ math_spec_mapping/Classes/Entity.py,sha256=fA0-b128_OHHxfCg4pzqyQV083EYev1HlVpy86S5igg,1226
9
+ math_spec_mapping/Classes/MathSpec.py,sha256=P4FPfv6tpbrY1ytmOQ61hXBey83YoCMgMKOpo6xikxU,13230
10
+ math_spec_mapping/Classes/Mechanism.py,sha256=7jj6bcPI6H2iv1VZZTlpbG4G2k9s4MYkrH8Sfj9uGM4,324
11
+ math_spec_mapping/Classes/Metric.py,sha256=AhPgYppOP6q49xvR8S9STxQsXUKJlTWx7wI1LfZEtww,581
12
+ math_spec_mapping/Classes/Parameter.py,sha256=ZuJ_w0sChvRElJ4sOnXZ2EV4Ell2xXFulKLjVOpgz2E,1237
13
+ math_spec_mapping/Classes/Policy.py,sha256=HUEooO4Liy7olmHwegb6A-hcreNMNCevl9QKKwOjSik,475
14
+ math_spec_mapping/Classes/Space.py,sha256=96Cdi8ERkfsgJnh5UyhecKiuU4hWwI6w-i1U1jtwX6A,398
15
+ math_spec_mapping/Classes/State.py,sha256=Mdn0D21G198f6q13-2tVBYUbnzhRwoDivWpFtH4XJq0,1423
16
+ math_spec_mapping/Classes/StateUpdateTransmissionChannel.py,sha256=3hBLvD1lE64PkwqksBXAfFWv7foOZzGQLAFQWy42tOA,257
17
+ math_spec_mapping/Classes/StatefulMetric.py,sha256=UCis1BJ7fsajHHxFF05ZiyDean2D4s4a95uYYW1Mjq4,749
18
+ math_spec_mapping/Classes/Type.py,sha256=ZDHSiaDixHOxasOJlHbuBsMjZ29O2O5K_nmHOmlO-Ck,228
19
+ math_spec_mapping/Classes/__init__.py,sha256=_hXyZMJanmIex_W6yCR2H7Jw8iU2JJIf3U7VcvBSOGU,737
20
+ math_spec_mapping/Convenience/__init__.py,sha256=-hNZVoaNSgTmZTiyZoMfWyg14xonC3ppz-diQk1VlUY,60
21
+ math_spec_mapping/Convenience/documentation.py,sha256=Jf7-JJIk_vZkNBIGV4bs5LM3B0RVaCCtuwJ164thGfY,1607
22
+ math_spec_mapping/Convenience/starter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ math_spec_mapping/Load/__init__.py,sha256=_ga5nHi7U5rY5lCF36_XI9Qmybq4P8R4m5I5mmjLBk8,33
24
+ math_spec_mapping/Load/action_transmission_channel.py,sha256=9Wer7g2s5SSOcUYuZ0PqSKUVVnW3EvGQJZNXJTwW__0,2561
25
+ math_spec_mapping/Load/boundary_actions.py,sha256=WvEj2tqN0pUZtE4EiKUuGzMdAcWsMlLslJJeFjIu6gk,2058
26
+ math_spec_mapping/Load/control_actions.py,sha256=VmjezReijEqe9cdPHQubGZTGVPsYbMzWfLu5Dfm9WvY,1563
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
29
+ math_spec_mapping/Load/general.py,sha256=2q6aGKxXhebiHHTZhtACvM4nWIkTben0o5rXuvfv2Vw,4463
30
+ math_spec_mapping/Load/implementations.py,sha256=SGKZ_YXeNpJUTnw5fajQTXji7S2bNQo8sh-7YcIO6pk,395
31
+ math_spec_mapping/Load/load.py,sha256=CLprDhJpbwm9RAzKM2Ghwr8eqBu0a-wvGDOCMmc01YE,2484
32
+ math_spec_mapping/Load/mechanism.py,sha256=aIpMzgQn8f1aywgOHxL5kHQUn1N8K9pmHOVs51bv3Hk,1673
33
+ math_spec_mapping/Load/metrics.py,sha256=gD68mt0Y5jSgofZUwscV8PFatOMV_LPwYyPrwV9SdtE,3273
34
+ math_spec_mapping/Load/parameters.py,sha256=aid_vqYub9643s82NDtMAXLRdV9BPQkri5MadA0L0eQ,1334
35
+ math_spec_mapping/Load/policy.py,sha256=fDBuOe1LWw-6C_xcYtvtx9dpjWoD9GNEumW7bK8QaT0,2077
36
+ math_spec_mapping/Load/spaces.py,sha256=7zgGA57Te7T4hfuCCDElffiidWgn1lKm5E14e1yjt8M,1116
37
+ math_spec_mapping/Load/state_update_transmission_channels.py,sha256=FJWp5n4HdtHAfof5BUQ6BnRakljatL2h8dWCapaVSc0,2238
38
+ math_spec_mapping/Load/stateful_metrics.py,sha256=uGSTc6x6lld5xptgSUMHrO0Vg0QDRIL14C6zTg33S8o,1977
39
+ math_spec_mapping/Load/states.py,sha256=cwo29SBAtj1FoQLEb8c0wkSCn038lIgM9RjNiZefUaE,1223
40
+ math_spec_mapping/Load/type.py,sha256=R6d5t55TMMCKsOk8xXp_Cu5gvkt2DG4Yzvq6NREIefs,4174
41
+ math_spec_mapping/Load/wiring.py,sha256=1dR94U5N1W_WI5rL6lYBltH25ZvApB2pIpq9r5Opkug,3083
42
+ math_spec_mapping/Reports/__init__.py,sha256=W27I6S9Ro1hWeHmnxIokCA06awB__eYey7PvKD4Hc1s,933
43
+ math_spec_mapping/Reports/boundary_actions.py,sha256=45BPp4QjWdD-3E9ZWwqgj_nI2-YdcI2ZZ19_Qv_K7Qk,1410
44
+ math_spec_mapping/Reports/control_actions.py,sha256=NksekZKIPFSIkubttFstKFthc5AU9B9PWRLSl9j1wWs,1216
45
+ math_spec_mapping/Reports/general.py,sha256=WOOn6Wlb8M4fsdN49FlKLwOka6vJPQ9aCUy88TL2ki0,1610
46
+ math_spec_mapping/Reports/html.py,sha256=rBnwvWeFgCfP7O8nsBL6hWE63Y1Qd24QyGD2Z7CnZ-8,8094
47
+ math_spec_mapping/Reports/markdown.py,sha256=pDGHYMdtZmeXHqvU9FB3BycyB4qflWXq0bf2m-wsXMU,21138
48
+ math_spec_mapping/Reports/mechanisms.py,sha256=d2Rxt3JBYvqAOAYUynl0buYVoXEHrO8EGq7GK6hK8NA,1322
49
+ math_spec_mapping/Reports/node_map.py,sha256=FdSMDQG16NX6n9sZcH-T5xwsvgjrV9OqBHc9J_VlNK0,3129
50
+ math_spec_mapping/Reports/parameters.py,sha256=yizNG4lNGrgrlzYYcHMGfXKDFlPw4PMDYshDqZ3YARs,535
51
+ math_spec_mapping/Reports/policies.py,sha256=EuBzBsTM6QSS_GHFcAyhGgWvDDZwRuKe7Eos9nX13ho,1814
52
+ math_spec_mapping/Reports/spaces.py,sha256=-76hR5wQBv4lsG000ypBJ-OprjsNjI-rNRMYdtsYnjQ,579
53
+ math_spec_mapping/Reports/state.py,sha256=RSHDjzSiUj4ZjReWbkBW7k2njs3Ovp-q0rCC7GBfD-A,2203
54
+ math_spec_mapping/Reports/tables.py,sha256=O0CNuqh3LMECq5uLjBOoxMUk5hUvkUK660FNnwWUxDY,1505
55
+ math_spec_mapping/Reports/wiring.py,sha256=u9SvKWy6T-WJUEgFI6-zgZanoOaTTs_2YwmEceDLsV8,1618
56
+ math_spec_mapping-0.2.6.7.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
57
+ math_spec_mapping-0.2.6.7.dist-info/METADATA,sha256=RCtYITudw1OBgnI8de20W_3kdhG9LUNxZWmCc6A25nY,6014
58
+ math_spec_mapping-0.2.6.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
59
+ math_spec_mapping-0.2.6.7.dist-info/top_level.txt,sha256=AImhn9wgazkdV0a9vfiphtQR8uGe2nq-ZIOp-6yUk9o,18
60
+ math_spec_mapping-0.2.6.7.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ math_spec_mapping
@@ -1,57 +0,0 @@
1
- Classes/ActionTransmissionChannel.py,sha256=zWMo5QsgPh5WGIWXl-xOrZNMXYJXmK6Vejw1dQvi0og,246
2
- Classes/Block.py,sha256=hXQO221IP-TqZm_TwFKfURpEEjZm7L1TPZDCYlaOdho,17302
3
- Classes/BoundaryAction.py,sha256=AOENCqCEfpjotnHhzUj_F2SOP0SGpkN1tNPr8Mtl6Tc,476
4
- Classes/ControlAction.py,sha256=xaU3_WVeWOoOFX3O86x30_9Eiirfe76KrO3M2kfjcmo,471
5
- Classes/Entity.py,sha256=fA0-b128_OHHxfCg4pzqyQV083EYev1HlVpy86S5igg,1226
6
- Classes/MathSpec.py,sha256=P4FPfv6tpbrY1ytmOQ61hXBey83YoCMgMKOpo6xikxU,13230
7
- Classes/Mechanism.py,sha256=7jj6bcPI6H2iv1VZZTlpbG4G2k9s4MYkrH8Sfj9uGM4,324
8
- Classes/Metric.py,sha256=AhPgYppOP6q49xvR8S9STxQsXUKJlTWx7wI1LfZEtww,581
9
- Classes/Parameter.py,sha256=ZuJ_w0sChvRElJ4sOnXZ2EV4Ell2xXFulKLjVOpgz2E,1237
10
- Classes/Policy.py,sha256=HUEooO4Liy7olmHwegb6A-hcreNMNCevl9QKKwOjSik,475
11
- Classes/Space.py,sha256=96Cdi8ERkfsgJnh5UyhecKiuU4hWwI6w-i1U1jtwX6A,398
12
- Classes/State.py,sha256=Mdn0D21G198f6q13-2tVBYUbnzhRwoDivWpFtH4XJq0,1423
13
- Classes/StateUpdateTransmissionChannel.py,sha256=3hBLvD1lE64PkwqksBXAfFWv7foOZzGQLAFQWy42tOA,257
14
- Classes/StatefulMetric.py,sha256=UCis1BJ7fsajHHxFF05ZiyDean2D4s4a95uYYW1Mjq4,749
15
- Classes/Type.py,sha256=ZDHSiaDixHOxasOJlHbuBsMjZ29O2O5K_nmHOmlO-Ck,228
16
- Classes/__init__.py,sha256=_hXyZMJanmIex_W6yCR2H7Jw8iU2JJIf3U7VcvBSOGU,737
17
- Convenience/__init__.py,sha256=-hNZVoaNSgTmZTiyZoMfWyg14xonC3ppz-diQk1VlUY,60
18
- Convenience/documentation.py,sha256=Jf7-JJIk_vZkNBIGV4bs5LM3B0RVaCCtuwJ164thGfY,1607
19
- Convenience/starter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- Load/__init__.py,sha256=_ga5nHi7U5rY5lCF36_XI9Qmybq4P8R4m5I5mmjLBk8,33
21
- Load/action_transmission_channel.py,sha256=9Wer7g2s5SSOcUYuZ0PqSKUVVnW3EvGQJZNXJTwW__0,2561
22
- Load/boundary_actions.py,sha256=WvEj2tqN0pUZtE4EiKUuGzMdAcWsMlLslJJeFjIu6gk,2058
23
- Load/control_actions.py,sha256=VmjezReijEqe9cdPHQubGZTGVPsYbMzWfLu5Dfm9WvY,1563
24
- Load/displays.py,sha256=ooHWT_OryzEkp7F3LcGywwdLMRJLxuyPK82zJ3gcyN0,414
25
- Load/entities.py,sha256=rMD_Pja-zqH1Z14rsO_Ia7dg3BIi5_HoQmqGAoEYofA,1208
26
- Load/general.py,sha256=2q6aGKxXhebiHHTZhtACvM4nWIkTben0o5rXuvfv2Vw,4463
27
- Load/implementations.py,sha256=SGKZ_YXeNpJUTnw5fajQTXji7S2bNQo8sh-7YcIO6pk,395
28
- Load/load.py,sha256=CLprDhJpbwm9RAzKM2Ghwr8eqBu0a-wvGDOCMmc01YE,2484
29
- Load/mechanism.py,sha256=aIpMzgQn8f1aywgOHxL5kHQUn1N8K9pmHOVs51bv3Hk,1673
30
- Load/metrics.py,sha256=gD68mt0Y5jSgofZUwscV8PFatOMV_LPwYyPrwV9SdtE,3273
31
- Load/parameters.py,sha256=aid_vqYub9643s82NDtMAXLRdV9BPQkri5MadA0L0eQ,1334
32
- Load/policy.py,sha256=fDBuOe1LWw-6C_xcYtvtx9dpjWoD9GNEumW7bK8QaT0,2077
33
- Load/spaces.py,sha256=7zgGA57Te7T4hfuCCDElffiidWgn1lKm5E14e1yjt8M,1116
34
- Load/state_update_transmission_channels.py,sha256=FJWp5n4HdtHAfof5BUQ6BnRakljatL2h8dWCapaVSc0,2238
35
- Load/stateful_metrics.py,sha256=uGSTc6x6lld5xptgSUMHrO0Vg0QDRIL14C6zTg33S8o,1977
36
- Load/states.py,sha256=cwo29SBAtj1FoQLEb8c0wkSCn038lIgM9RjNiZefUaE,1223
37
- Load/type.py,sha256=R6d5t55TMMCKsOk8xXp_Cu5gvkt2DG4Yzvq6NREIefs,4174
38
- Load/wiring.py,sha256=1dR94U5N1W_WI5rL6lYBltH25ZvApB2pIpq9r5Opkug,3083
39
- Reports/__init__.py,sha256=W27I6S9Ro1hWeHmnxIokCA06awB__eYey7PvKD4Hc1s,933
40
- Reports/boundary_actions.py,sha256=45BPp4QjWdD-3E9ZWwqgj_nI2-YdcI2ZZ19_Qv_K7Qk,1410
41
- Reports/control_actions.py,sha256=NksekZKIPFSIkubttFstKFthc5AU9B9PWRLSl9j1wWs,1216
42
- Reports/general.py,sha256=WOOn6Wlb8M4fsdN49FlKLwOka6vJPQ9aCUy88TL2ki0,1610
43
- Reports/html.py,sha256=rBnwvWeFgCfP7O8nsBL6hWE63Y1Qd24QyGD2Z7CnZ-8,8094
44
- Reports/markdown.py,sha256=pDGHYMdtZmeXHqvU9FB3BycyB4qflWXq0bf2m-wsXMU,21138
45
- Reports/mechanisms.py,sha256=d2Rxt3JBYvqAOAYUynl0buYVoXEHrO8EGq7GK6hK8NA,1322
46
- Reports/node_map.py,sha256=FdSMDQG16NX6n9sZcH-T5xwsvgjrV9OqBHc9J_VlNK0,3129
47
- Reports/parameters.py,sha256=yizNG4lNGrgrlzYYcHMGfXKDFlPw4PMDYshDqZ3YARs,535
48
- Reports/policies.py,sha256=EuBzBsTM6QSS_GHFcAyhGgWvDDZwRuKe7Eos9nX13ho,1814
49
- Reports/spaces.py,sha256=-76hR5wQBv4lsG000ypBJ-OprjsNjI-rNRMYdtsYnjQ,579
50
- Reports/state.py,sha256=RSHDjzSiUj4ZjReWbkBW7k2njs3Ovp-q0rCC7GBfD-A,2203
51
- Reports/tables.py,sha256=O0CNuqh3LMECq5uLjBOoxMUk5hUvkUK660FNnwWUxDY,1505
52
- Reports/wiring.py,sha256=u9SvKWy6T-WJUEgFI6-zgZanoOaTTs_2YwmEceDLsV8,1618
53
- math_spec_mapping-0.2.6.5.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
54
- math_spec_mapping-0.2.6.5.dist-info/METADATA,sha256=SVhA4_KfGwcrPGs-MDOj9TT9-S91E-km9dXftUhFaWg,6014
55
- math_spec_mapping-0.2.6.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
56
- math_spec_mapping-0.2.6.5.dist-info/top_level.txt,sha256=Su_elDptuaN90UL6S2mN2Tb7kpAL6HuAZiLrbNPwBdc,33
57
- math_spec_mapping-0.2.6.5.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- Classes
2
- Convenience
3
- Load
4
- Reports
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes