A rough work in progress roadmap for docstub during its early development phase: #### v0.3 (Alpha) Minimum threshold to create stubs for scikit-image. - [x] Add basic CI tests - #8 - [x] Errors and warnings point to parsed source if possible - https://github.com/scientific-python/docstub/pull/10 - [x] Cache static analysis - https://github.com/scientific-python/docstub/pull/15 - [x] Support module attributes, class attributes, and type aliases - https://github.com/scientific-python/docstub/pull/18 - [x] CI testing with mypy - https://github.com/scientific-python/docstub/pull/25 - https://github.com/scientific-python/docstub/pull/27 - [x] Report statistics at the end: error count, file count, runtime, ... - Basic stats in https://github.com/scientific-python/docstub/commit/0b048f30d0a9bc5e23f43f392aa5399dd07243b6 - [x] Minimal documentation - https://github.com/scientific-python/docstub/pull/24 #### v0.x Typing support - [x] Direct support for dataclasses - https://github.com/scientific-python/docstub/pull/26 - [x] Support generator functions and "Yields" section - https://github.com/scientific-python/docstub/pull/29 - [ ] Support callables with signatures, e.g. `callable(int, str) -> float` - [ ] Direct support for Enums - [ ] Support [Generics](https://typing.python.org/en/latest/spec/generics.html#variance-inference) in docstrings Testing & correctness - [x] CI testing with other type checkers ([basedpyright](https://docs.basedpyright.com/latest/), Pytype, Pyre, ...) - https://github.com/scientific-python/docstub/pull/50 - [ ] "Dogfooding" -- publish and distribute stubs for docstub Adoption - [ ] Evaluate on scikit-image - https://github.com/scikit-image/scikit-image/pull/7546 - https://github.com/scikit-image/scikit-image/labels/%3Ajigsaw%3A%20typing - [ ] Evaluate on networkx - [x] Pin upper limit for allowed errors with ["ratchet"](https://qntm.org/ratchet) - https://github.com/scientific-python/docstub/pull/32 - [x] optional grouping of reported errors - https://github.com/scientific-python/docstub/pull/30 - [ ] Support checking & transforming a single doctype for testing & debugging in CLI - [ ] Add website with documentation Performance - [ ] Explore parallelization - [ ] Profile & optimize - Evaluate using [Lark's LALR(1) parser](https://lark-parser.readthedocs.io/en/latest/parsers.html#lalr-1) - [ ] Cache transformed doctypes - [ ] Cache created stubs Other - [ ] Add support for grammar & transformation extensions - [ ] Support docstring styles other than NumPyDoc (already supported) - [ ] Add automated release infrastructure - [ ] Provide plugin-like hooks to extend functionality - E.g. supporting things like https://github.com/scientific-python/docstub/issues/22 #### Long-term / v1.0 - Actively used by major projects - Do runtime analysis to find types? - Support inline type annotations? - Inline type annotations (e.g., see [libcst's apply_type_annotations](https://libcst.readthedocs.io/en/latest/_modules/libcst/codemod/visitors/_apply_type_annotations.html)) - Integration with common CI platforms, e.g. see [basedpyright's CI integration](https://docs.basedpyright.com/latest/benefits-over-pyright/improved-ci-integration/)
A rough work in progress roadmap for docstub during its early development phase:
v0.3 (Alpha)
Minimum threshold to create stubs for scikit-image.
v0.x
Typing support
callable(int, str) -> floatTesting & correctness
tests/with basedpyright in CI in "standard" mode #50Adoption
--allow-errorscommand line option #32--group-errorsoption #30Performance
Other
Long-term / v1.0