piker/piker/ui
Gud Boi 2ade3cfa24 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-03-17 18:14:01 -04:00
..
kivy Port kivy monitor to new tractor stream api 2021-04-29 09:10:11 -04:00
quantdom Drop quantdum legend item 2021-05-24 12:23:02 -04:00
__init__.py Port all `.ui*` submods to new `.ui.qt` imports 2024-05-01 14:33:10 -04:00
_anchors.py Port all `.ui*` submods to new `.ui.qt` imports 2024-05-01 14:33:10 -04:00
_annotate.py Add a `GapAnnotations` path-renderer 2026-03-17 18:14:01 -04:00
_app.py .ui._app: enable console logging in `_async_main()` 2026-02-23 12:22:48 -05:00
_axes.py Fix chart axis scaling on UI zoom level change 2026-03-17 18:13:41 -04:00
_chart.py Use `tractor.ipc._shm` types directly across codebase 2026-03-17 18:00:29 -04:00
_cursor.py Add order-cancel debugging and multiline kbd logs 2026-02-23 12:22:48 -05:00
_curve.py Rm unused import in `.ui._curve` 2026-02-22 16:05:52 -05:00
_dataviz.py Use `tractor.ipc._shm` types directly across codebase 2026-03-17 18:00:29 -04:00
_display.py Check for a `.hist` suffix in shm file names 2026-03-11 10:55:04 -04:00
_editors.py Guard against `None` chart in `ArrowEditor.remove()` 2026-02-22 22:08:35 -05:00
_event.py Adjust to `trio`'s strict eg nurseries throughout! 2026-01-06 22:27:58 -05:00
_exec.py Add global UI font-size zoom scaling (from @dnks) 2026-03-17 18:13:41 -04:00
_feedstatus.py Adjust feed status fields/display-pane to new actor-ID 2026-01-06 22:27:58 -05:00
_forms.py Add global UI font-size zoom scaling (from @dnks) 2026-03-17 18:13:41 -04:00
_fsp.py Use `tractor.ipc._shm` types directly across codebase 2026-03-17 18:00:29 -04:00
_icons.py Port all `.ui*` submods to new `.ui.qt` imports 2024-05-01 14:33:10 -04:00
_interaction.py Add order-cancel debugging and multiline kbd logs 2026-02-23 12:22:48 -05:00
_l1.py Fix `Qt6` types for new sub-namespaces 2026-02-22 16:03:19 -05:00
_label.py Add global UI font-size zoom scaling (from @dnks) 2026-03-17 18:13:41 -04:00
_lines.py Add order-cancel debugging and multiline kbd logs 2026-02-23 12:22:48 -05:00
_notify.py ARRG, disable `dunst` notifications for now in order mode 2023-05-09 14:49:26 -04:00
_ohlc.py Port all `.ui*` submods to new `.ui.qt` imports 2024-05-01 14:33:10 -04:00
_orm.py Adjust `.ui` modules to new set-style "optional" annots 2023-03-10 18:20:22 -05:00
_overlay.py Facepalm, align overlay plot view exactly to parent 2023-03-10 18:20:22 -05:00
_pg_overrides.py Fix `._pg_overrides` import cycle caused by our `Axis` override 2023-12-22 12:05:18 -05:00
_position.py Add global UI font-size zoom scaling (from @dnks) 2026-03-17 18:13:41 -04:00
_remote_ctl.py Add batch-submit API for gap annotations 2026-03-17 18:14:01 -04:00
_render.py Port all `.ui*` submods to new `.ui.qt` imports 2024-05-01 14:33:10 -04:00
_search.py improve ui zoom defaults 2026-03-17 18:13:41 -04:00
_signalling.py Change over the UI layer to use `MktPair` 2023-05-24 15:30:17 -04:00
_style.py Improve styling and logging for UI font-size zoom 2026-03-17 18:13:41 -04:00
_widget.py Pass `loglevel` down through `.ui` graphics tasks 2026-02-23 12:22:48 -05:00
_window.py Improve styling and logging for UI font-size zoom 2026-03-17 18:13:41 -04:00
cli.py Pass `loglevel` down through `.ui` graphics tasks 2026-02-23 12:22:48 -05:00
order_mode.py Use `ppfmt()` in `order_mode` since it's provided by `tractor` now 2026-03-11 15:51:41 -04:00
qt.py Add global UI font-size zoom scaling (from @dnks) 2026-03-17 18:13:41 -04:00
view_mode.py Adjust all `.tsp` imports to use new sub-pkg 2023-12-18 11:54:28 -05:00