piker/piker
Gud Boi d36de5910b Add batch-submit API for gap annotations
Introduce `AnnotCtl.add_batch()` and `serve_rc_annots()` batch
handler to submit 1000s of gaps in single IPC msg instead of
per-annot round-trips. Server builds `GapAnnotations` from specs
and handles vectorized timestamp-to-index lookups.

Deats,
- add `'cmd': 'batch'` handler in `serve_rc_annots()`
- vectorized timestamp lookup via `np.searchsorted()` + masking
- build `gap_specs: list[dict]` from rect+arrow specs client-side
- create single `GapAnnotations` item for all gaps server-side
- handle `GapAnnotations.reposition()` in redraw handler
- add profiling to batch path for perf measurement
- support optional individual arrows for A/B comparison

Also,
- refactor `markup_gaps()` to collect specs + single batch call
- add `no_qt_updates()` context mgr for batch render ops
- add profiling to annotation teardown path
- add `GapAnnotations` case to `rm_annot()` match block

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
2026-02-24 12:31:52 -05:00
..
accounting Enable console logging in `.accounting` on import 2026-02-23 12:22:48 -05:00
brokers Add holiday-gap detection via `exchange_calendars` 2026-02-23 13:41:00 -05:00
clearing Enable console via `.clearing._ems.open_brokerd_dialog()` 2026-02-23 12:22:48 -05:00
cli Better doc-strings n styling in `piker.cli` eps 2026-02-23 12:22:48 -05:00
data Drop info-level `.pause()`-es used while devving 2026-02-23 13:26:46 -05:00
fsp Pass `loglevel` to `cascade()` feed/sampler opens 2026-02-23 12:22:48 -05:00
service Use `name=__name__` for logs throughout `.service` 2026-02-23 12:22:48 -05:00
storage Add info log for shm processing in `ldshm` CLI cmd 2026-02-24 12:31:52 -05: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 Add batch-submit API for gap annotations 2026-02-24 12:31:52 -05:00
ui Add batch-submit API for gap annotations 2026-02-24 12:31:52 -05: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 `.config.get_app_dir()`: link to `click`'s orig impl on GH 2026-01-06 19:33:23 -05: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