@@ -35,7 +35,7 @@ def __init__(
3535 def __repr__ (self ):
3636 return f"DiscreteTune({ repr (self .ranges )} , { repr (self .default )} )"
3737
38- def __call__ (self , ind_value , * , ind_units = None ):
38+ def __call__ (self , ind_value , * , ind_units = None ) -> np . ndarray :
3939 """Evaluate the DiscreteTune at specific independent value(s).
4040
4141 Paramters
@@ -54,20 +54,15 @@ def __call__(self, ind_value, *, ind_units=None):
5454 """
5555 if ind_units is not None and self ._ind_units is not None :
5656 ind_value = wt .units .convert (ind_value , ind_units , self ._ind_units )
57- if isinstance (ind_value , np .ndarray ):
58- out = np .full (
59- ind_value .shape ,
60- self .default ,
61- dtype = f"U{ max ([len (s ) for s in self .ranges .keys ()])} " ,
62- )
63- for key , (imin , imax ) in self .ranges .items ():
64- out [(ind_value >= imin ) & (ind_value <= imax )] = key
65- return out
66- else :
67- for key , (imin , imax ) in self .ranges .items ():
68- if imin <= ind_value <= imax :
69- return key
70- return self .default
57+ ind_value = np .asarray (ind_value )
58+ out = np .full (
59+ ind_value .shape ,
60+ self .default ,
61+ dtype = f"U{ max ([len (s ) for s in self .ranges .keys ()])} " ,
62+ )
63+ for key , (imin , imax ) in self .ranges .items ():
64+ out [(ind_value >= imin ) & (ind_value <= imax )] = key
65+ return out
7166
7267 def __eq__ (self , other ):
7368 return self .ranges == other .ranges and self .default == other .default
0 commit comments