piker/piker/brokers
Tyler Goodlet 4c5507301e kraken: be symcache compatible!
This was more involved then expected but on the bright side, is going to
help drive a more general `Account` update/processing/loading API
providing for all the high-level txn update methods needed for any
backend to generically update the participant's account *state* via
an input ledger/txn set B)

Key changes to enable `SymbologyCache` compat:
- adjust `Client` pairs / assets lookup tables to include a duplicate
  keying of all assets and "asset pairs" using the (chitty) default key
  set that kraken ships which is NOT the `.altname` no `.wsname` keys;
  the "default ReST response keys" i guess?
  - `._AssetPairs` and `._Assets` are *these ^* rest-key sets delivered
    verbatim from the endpoint responses,
  - `._pairs` and `._assets` the equivalent value-sets keyed by piker
    style FQME-looking keys (now provided via the new
    `.kraken.symbols.Pair.bs_fqme: str` and the delivered `'altname'`
    field (for assets) respectively.
- re-implement `.get_assets()` and `.get_mkt_pairs()` to appropriately
  delegate to internal methods and these new (multi-keyed) tables to
  deliver the cacheable set of symbology info.
- adjust `.feed.get_mkt_info()` to handle parsing of both fqme-style and
  wtv(-the-shit-stupid) kraken key set a caller passes via
  a key-matches-first-table-style-scan after pre-processing the
  input `fqme: str`; also do the `Asset` lookups from the new
  `Pair.bs_dst/src_asset: str` fields which should always map correctly
  to an internal asset entry delivered by `Client.get_assets()`.

Dirty impl deatz:
- add new `.kraken.symbols` and move the newly refined `Pair` there.
- add `.kraken.ledger` and move in the factored out ledger processing
  routines.
- also move out what was the `has_pp()` and large chung of nested-ish
  looking acnt-position verification logic blocks into a new
  `verify_balances()` B)
2023-07-16 21:21:53 -04:00
..
binance binance: spec `.ns_path: str` on pair structs 2023-07-15 17:37:56 -04:00
deribit Don't pass loglevel to trade dialog endpoint 2023-06-27 13:41:47 -04:00
ib ib: port to new `.accounting` APIs 2023-07-12 08:45:55 -04:00
kraken kraken: be symcache compatible! 2023-07-16 21:21:53 -04:00
__init__.py Change cached-client hit msg to runtime level 2023-07-12 08:45:55 -04:00
_daemon.py Move `broker_init()` into `brokers._daemon` 2023-06-27 13:42:08 -04:00
_util.py Move `broker_init()` into `brokers._daemon` 2023-06-27 13:42:08 -04:00
cli.py Use new config get/set API in `brokercnf` cmd? 2023-06-27 13:42:08 -04:00
core.py brokers.core: open cached client before hitting `.get_mkt_info()` 2023-07-12 08:45:55 -04:00
data.py Use common `.brokers` logger in most backends 2023-05-09 14:49:26 -04:00
kucoin.py Move `._cacheables.open_cached_client()` into `.brokers` pkg mod 2023-06-27 13:41:47 -04:00
questrade.py Move `._cacheables.open_cached_client()` into `.brokers` pkg mod 2023-06-27 13:41:47 -04:00
robinhood.py Use common `.brokers` logger in most backends 2023-05-09 14:49:26 -04:00