`binance`: deliver mkt precision info as `Decimal`
parent
ea9ea4a6d7
commit
b9c7e1b0c7
|
@ -20,6 +20,7 @@ Binance backend
|
|||
"""
|
||||
from contextlib import asynccontextmanager as acm
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
from typing import (
|
||||
Any, Union, Optional,
|
||||
AsyncGenerator, Callable,
|
||||
|
@ -173,10 +174,10 @@ class Client:
|
|||
)
|
||||
return resproc(resp, log)
|
||||
|
||||
async def symbol_info(
|
||||
async def mkt_info(
|
||||
|
||||
self,
|
||||
sym: Optional[str] = None,
|
||||
sym: str | None = None,
|
||||
|
||||
) -> dict[str, Any]:
|
||||
'''Get symbol info for the exchange.
|
||||
|
@ -208,11 +209,13 @@ class Client:
|
|||
else:
|
||||
return syms
|
||||
|
||||
symbol_info = mkt_info
|
||||
|
||||
async def cache_symbols(
|
||||
self,
|
||||
) -> dict:
|
||||
if not self._pairs:
|
||||
self._pairs = await self.symbol_info()
|
||||
self._pairs = await self.mkt_info()
|
||||
|
||||
return self._pairs
|
||||
|
||||
|
@ -224,7 +227,7 @@ class Client:
|
|||
if self._pairs is not None:
|
||||
data = self._pairs
|
||||
else:
|
||||
data = await self.symbol_info()
|
||||
data = await self.mkt_info()
|
||||
|
||||
matches = fuzzy.extractBests(
|
||||
pattern,
|
||||
|
@ -476,11 +479,11 @@ async def stream_quotes(
|
|||
|
||||
# XXX: after manually inspecting the response format we
|
||||
# just directly pick out the info we need
|
||||
si['price_tick_size'] = float(
|
||||
filters['PRICE_FILTER']['tickSize']
|
||||
si['price_tick_size'] = Decimal(
|
||||
filters['PRICE_FILTER']['tickSize'].rstrip('0')
|
||||
)
|
||||
si['lot_tick_size'] = float(
|
||||
filters['LOT_SIZE']['stepSize']
|
||||
si['lot_tick_size'] = Decimal(
|
||||
filters['LOT_SIZE']['stepSize'].rstrip('0')
|
||||
)
|
||||
si['asset_type'] = 'crypto'
|
||||
|
||||
|
@ -585,7 +588,7 @@ async def open_symbol_search(
|
|||
async with ctx.open_stream() as stream:
|
||||
|
||||
async for pattern in stream:
|
||||
# results = await client.symbol_info(sym=pattern.upper())
|
||||
# results = await client.mkt_info(sym=pattern.upper())
|
||||
|
||||
matches = fuzzy.extractBests(
|
||||
pattern,
|
||||
|
|
Loading…
Reference in New Issue