math-spec-mapping 0.3.21__py3-none-any.whl → 0.4.0__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/MathSpec.py +29 -0
- math_spec_mapping/Convenience/github.py +9 -0
- {math_spec_mapping-0.3.21.dist-info → math_spec_mapping-0.4.0.dist-info}/METADATA +1 -1
- {math_spec_mapping-0.3.21.dist-info → math_spec_mapping-0.4.0.dist-info}/RECORD +7 -7
- {math_spec_mapping-0.3.21.dist-info → math_spec_mapping-0.4.0.dist-info}/WHEEL +1 -1
- {math_spec_mapping-0.3.21.dist-info → math_spec_mapping-0.4.0.dist-info}/LICENSE +0 -0
- {math_spec_mapping-0.3.21.dist-info → math_spec_mapping-0.4.0.dist-info}/top_level.txt +0 -0
@@ -727,11 +727,13 @@ class MathSpec:
|
|
727
727
|
state_preperation_functions=None,
|
728
728
|
parameter_preperation_functions=None,
|
729
729
|
metrics_functions=None,
|
730
|
+
append_param_change_columns=False,
|
730
731
|
):
|
731
732
|
state_l = []
|
732
733
|
params_l = []
|
733
734
|
df_l = []
|
734
735
|
metrics_l = []
|
736
|
+
param_mods = set()
|
735
737
|
for experiment in experiments:
|
736
738
|
for i in range(experiment["Monte Carlo Runs"]):
|
737
739
|
state, params, msi, df, metrics = self.run_experiment(
|
@@ -743,6 +745,11 @@ class MathSpec:
|
|
743
745
|
parameter_preperation_functions=parameter_preperation_functions,
|
744
746
|
metrics_functions=metrics_functions,
|
745
747
|
)
|
748
|
+
if append_param_change_columns:
|
749
|
+
if experiment["Param Modifications"]:
|
750
|
+
for key in experiment["Param Modifications"]:
|
751
|
+
df[key] = experiment["Param Modifications"][key]
|
752
|
+
param_mods.add(key)
|
746
753
|
df["Monte Carlo Run"] = i + 1
|
747
754
|
df["Experiment"] = experiment["Name"]
|
748
755
|
metrics.loc["Monte Carlo Run"] = i + 1
|
@@ -753,6 +760,9 @@ class MathSpec:
|
|
753
760
|
df_l.append(df)
|
754
761
|
metrics_l.append(metrics)
|
755
762
|
df = pd.concat(df_l)
|
763
|
+
if append_param_change_columns:
|
764
|
+
for key in param_mods:
|
765
|
+
df[key] = df[key].fillna(params_base[key])
|
756
766
|
metrics = pd.concat(metrics_l, axis=1).T
|
757
767
|
return df, metrics, state_l, params_l
|
758
768
|
|
@@ -1022,6 +1032,12 @@ class MathSpecImplementation:
|
|
1022
1032
|
), "No functional parameterization for {}. To fix this error, add {} to the parameters passed to ms.build_implementation. Option can be: {}".format(
|
1023
1033
|
ca.name, "FP " + ca.name, [x.name for x in opts]
|
1024
1034
|
)
|
1035
|
+
assert (
|
1036
|
+
self.params["FP {}".format(ca.name)]
|
1037
|
+
in self.ms.functional_parameters["FP {}".format(ca.name)]
|
1038
|
+
), "{} is not a valid functional parameterization for {}".format(
|
1039
|
+
self.params["FP {}".format(ca.name)], ca.name
|
1040
|
+
)
|
1025
1041
|
opt = self.ms.functional_parameters["FP {}".format(ca.name)][
|
1026
1042
|
self.params["FP {}".format(ca.name)]
|
1027
1043
|
]
|
@@ -1061,6 +1077,13 @@ class MathSpecImplementation:
|
|
1061
1077
|
ba.name, "FP " + ba.name, [x.name for x in opts]
|
1062
1078
|
)
|
1063
1079
|
|
1080
|
+
assert (
|
1081
|
+
self.params["FP {}".format(ba.name)]
|
1082
|
+
in self.ms.functional_parameters["FP {}".format(ba.name)]
|
1083
|
+
), "{} is not a valid functional parameterization for {}".format(
|
1084
|
+
self.params["FP {}".format(ba.name)], ba.name
|
1085
|
+
)
|
1086
|
+
|
1064
1087
|
opt = self.ms.functional_parameters["FP {}".format(ba.name)][
|
1065
1088
|
self.params["FP {}".format(ba.name)]
|
1066
1089
|
]
|
@@ -1165,6 +1188,12 @@ class MathSpecImplementation:
|
|
1165
1188
|
), "No functional parameterization for {}. To fix this error, add {} to the parameters passed to ms.build_implementation. Option can be: {}".format(
|
1166
1189
|
p.name, "FP " + p.name, [x.name for x in opts]
|
1167
1190
|
)
|
1191
|
+
assert (
|
1192
|
+
self.params["FP {}".format(p.name)]
|
1193
|
+
in self.ms.functional_parameters["FP {}".format(p.name)]
|
1194
|
+
), "{} is not a valid functional parameterization for {}".format(
|
1195
|
+
self.params["FP {}".format(p.name)], p.name
|
1196
|
+
)
|
1168
1197
|
opt = self.ms.functional_parameters["FP {}".format(p.name)][
|
1169
1198
|
self.params["FP {}".format(p.name)]
|
1170
1199
|
]
|
@@ -92,6 +92,15 @@ def create_milestone_label_matrix(df, exclude_milestones=None):
|
|
92
92
|
labels = list(df.columns[4:])
|
93
93
|
labels = sorted([x for x in labels if x not in priority_labels])
|
94
94
|
milestones = sorted(list(df[~pd.isnull(df["Milestone"])]["Milestone"].unique()))
|
95
|
+
try:
|
96
|
+
milestones = sorted(
|
97
|
+
milestones,
|
98
|
+
key=lambda x: int(x.split(".")[0][1:]) * 10000
|
99
|
+
+ int(x.split(".")[1]) * 100
|
100
|
+
+ int(x.split(".")[2]),
|
101
|
+
)
|
102
|
+
except:
|
103
|
+
pass
|
95
104
|
|
96
105
|
table = []
|
97
106
|
for label in labels:
|
@@ -6,7 +6,7 @@ math_spec_mapping/Classes/Block.py,sha256=2VOBTPRafmtaLY847tEw3OJTrWNp2d0aSStC_u
|
|
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=h26RD-AIghj6B_7Sb5o9xDhrnPoSKd1FuZo6mHSa-7o,57522
|
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
|
@@ -19,7 +19,7 @@ math_spec_mapping/Classes/Type.py,sha256=cA5-5nOfjX6aHzTHM8M6mP5lsS7foumckRu7WDX
|
|
19
19
|
math_spec_mapping/Classes/__init__.py,sha256=0zxgOqns_9JybD74HKMVh6aw8ij8WVbfQ4Q_1uWzof0,761
|
20
20
|
math_spec_mapping/Convenience/__init__.py,sha256=BEZr1rXohKAknOa3wjNVx3EvSVxDcfftJsvtSw5mvmQ,264
|
21
21
|
math_spec_mapping/Convenience/documentation.py,sha256=1ziWVJznbCUxeAAt03nAdEYtMlXNo5TeedHfgs0vSBU,1625
|
22
|
-
math_spec_mapping/Convenience/github.py,sha256=
|
22
|
+
math_spec_mapping/Convenience/github.py,sha256=JMFJWyA3nRIMNYGvn9831BolnBthoa48HhgeZuENZm8,3772
|
23
23
|
math_spec_mapping/Convenience/starter.py,sha256=dD1R9wcVFZV-BCTflxNkR6Ay6NF1TlVBdIaWmbJwMGE,17379
|
24
24
|
math_spec_mapping/Load/__init__.py,sha256=QfHMLatZAKqj4up-LkDL_r42tO7Mo_-qdqPQYLYY5l0,49
|
25
25
|
math_spec_mapping/Load/action_transmission_channel.py,sha256=oTYCi7as4LWKZLxfRckuWpfLsAPZXjp-VBYmyLBN3yk,2781
|
@@ -55,8 +55,8 @@ math_spec_mapping/Reports/spaces.py,sha256=-76hR5wQBv4lsG000ypBJ-OprjsNjI-rNRMYd
|
|
55
55
|
math_spec_mapping/Reports/state.py,sha256=QYeCvX5cHeZBrbvMeDsTqJcUDTuDFJSLvPbasjLspk8,3643
|
56
56
|
math_spec_mapping/Reports/tables.py,sha256=O0CNuqh3LMECq5uLjBOoxMUk5hUvkUK660FNnwWUxDY,1505
|
57
57
|
math_spec_mapping/Reports/wiring.py,sha256=u9SvKWy6T-WJUEgFI6-zgZanoOaTTs_2YwmEceDLsV8,1618
|
58
|
-
math_spec_mapping-0.
|
59
|
-
math_spec_mapping-0.
|
60
|
-
math_spec_mapping-0.
|
61
|
-
math_spec_mapping-0.
|
62
|
-
math_spec_mapping-0.
|
58
|
+
math_spec_mapping-0.4.0.dist-info/LICENSE,sha256=ObyEzSw8kgCaFbEfpu1zP4TrcAKLA0xhqHMZZfyh7N0,1069
|
59
|
+
math_spec_mapping-0.4.0.dist-info/METADATA,sha256=nXVR7gQH2S2pfAhzZqFCa8dqRa1eB-dwXfzJt1peRFE,6849
|
60
|
+
math_spec_mapping-0.4.0.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
|
61
|
+
math_spec_mapping-0.4.0.dist-info/top_level.txt,sha256=AImhn9wgazkdV0a9vfiphtQR8uGe2nq-ZIOp-6yUk9o,18
|
62
|
+
math_spec_mapping-0.4.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|