piker/piker/brokers
Tyler Goodlet a0b540022e Prep service mngr for move to `tractor.hilevel`
Given it's a fairly simple yet useful abstraction, it makes sense to
offer this sub-sys alongside the core `tractor` runtime lib.

Without going into extreme detail on the impl changes (it'll come in
the commit that moves to the other repo) here is the high level summary:
------ - ------
- rename `Services` -> `ServiceMngr` and use an factory `@acm`
  to guarantee a single-instance-per-actor using a niche approach for a
  singleton object using a default keyword-arg B)
  - the mod level `open_service_mngr()` and `get_service_mngr()` are the
    new allocation/access API.
- add a `ServiceMngr.start_service()` method which does the work of both
  spawning a new subactor (for the daemon) and uses its portal to start
  the mngr side supervision task.
- open actor/task nurseries inside the `@acm` allocator.

Adjust other dependent subsystems to match:
------ - ------
- use `open_service_mngr()` when first allocated in `open_pikerd()`.
- use `get_service_mngr()` instead of importing the class ref inside
  `.service.maybe_spawn_daemon()`, `.brokers._daemon.spawn_brokerd()`
  and `.data._sampling.spawn_samplerd()` using a `partial` to pack in
  the endpoint ctx kwargs (unpacked inside `.start_service()` XD).
2025-02-03 18:52:11 -03:00
..
binance Lel, forgot to add a `SPOT` venue for `binance`.. 2025-02-03 18:52:11 -03:00
deribit deribit: switch to `rapidfuzz` API 2023-09-21 19:44:27 -04:00
ib ib: `.api` mod and log-fmt cleaning 2024-06-20 14:40:21 -04:00
kraken Change type-annots to use `httpx.Response` 2024-05-20 12:55:45 -04:00
__init__.py Change type-annots to use `httpx.Response` 2024-05-20 12:55:45 -04:00
_daemon.py Prep service mngr for move to `tractor.hilevel` 2025-02-03 18:52:11 -03:00
_util.py Change type-annots to use `httpx.Response` 2024-05-20 12:55:45 -04:00
cli.py Delegate `.toolz.open_crash_handler()` to `tractor.devx` 2024-01-16 10:26:38 -05:00
core.py Temporarily use crash handler around search CLI ep 2023-09-29 14:02:17 -04:00
data.py Use common `.brokers` logger in most backends 2023-05-09 14:49:26 -04:00
kucoin.py Woops, `data` can be an empty list XD 2024-05-28 16:19:28 -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