Summary
Remove the flepimop2-op_system/ exclusion from pyproject.toml mypy config and fix all resulting strict-mode errors. Add a py.typed marker to the provider package.
Problem
pyproject.toml explicitly excludes the adapter:
[tool.mypy]
strict = true
exclude = ["examples/", "flepimop2-op_system/"]
This means type errors in the provider go undetected. The op_engine provider just went through this same cleanup (PR #51, op_engine commit 25d3dbc) — StateChangeEnum vs string literals, dict vs Pydantic model constructors, narrowing type: ignore annotations.
The op_system adapter has the same patterns:
_AxesMeta is a bare NamedTuple (could be typed more strictly)
- Untyped
getattr calls
- No
py.typed marker for downstream type checking
Scope
- Add
flepimop2-op_system/src/flepimop2/system/op_system/py.typed
- Remove
"flepimop2-op_system/" from mypy exclude
- Fix all mypy --strict errors that surface
- Narrow any remaining
type: ignore to specific error codes
Related
Summary
Remove the
flepimop2-op_system/exclusion frompyproject.tomlmypy config and fix all resulting strict-mode errors. Add apy.typedmarker to the provider package.Problem
pyproject.tomlexplicitly excludes the adapter:This means type errors in the provider go undetected. The op_engine provider just went through this same cleanup (PR #51, op_engine commit
25d3dbc) —StateChangeEnumvs string literals, dict vs Pydantic model constructors, narrowingtype: ignoreannotations.The op_system adapter has the same patterns:
_AxesMetais a bareNamedTuple(could be typed more strictly)getattrcallspy.typedmarker for downstream type checkingScope
flepimop2-op_system/src/flepimop2/system/op_system/py.typed"flepimop2-op_system/"from mypyexcludetype: ignoreto specific error codesRelated
StateChangeEnumnot found inflepimop2.typing#51 (same cleanup for op_engine provider)system._stepperaccess with public bind API #55 (_bind_impl— PR Implement_bind_implfor SystemABC compliance #57)