Move `._cacheables.open_cached_client()` into `.brokers` pkg mod
parent
c0552fa352
commit
921e18728c
|
@ -20,9 +20,6 @@ Cacheing apis and toolz.
|
|||
'''
|
||||
|
||||
from collections import OrderedDict
|
||||
from contextlib import (
|
||||
asynccontextmanager as acm,
|
||||
)
|
||||
from typing import (
|
||||
Awaitable,
|
||||
Callable,
|
||||
|
@ -30,12 +27,8 @@ from typing import (
|
|||
TypeVar,
|
||||
)
|
||||
|
||||
from tractor.trionics import maybe_open_context
|
||||
|
||||
from .brokers import get_brokermod
|
||||
from .log import get_logger
|
||||
|
||||
|
||||
log = get_logger(__name__)
|
||||
|
||||
T = TypeVar("T")
|
||||
|
@ -104,29 +97,3 @@ def async_lifo_cache(
|
|||
return decorated
|
||||
|
||||
return decorator
|
||||
|
||||
|
||||
# TODO: move this to `.brokers.utils`..
|
||||
@acm
|
||||
async def open_cached_client(
|
||||
brokername: str,
|
||||
**kwargs,
|
||||
|
||||
) -> 'Client': # noqa
|
||||
'''
|
||||
Get a cached broker client from the current actor's local vars.
|
||||
|
||||
If one has not been setup do it and cache it.
|
||||
|
||||
'''
|
||||
brokermod = get_brokermod(brokername)
|
||||
async with maybe_open_context(
|
||||
acm_func=brokermod.get_client,
|
||||
kwargs=kwargs,
|
||||
|
||||
) as (cache_hit, client):
|
||||
|
||||
if cache_hit:
|
||||
log.info(f'Reusing existing {client}')
|
||||
|
||||
yield client
|
||||
|
|
|
@ -17,10 +17,34 @@
|
|||
"""
|
||||
Broker clients, daemons and general back end machinery.
|
||||
"""
|
||||
from contextlib import (
|
||||
asynccontextmanager as acm,
|
||||
)
|
||||
from importlib import import_module
|
||||
from types import ModuleType
|
||||
|
||||
__brokers__ = [
|
||||
from tractor.trionics import maybe_open_context
|
||||
|
||||
from ._util import (
|
||||
log,
|
||||
BrokerError,
|
||||
SymbolNotFound,
|
||||
NoData,
|
||||
DataUnavailable,
|
||||
DataThrottle,
|
||||
resproc,
|
||||
)
|
||||
|
||||
__all__: list[str] = [
|
||||
'BrokerError',
|
||||
'SymbolNotFound',
|
||||
'NoData',
|
||||
'DataUnavailable',
|
||||
'DataThrottle',
|
||||
'resproc',
|
||||
]
|
||||
|
||||
__brokers__: list[str] = [
|
||||
'binance',
|
||||
'ib',
|
||||
'kraken',
|
||||
|
@ -58,3 +82,28 @@ def iter_brokermods():
|
|||
'''
|
||||
for name in __brokers__:
|
||||
yield get_brokermod(name)
|
||||
|
||||
|
||||
@acm
|
||||
async def open_cached_client(
|
||||
brokername: str,
|
||||
**kwargs,
|
||||
|
||||
) -> 'Client': # noqa
|
||||
'''
|
||||
Get a cached broker client from the current actor's local vars.
|
||||
|
||||
If one has not been setup do it and cache it.
|
||||
|
||||
'''
|
||||
brokermod = get_brokermod(brokername)
|
||||
async with maybe_open_context(
|
||||
acm_func=brokermod.get_client,
|
||||
kwargs=kwargs,
|
||||
|
||||
) as (cache_hit, client):
|
||||
|
||||
if cache_hit:
|
||||
log.info(f'Reusing existing {client}')
|
||||
|
||||
yield client
|
||||
|
|
|
@ -29,7 +29,7 @@ import trio
|
|||
from ._util import log
|
||||
from . import get_brokermod
|
||||
from ..service import maybe_spawn_brokerd
|
||||
from .._cacheables import open_cached_client
|
||||
from . import open_cached_client
|
||||
from ..accounting import MktPair
|
||||
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ from fuzzywuzzy import process as fuzzy
|
|||
import numpy as np
|
||||
import tractor
|
||||
|
||||
from piker._cacheables import open_cached_client
|
||||
from piker.brokers import open_cached_client
|
||||
from piker.log import get_logger, get_console_log
|
||||
from piker.data import ShmArray
|
||||
from piker.brokers._util import (
|
||||
|
|
|
@ -42,8 +42,10 @@ from piker.accounting._mktinfo import (
|
|||
Asset,
|
||||
MktPair,
|
||||
)
|
||||
from piker._cacheables import (
|
||||
from piker.brokers import (
|
||||
open_cached_client,
|
||||
)
|
||||
from piker._cacheables import (
|
||||
async_lifo_cache,
|
||||
)
|
||||
from piker.brokers._util import (
|
||||
|
|
|
@ -56,8 +56,10 @@ from piker.accounting._mktinfo import (
|
|||
MktPair,
|
||||
)
|
||||
from piker import config
|
||||
from piker._cacheables import (
|
||||
from piker.brokers import (
|
||||
open_cached_client,
|
||||
)
|
||||
from piker._cacheables import (
|
||||
async_lifo_cache,
|
||||
)
|
||||
from piker.log import get_logger
|
||||
|
|
|
@ -40,7 +40,8 @@ import wrapt
|
|||
import asks
|
||||
|
||||
from ..calc import humanize, percent_change
|
||||
from .._cacheables import open_cached_client, async_lifo_cache
|
||||
from . import open_cached_client
|
||||
from piker._cacheables import async_lifo_cache
|
||||
from .. import config
|
||||
from ._util import resproc, BrokerError, SymbolNotFound
|
||||
from ..log import (
|
||||
|
|
|
@ -30,14 +30,14 @@ from typing import (
|
|||
)
|
||||
|
||||
import msgspec
|
||||
import tractor
|
||||
import pyqtgraph as pg
|
||||
import tractor
|
||||
from tractor.trionics import maybe_open_context
|
||||
import trio
|
||||
from trio_typing import TaskStatus
|
||||
|
||||
from piker.data.types import Struct
|
||||
from ._axes import PriceAxis
|
||||
from .._cacheables import maybe_open_context
|
||||
from ..calc import humanize
|
||||
from ..data._sharedmem import (
|
||||
ShmArray,
|
||||
|
|
Loading…
Reference in New Issue