Note
In early development!
A command line tool to generate Python stub files (PYI) from type descriptions in NumPyDoc style docstrings.
To try out docstub, for now, we recommend installing docstub directly from this repo:
pip install 'docstub [optional] @ git+https://github.com/scientific-python/docstub'docstub example/example_pkg/will create stub files for example_pkg/ in example/example_pkg-stubs/.
For now, refer to docstub --help for more.
Types in docstrings can and are used without having to import them. However, when docstub creates stub files from these docstrings it actually needs to know how to import those unknown types.
Tip
docstub already knows about types in Python's typing or collections.abc
modules. That means you can just use types like Literal or Sequence.
For now docstub's relies on users to declare unknown types1
in a docstub.toml or pyproject.toml like this:
[tool.docstub.docnames]
np = { import = "numpy", as = "np" }With this declaration, you can safely use things that are available in the
numpy namespace. E.g. docstub will recognize that np.uint8 requires
import numpy as np and will include it in stub files if necessary.
docstub uses the keys of the docnames map to match unknown names used in
docstrings. So
[tool.docstub.docnames]
func = { use = "Callable", from = "typing" }will allow using func as a synonym for Callable.
TBD
Thanks to docs2stubs by which this project was heavily inspired and influenced.
Footnotes
-
Static and possibly runtime analysis to automatically find unknown types is on the roadmap. ↩