Skip to content

refactor: add strict typing and typed public library contracts - #119

Open
jaagut wants to merge 1 commit into
chore/pixi-quality-infrastructurefrom
refactor/strict-python-types
Open

jaagut wants to merge 1 commit into
chore/pixi-quality-infrastructurefrom
refactor/strict-python-types

Conversation

@jaagut

@jaagut jaagut commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Adds strict mypy checks for the core library, visualization, packaging script, and runnable example. Blackboards are generic, registries hold classes, parameter values model existing YAML/ROS inputs, and debug representations use recursive TypedDicts. Both distributions ship py.typed. Removes docstring typing directives and fixes the invalid all exports.

The Qt UI has explicit widget types and a zoom signal replaces the instance-method monkeypatch. Small stubs cover the untyped RQT APIs used here; ROS client/message imports and PyQt5.uic remain explicit external typing boundaries. No per-line type suppressions or blanket disabling of strict mode.

Validation: strict core/example and visualization mypy, all 104 tests, both distribution builds, pre-commit checks, visualization module import, and the hardware-free demo pass locally. Further dependency installation and CI validation run on GitHub to respect the user's mobile connection.

Stack: based on #118, which is based on #114. Parser and runtime fixes follow separately. Broader integration/API decisions remain in #115–#117.

I am working on behalf of @jaagut.

Full stack, bottom to top: #114 → #118 → #119 → #120 → #122 → #123. Merge in that order.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant