@@ -25,9 +25,12 @@ def __init__(self, name, desc="", comment="", params={}):
25
25
self .name = name
26
26
self .desc = desc
27
27
self .comment = comment
28
- self .params = params
28
+ self .params = {}
29
29
for name , par in params .items ():
30
- self .params [name ] = Quantity (** par )
30
+ if isinstance (par , Quantity ):
31
+ self .params [name ] = par
32
+ else :
33
+ self .params [name ] = Quantity (** par )
31
34
32
35
33
36
class Quantity :
@@ -56,8 +59,11 @@ class Quantity:
56
59
def __init__ (self , value , min_val , max_val , unit = "undefined" , symbol = r"\alpha" ):
57
60
if unit [- 3 :] == "2pi" :
58
61
pref = 2 * np .pi
62
+ elif unit [- 2 :] == "pi" :
63
+ pref = np .pi
59
64
else :
60
65
pref = 1
66
+ self .pref = pref
61
67
self .offset = np .array (min_val * pref )
62
68
self .scale = np .abs (np .array (max_val * pref ) - np .array (min_val * pref ))
63
69
try :
@@ -76,6 +82,16 @@ def __init__(self, value, min_val, max_val, unit="undefined", symbol=r"\alpha"):
76
82
self .shape = ()
77
83
self .length = 1
78
84
85
+ def asdict (self ):
86
+ pref = self .pref
87
+ return {
88
+ "value" : self .numpy (),
89
+ "min_val" : self .offset / pref ,
90
+ "max_val" : (self .scale + self .offset ) / pref ,
91
+ "unit" : self .unit ,
92
+ "symbol" : self .symbol
93
+ }
94
+
79
95
def __add__ (self , other ):
80
96
return self .numpy () + other
81
97
@@ -147,6 +163,7 @@ def set_value(self, val):
147
163
if np .any (tmp < - 1 ) or np .any (tmp > 1 ):
148
164
# TODO choose which error to raise
149
165
# raise Exception(f"Value {val} out of bounds for quantity.")
166
+ print (f"Value { val } out of bounds for quantity." )
150
167
raise ValueError
151
168
# TODO if we want we can extend bounds when force flag is given
152
169
else :
0 commit comments