1
- from typing import List , Optional
1
+ from typing import List , Optional , Union
2
+ from warnings import warn
2
3
3
4
from citrine ._rest .resource import Resource
4
5
from citrine ._serialization import properties
@@ -133,7 +134,7 @@ class ChemicalFormulaFeaturizer(Resource["ChemicalFormulaFeaturizer"], Predictor
133
134
input_descriptor = properties .Object (ChemicalFormulaDescriptor , 'input' )
134
135
features = properties .List (properties .String , 'features' )
135
136
excludes = properties .List (properties .String , 'excludes' , default = [])
136
- powers = properties .List (properties .Integer , 'powers' )
137
+ _powers = properties .List (properties .Float , 'powers' )
137
138
138
139
typ = properties .String ('type' , default = 'ChemicalFormulaFeaturizer' , deserializable = False )
139
140
@@ -152,5 +153,27 @@ def __init__(self,
152
153
self .excludes = excludes if excludes is not None else []
153
154
self .powers = powers if powers is not None else [1 ]
154
155
156
+ @property
157
+ def powers (self ) -> List [int ]:
158
+ """The list of powers when computing generalized weighted means of element properties."""
159
+ warn ("The type of 'powers' will change to a list of floats in v4.0.0. To retrieve them as "
160
+ "floats now, use 'powers_as_float'." )
161
+ truncated = [int (p ) for p in self ._powers ]
162
+ if truncated != self ._powers :
163
+ diffs = [f"{ x } => { y } " for x , y in zip (self ._powers , truncated ) if x != y ]
164
+ warn (f"The following powers were cast to ints: { '; ' .join (diffs )} ." )
165
+ return truncated
166
+
167
+ @powers .setter
168
+ def powers (self , value : List [Union [int , float ]]):
169
+ self ._powers = value
170
+
171
+ @property
172
+ def powers_as_float (self ) -> List [float ]:
173
+ """Powers when computing generalized weighted means of element properties."""
174
+ warn ("'powers_as_float' will be deprecated in v4.0.0 for 'powers', and removed in v5.0.0" ,
175
+ PendingDeprecationWarning )
176
+ return self ._powers
177
+
155
178
def __str__ (self ):
156
179
return '<ChemicalFormulaFeaturizer {!r}>' .format (self .name )
0 commit comments