@@ -120,7 +120,6 @@ def denest(self):
120120 for k , v in d .items ():
121121 d .update ({k : v .get ('value' )})
122122
123- print ('++++' , self .data )
124123 return self
125124
126125 @operation
@@ -206,22 +205,27 @@ def transform(self, transformation, **kwargs):
206205 self .update ({'data' : records })
207206
208207 if transformation == 'intround' :
209- """Rounds numbers and transforms them to ints"""
208+ raise ValueError ( 'This transformation has been deprecated, please use the "round_ints()" method.' )
210209
211- data = self .get ('data' )
212- fields = self .get ('fields' )
213-
214- for field in fields :
215- if field .get ('type' ) == 'numeric' :
210+ return self
216211
217- if type (self .get ('data' ) == list ):
218- for row in data :
219- numeric_field = row .get (str (field .get ('id' )))
220- if numeric_field .get ('value' ) is None :
221- row .update ({str (field .get ('id' )): int (round (numeric_field ))})
222- else :
223- numeric_field = numeric_field .get ('value' )
224- row .update ({str (field .get ('id' )): {'value' : int (round (numeric_field ))}})
212+ def round_ints (self ):
213+ """
214+ Round int fields (remove floating .0 from int fields)
215+ :return:
216+ """
217+ for f in self .get ('fields' ):
218+ fid = str (f .get ('id' ))
219+ if f .get ('type' ) == 'numeric' :
220+
221+ if 'denest' in self .operations :
222+ for d in self .get ('data' ):
223+ if d .get (fid ).is_integer ():
224+ d .update ({fid : int (round (d .get (fid )))})
225+ else :
226+ for d in self .get ('data' ):
227+ d .update ({fid : {
228+ 'value' : int (round (d .get (fid ).get ('value' )))}})
225229
226230 return self
227231
@@ -241,34 +245,13 @@ def c_datetime():
241245
242246 if 'denest' in self .operations :
243247 for d in self .get ('data' ):
244- print ('>>>>>>>>' , self .operations , d )
245248 d .update ({fid : datetime .datetime .strptime (d .get (fid ), '%Y-%m-%dT%H:%M:%S.%fZ' )})
246249 else :
247250 for d in self .get ('data' ):
248- print ('>>>>>>>>' , fid , d .get (fid ), d )
249- d .update ({fid : {'value' : datetime .datetime .strptime (d .get (fid ).get ('value' ), '%Y-%m-%dT%H:%M:%S.%fZ' )}})
250-
251-
251+ d .update ({fid : {
252+ 'value' : datetime .datetime .strptime (d .get (fid ).get ('value' ), '%Y-%m-%dT%H:%M:%S.%fZ' )}})
252253
253254 if field_type == 'datetime' :
254255 c_datetime ()
255256
256- if field_type == 'intround' :
257- """Rounds numbers and transforms them to ints"""
258-
259- data = self .get ('data' )
260- fields = self .get ('fields' )
261-
262- for field in fields :
263- if field .get ('type' ) == 'numeric' :
264-
265- if type (self .get ('data' ) == list ):
266- for row in data :
267- numeric_field = row .get (str (field .get ('id' )))
268- if numeric_field .get ('value' ) is None :
269- row .update ({str (field .get ('id' )): int (round (numeric_field ))})
270- else :
271- numeric_field = numeric_field .get ('value' )
272- row .update ({str (field .get ('id' )): {'value' : int (round (numeric_field ))}})
273-
274257 return self
0 commit comments