Problem
The SDK is fully type-annotated — e.g. src/h5i/orchestra/_errors.py (def __init__(self, message: str, code: int, kind: str | None = None)), _conductor.py, policy.py — but the package ships no py.typed marker:
$ find src -name py.typed
(nothing)
Per PEP 561, without that marker, type checkers in downstream projects treat h5i.orchestra as untyped and silently ignore every annotation we wrote. Users of mypy/pyright get no completions-with-types, no signature checking, nothing — the annotations only benefit our own test suite.
Suggested fix
The core change is literally one empty file plus a build check — a perfect first contribution — but it meaningfully improves the experience of every typed downstream project.
Problem
The SDK is fully type-annotated — e.g.
src/h5i/orchestra/_errors.py(def __init__(self, message: str, code: int, kind: str | None = None)),_conductor.py,policy.py— but the package ships nopy.typedmarker:Per PEP 561, without that marker, type checkers in downstream projects treat
h5i.orchestraas untyped and silently ignore every annotation we wrote. Users of mypy/pyright get no completions-with-types, no signature checking, nothing — the annotations only benefit our own test suite.Suggested fix
src/h5i/py.typedfile (the package root that[tool.hatch.build.targets.wheel]ships issrc/h5i).python -m build && unzip -l dist/*.whl | grep py.typed.mypyresolves types from the installed package, e.g.mypy -c "from h5i.orchestra import Conductor; reveal_type(Conductor)".The core change is literally one empty file plus a build check — a perfect first contribution — but it meaningfully improves the experience of every typed downstream project.