@@ -253,86 +253,92 @@ def from_dict(d):
253253 product_code = d .get ("product_code" ),
254254 )
255255
256- @modelclass
257- class FuturesSnapshotDetails :
258- open_interest : Optional [int ] = None
259- settlement_date : Optional [int ] = None
260-
261- @modelclass
262- class FuturesSnapshotMinute :
263- close : Optional [float ] = None
264- high : Optional [float ] = None
265- last_updated : Optional [int ] = None
266- low : Optional [float ] = None
267- open : Optional [float ] = None
268- volume : Optional [float ] = None
269-
270- @modelclass
271- class FuturesSnapshotQuote :
272- ask : Optional [float ] = None
273- ask_size : Optional [int ] = None
274- ask_timestamp : Optional [int ] = None
275- bid : Optional [float ] = None
276- bid_size : Optional [int ] = None
277- bid_timestamp : Optional [int ] = None
278- last_updated : Optional [int ] = None
279-
280- @modelclass
281- class FuturesSnapshotTrade :
282- last_updated : Optional [int ] = None
283- price : Optional [float ] = None
284- size : Optional [int ] = None
285-
286- @modelclass
287- class FuturesSnapshotSession :
288- change : Optional [float ] = None
289- change_percent : Optional [float ] = None
290- close : Optional [float ] = None
291- high : Optional [float ] = None
292- low : Optional [float ] = None
293- open : Optional [float ] = None
294- previous_settlement : Optional [float ] = None
295- settlement_price : Optional [float ] = None
296- volume : Optional [float ] = None
297-
298- @modelclass
299- class FuturesSnapshot :
300- ticker : Optional [str ] = None
301- product_code : Optional [str ] = None
302- details : Optional [FuturesSnapshotDetails ] = None
303- last_minute : Optional [FuturesSnapshotMinute ] = None
304- last_quote : Optional [FuturesSnapshotQuote ] = None
305- last_trade : Optional [FuturesSnapshotTrade ] = None
306- session : Optional [FuturesSnapshotSession ] = None
307-
308- @staticmethod
309- def from_dict (d ):
310- return FuturesSnapshot (
311- ticker = d .get ("ticker" ),
312- product_code = d .get ("product_code" ),
313- details = (
314- FuturesSnapshotDetails .from_dict (d .get ("details" , {}))
315- if d .get ("details" )
316- else None
317- ),
318- last_minute = (
319- FuturesSnapshotMinute .from_dict (d .get ("last_minute" , {}))
320- if d .get ("last_minute" )
321- else None
322- ),
323- last_quote = (
324- FuturesSnapshotQuote .from_dict (d .get ("last_quote" , {}))
325- if d .get ("last_quote" )
326- else None
327- ),
328- last_trade = (
329- FuturesSnapshotTrade .from_dict (d .get ("last_trade" , {}))
330- if d .get ("last_trade" )
331- else None
332- ),
333- session = (
334- FuturesSnapshotSession .from_dict (d .get ("session" , {}))
335- if d .get ("session" )
336- else None
337- ),
338- )
256+
257+ @modelclass
258+ class FuturesSnapshotDetails :
259+ open_interest : Optional [int ] = None
260+ settlement_date : Optional [int ] = None
261+
262+
263+ @modelclass
264+ class FuturesSnapshotMinute :
265+ close : Optional [float ] = None
266+ high : Optional [float ] = None
267+ last_updated : Optional [int ] = None
268+ low : Optional [float ] = None
269+ open : Optional [float ] = None
270+ volume : Optional [float ] = None
271+
272+
273+ @modelclass
274+ class FuturesSnapshotQuote :
275+ ask : Optional [float ] = None
276+ ask_size : Optional [int ] = None
277+ ask_timestamp : Optional [int ] = None
278+ bid : Optional [float ] = None
279+ bid_size : Optional [int ] = None
280+ bid_timestamp : Optional [int ] = None
281+ last_updated : Optional [int ] = None
282+
283+
284+ @modelclass
285+ class FuturesSnapshotTrade :
286+ last_updated : Optional [int ] = None
287+ price : Optional [float ] = None
288+ size : Optional [int ] = None
289+
290+
291+ @modelclass
292+ class FuturesSnapshotSession :
293+ change : Optional [float ] = None
294+ change_percent : Optional [float ] = None
295+ close : Optional [float ] = None
296+ high : Optional [float ] = None
297+ low : Optional [float ] = None
298+ open : Optional [float ] = None
299+ previous_settlement : Optional [float ] = None
300+ settlement_price : Optional [float ] = None
301+ volume : Optional [float ] = None
302+
303+
304+ @modelclass
305+ class FuturesSnapshot :
306+ ticker : Optional [str ] = None
307+ product_code : Optional [str ] = None
308+ details : Optional [FuturesSnapshotDetails ] = None
309+ last_minute : Optional [FuturesSnapshotMinute ] = None
310+ last_quote : Optional [FuturesSnapshotQuote ] = None
311+ last_trade : Optional [FuturesSnapshotTrade ] = None
312+ session : Optional [FuturesSnapshotSession ] = None
313+
314+ @staticmethod
315+ def from_dict (d ):
316+ return FuturesSnapshot (
317+ ticker = d .get ("ticker" ),
318+ product_code = d .get ("product_code" ),
319+ details = (
320+ FuturesSnapshotDetails .from_dict (d .get ("details" , {}))
321+ if d .get ("details" )
322+ else None
323+ ),
324+ last_minute = (
325+ FuturesSnapshotMinute .from_dict (d .get ("last_minute" , {}))
326+ if d .get ("last_minute" )
327+ else None
328+ ),
329+ last_quote = (
330+ FuturesSnapshotQuote .from_dict (d .get ("last_quote" , {}))
331+ if d .get ("last_quote" )
332+ else None
333+ ),
334+ last_trade = (
335+ FuturesSnapshotTrade .from_dict (d .get ("last_trade" , {}))
336+ if d .get ("last_trade" )
337+ else None
338+ ),
339+ session = (
340+ FuturesSnapshotSession .from_dict (d .get ("session" , {}))
341+ if d .get ("session" )
342+ else None
343+ ),
344+ )
0 commit comments