refactor telemetry/tunables - #313
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
114c80c to
7112b25
Compare
bd21ca6 to
9e78a51
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
641bfd4 to
ae3f1c6
Compare
Replace manual module initialization with generated backend, registry, and table bindings plus Python-aware logging adapters. Expose schema operations and preserve Python overrides when logging native objects. Return typed mock action dataclasses instead of dictionaries, and update scheduler assertions to match. Document keyword-only sequence selectors and use Optional Python type annotations. Introduce a shared contiguous-buffer helper in wpiutil. Borrow contiguous raw storage through the backend call and flatten strided or indirect memoryviews in C order, without reclassifying numeric buffer exporters. Cover schema fan-out, override dispatch, selector validation, mock action copies, and raw-buffer layouts and lifetimes.
Replace hand-written bindings and the Python table wrapper with generated bindings and Python-aware helpers on the native TunableTable. Add typed scalar and getter/setter publication APIs that preserve native numeric widths and callback values. Use Optional Python type selectors directly. Retain published values and callbacks until removal, track table ownership, and reject stale callback tables. Handle backend migration and reentrant publication without losing the accepted replacement. Provide a thread-aware registry update-mutex context manager that releases the GIL while waiting. Restrict mutate() to individual WPIStruct objects and remove the mutation list proxy; other values use get()/set(). Reuse the contiguous-buffer helper to avoid intermediate raw-value copies while preserving sequence dispatch. Expose mock backend typed/struct accessors and document native-only backend dispatch. Cover publication lifetimes, reentrancy, mutex ownership, numeric ranges, type selectors, struct mutation, and raw-buffer conversion.
Enable DataLog telemetry backend trampolines and expose NetworkTables MarkDirty while documenting native-only tunable backend dispatch. Remove import-time monkey-patching of telemetry and tunable registries. Register NetworkTables backends explicitly through the registry API in tests instead. Verify that PIDController and Field2d Python overrides receive native tables, subclasses without overrides use native fallback implementations, and NetworkTables publication uses the native backend implementation.
ae3f1c6 to
5e310ed
Compare
🤖
... still a few items to fix