@@ -41,8 +41,7 @@ def rename_keys(tick, map):
4141 }
4242
4343 super ().__init__ ([
44- Agg (rename_keys (tick , raw ['map' ]))
45- for tick in raw ['ticks' ]
44+ Agg (rename_keys (tick , raw ['map' ])) for tick in raw ['ticks' ]
4645 ])
4746 self ._raw = raw
4847
@@ -65,7 +64,8 @@ def df(self):
6564 df .set_index ('timestamp' , inplace = True )
6665 # astype is necessary to deal with empty result
6766 df .index = pd .to_datetime (
68- df .index .astype ('int64' ) * 1000000 ,
67+ df .index .astype ('int64' ),
68+ unit = 'ms' ,
6969 utc = True ,
7070 ).tz_convert (NY )
7171 else :
@@ -80,22 +80,46 @@ def df(self):
8080
8181
8282class Aggsv2 (list ):
83+
8384 def __init__ (self , raw ):
84- results = raw ['results' ] if raw .get ('results' ) else []
85- super ().__init__ (
86- [Agg (tick ) for tick in results ]
87- )
85+
8886 self ._raw = raw
87+ super ().__init__ ([
88+ Agg (tick ) for tick in self .rename_keys ()
89+ ])
90+
91+ def _raw_results (self ):
92+ return self ._raw .get ('results' , [])
93+
94+ def rename_keys (self ):
95+ colmap = {
96+ "o" : "open" ,
97+ "h" : "high" ,
98+ "l" : "low" ,
99+ "c" : "close" ,
100+ "v" : "volume" ,
101+ "t" : "timestamp" ,
102+ }
103+
104+ return [
105+ {colmap .get (k , k ): v for k , v in tick .items ()}
106+ for tick in self ._raw_results ()
107+ ]
89108
90109 @property
91110 def df (self ):
92111 if not hasattr (self , '_df' ):
93- results = self ._raw ['results' ]
94- columns = ('o' , 'h' , 'l' , 'c' , 'v' , 't' )
112+ columns = ('timestamp' , 'open' , 'high' , 'low' , 'close' , 'volume' )
95113 df = pd .DataFrame (
96- results , columns = columns
114+ self .rename_keys (),
115+ columns = columns
97116 )
98- df .set_index ('t' , inplace = True )
117+ df .set_index ('timestamp' , inplace = True )
118+ df .index = pd .to_datetime (
119+ df .index .astype ('int64' ),
120+ unit = 'ms' , utc = True
121+ ).tz_convert (NY )
122+
99123 self ._df = df
100124
101125 return self ._df
0 commit comments