Summary
The Python package has no static type checking configured or enforced anywhere.
Evidence
Searching the repo for type-checker configuration returns only vestigial cache-directory excludes:
pyproject.toml:46: | \.mypy_cache
setup.cfg:101: .mypy_cache
There is no [tool.mypy] table, no mypy.ini, no ty configuration, and no CI job invoking a type checker. Meanwhile roughly 46% of functions in python/arcticdb already carry some annotation (508 of 1093, measured with ast), so the annotations exist but nothing verifies them — they can drift out of step with the code silently.
Suggested change
Add a type-checker configuration and wire it into .github/workflows/build.yml next to the existing run_linting_checks job, which already runs build_tooling/format.py.
Given the size of the surface, adopting this incrementally is likely more practical than a repo-wide strict pass — for example starting with the public API modules (arctic.py, version_store/library.py, options.py) and widening over time.
done when
A type checker runs over python/arcticdb in CI on every PR and fails the build on new errors.
Subcategory: type safety. Assessed 3/10, target 8/10.
Summary
The Python package has no static type checking configured or enforced anywhere.
Evidence
Searching the repo for type-checker configuration returns only vestigial cache-directory excludes:
There is no
[tool.mypy]table, nomypy.ini, notyconfiguration, and no CI job invoking a type checker. Meanwhile roughly 46% of functions inpython/arcticdbalready carry some annotation (508 of 1093, measured withast), so the annotations exist but nothing verifies them — they can drift out of step with the code silently.Suggested change
Add a type-checker configuration and wire it into
.github/workflows/build.ymlnext to the existingrun_linting_checksjob, which already runsbuild_tooling/format.py.Given the size of the surface, adopting this incrementally is likely more practical than a repo-wide strict pass — for example starting with the public API modules (
arctic.py,version_store/library.py,options.py) and widening over time.done when
A type checker runs over
python/arcticdbin CI on every PR and fails the build on new errors.Subcategory: type safety. Assessed 3/10, target 8/10.