Add `MarketNotFound` exc and improve binance fqme error
Add a `MarketNotFound(SymbolNotFound)` subclass for mkt-pair-specific lookup failures; use it in binance `get_mkt_info()` with a detailed expected-form hint. Deats, - add `MarketNotFound` in `brokers/_util.py`. - re-export from `brokers/__init__.py`. - binance `feed.py`: swap `SymbolNotFound` import for `MarketNotFound`; build `expected` string showing the `<pair>.<venue>.<broker>` format and suggest `".spot."` if venue is missing. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code
parent
188ce1415e
commit
ced898f580
|
|
@ -31,6 +31,7 @@ from piker.log import (
|
||||||
from ._util import (
|
from ._util import (
|
||||||
BrokerError,
|
BrokerError,
|
||||||
SymbolNotFound,
|
SymbolNotFound,
|
||||||
|
MarketNotFound as MarketNotFound,
|
||||||
NoData,
|
NoData,
|
||||||
DataUnavailable,
|
DataUnavailable,
|
||||||
DataThrottle,
|
DataThrottle,
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,10 @@ class SymbolNotFound(BrokerError):
|
||||||
"Symbol not found by broker search"
|
"Symbol not found by broker search"
|
||||||
|
|
||||||
|
|
||||||
|
class MarketNotFound(SymbolNotFound):
|
||||||
|
"Mkt-pair not found by broker search"
|
||||||
|
|
||||||
|
|
||||||
# TODO: these should probably be moved to `.tsp/.data`?
|
# TODO: these should probably be moved to `.tsp/.data`?
|
||||||
class NoData(BrokerError):
|
class NoData(BrokerError):
|
||||||
'''
|
'''
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ import tractor
|
||||||
from piker.brokers import (
|
from piker.brokers import (
|
||||||
open_cached_client,
|
open_cached_client,
|
||||||
NoData,
|
NoData,
|
||||||
SymbolNotFound,
|
MarketNotFound,
|
||||||
)
|
)
|
||||||
from piker._cacheables import (
|
from piker._cacheables import (
|
||||||
async_lifo_cache,
|
async_lifo_cache,
|
||||||
|
|
@ -325,9 +325,21 @@ async def get_mkt_info(
|
||||||
venue_lower: str = venue.lower()
|
venue_lower: str = venue.lower()
|
||||||
|
|
||||||
if not venue:
|
if not venue:
|
||||||
raise SymbolNotFound(
|
if expiry:
|
||||||
|
expiry = f'.{expiry}'
|
||||||
|
expected: str = (
|
||||||
|
f'{mkt_ep}'
|
||||||
|
f'.<venue>'
|
||||||
|
f'{expiry}'
|
||||||
|
f'.{broker}'
|
||||||
|
)
|
||||||
|
raise MarketNotFound(
|
||||||
f'Invalid or missing .<venue> part in fqme?\n'
|
f'Invalid or missing .<venue> part in fqme?\n'
|
||||||
|
f'\n'
|
||||||
f'fqme: {fqme!r}\n'
|
f'fqme: {fqme!r}\n'
|
||||||
|
f'expected-form>> {expected}\n'
|
||||||
|
f'\n'
|
||||||
|
f'Maybe you are missing a ".spot." ?\n'
|
||||||
)
|
)
|
||||||
|
|
||||||
# XXX TODO: we should change the usdtm_futes name to just
|
# XXX TODO: we should change the usdtm_futes name to just
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue