Open
Description
A rough work in progress roadmap for docstub during its early development phase:
v0.3 (MVP)
Minimum threshold to create stubs for scikit-image.
- Add basic CI tests
- Errors and warnings point to parsed source if possible
- Cache static analysis
- Support module attributes, class attributes, and type aliases
- CI testing with mypy
- Report statistics at the end: error count, file count, runtime, ...
- Basic stats in 0b048f3
- Minimal documentation
v0.x
Typing support
- Direct support for dataclasses
- Support generator functions and "Yields" section
- Support callables with signatures, e.g.
callable(int, str) -> float
- Direct support for Enums
- Support Generics in docstrings
Testing & correctness
- CI testing with other type checkers (basedpyright, Pytype, Pyre, ...)
- "Dogfooding" -- publish and distribute stubs for docstub
Adoption
- Evaluate on scikit-image
- Evaluate on networkx
- Pin upper limit for allowed errors with "ratchet"
- optional grouping of reported errors
- 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
- 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 leverage sphinx config info to improve parsing #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)
- Integration with common CI platforms, e.g. see basedpyright's CI integration