add data classes for ticker message
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Generic, TypeVar, Optional
|
||||
import json
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
@dataclass
|
||||
class TickerData:
|
||||
symbol: str
|
||||
tickDirection: str
|
||||
price24hPcnt: str
|
||||
lastPrice: str
|
||||
prevPrice24h: str
|
||||
highPrice24h: str
|
||||
lowPrice24h: str
|
||||
prevPrice1h: str
|
||||
markPrice: str
|
||||
indexPrice: str
|
||||
openInterest: str
|
||||
openInterestValue: str
|
||||
turnover24h: str
|
||||
volume24h: str
|
||||
nextFundingTime: str
|
||||
fundingRate: str
|
||||
bid1Price: str
|
||||
bid1Size: str
|
||||
ask1Price: str
|
||||
ask1Size: str
|
||||
|
||||
@dataclass
|
||||
class Message(Generic[T]):
|
||||
topic: str
|
||||
type: str
|
||||
data: Optional[T] = None
|
||||
cs: Optional[int] = None
|
||||
ts: Optional[int] = None
|
||||
|
||||
@staticmethod
|
||||
def from_json(json_dict: dict) -> 'Message[T]':
|
||||
if json_dict['topic'].startswith("tickers"):
|
||||
data = TickerData(**json_dict['data'])
|
||||
else:
|
||||
data = None
|
||||
|
||||
json_dict.pop('data', None)
|
||||
return Message(**json_dict, data=data)
|
||||
|
||||
Reference in New Issue
Block a user