piker/piker
Gud Boi abb211219f Add `datad` daemon machinery to `.data`
First half of the `brokerd` split: a new per-provider
data-feed-only daemon-actor `datad.<broker>` to (soon) host
all `validate._eps['datad']` eps (live quotes, history
loading, symbology search) leaving `brokerd` for live order
ctl only. Purely additive; nothing routes through it yet.

Deats,
- new `piker.data._daemon` mod mirroring the
  `.brokers._daemon` conventions (and the `samplerd`
  sub-daemon precedent):
  - `_setup_persistent_datad()` lifetime fixture owning the
    actor-global `_FeedsBus` alloc.
  - `datad_init()` building `enable_modules` from the
    backend's `_datad_mods` (falling back to
    `__enable_modules__` for not-yet-split backends) and
    copying `_spawn_kwargs` (critical for `ib`'s
    `infect_asyncio`).
  - `spawn_datad()`/`maybe_spawn_datad()` wrapping
    `Services` + `maybe_spawn_daemon()`.
- add `piker.data._daemon` to `_root_modules` so `pikerd`
  can run `spawn_datad()` requests.
- re-export the spawn eps from `piker.service`.
- add `test_datad_spawn` verifying actor boot + service
  registration via `ensure_service('datad.kraken')`.

Note the `Services`-based impl style deliberately mirrors
`spawn_brokerd()` so the eventual `tractor.hilevel`
`ServiceMngr` port (see the `service_mng_to_tractor`
branch's d8c21d44 prep work) lands symmetrically on both.

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 17:25:09 -04:00
..
accounting Fix `pytest` config-dir isolation in subactors 2026-06-09 17:25:09 -04:00
brokers Declare per-daemon-kind backend mod groups 2026-06-09 17:25:09 -04:00
clearing Use `ppfmt()` in EMS and guard `brokerd_msg` set 2026-04-16 13:31:09 -04:00
cli Add `tpt_bind_addrs` and separate registry eps 2026-04-16 13:32:04 -04:00
data Add `datad` daemon machinery to `.data` 2026-06-09 17:25:09 -04:00
fsp Use `tractor.ipc._shm` types directly across codebase 2026-03-17 18:00:29 -04:00
service Add `datad` daemon machinery to `.data` 2026-06-09 17:25:09 -04:00
storage Move `reg_err_types` imports to module-level 2026-03-30 13:25:41 -04:00
testing Pass a config `tmp_dir: Path` to the runtime when testing 2023-03-09 15:37:43 -05:00
toolz Delegate `.toolz.open_crash_handler()` to `tractor.devx` 2024-01-16 10:26:38 -05:00
tsp Update `tractor` private-API refs across codebase 2026-03-24 20:21:29 -04:00
ui Add `tpt_bind_addrs` and separate registry eps 2026-04-16 13:32:04 -04:00
watchlists Add license headers to pertinent files 2020-11-06 12:23:14 -05:00
__init__.py Start `piker.service` sub-package 2023-03-09 15:37:42 -05:00
_cacheables.py Move `._cacheables.open_cached_client()` into `.brokers` pkg mod 2023-06-27 13:41:47 -04:00
calc.py Lul, adhere to returning `str`s in `humanize()` 2022-01-25 07:57:01 -05:00
config.py Fix `pytest` config-dir isolation in subactors 2026-06-09 17:25:09 -04:00
log.py Auto-enable `tractor` logging when runtime active 2026-02-23 12:22:48 -05:00
types.py Point `.types.Struct` to `tractor.msg.pretty_struct` 2026-02-22 16:07:53 -05:00