Use rst2pyi to generate type stubs and package #1915
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a
make stubs
step that generates type stubs using rst2pyi, and then builds a source distribution containing these stubs for upload to PyPI. Type stubs are validated for correct syntax, but there are a number of failures right now due to documentation that does not use valid PEP 484 types, usesmethod
instead offunction
for module-level callables, or otherwise contains invalid Python syntax. Runningmake stubs
also warns about a number of "unmatched param directives" which should be individually investigated or addressed to determine if they are the fault of documentation or limitations in rst2pyi.The PyPI package follows PEP 561, but uses my name/email as the author as I wasn't sure of what the correct maintainer name/email should be. I've also taken the liberty of uploading a preliminary version of the stubs package to PyPI to claim the
circuitpython-stubs
namespace. I'm more than happy to update the author/maintainer fields to whatever makes sense, and to add other owner/maintainer accounts to the package on PyPI.