- I usually run stubdefaulter.
- I sometimes add missing annotations.
- I sometimes use
Any
for missing annotations so type checkers don't complain about "UNKNOWN". - Most changes are automated, but not sophisticated.
This is a useful tool for me, but I haven't really figured out how to make it useful for more people.
- Create or improve a stub file.
- Submit a Pull Request.
The following might work for you, but I don't really know for sure.
To use the stub files from this repository:
-
Clone the repository.
git clone https://github.com/hunterhogan/stubFileNotFound.git
-
Tell your type checker about the
stubs
directory.
Relevant settings may include
python.analysis.stubPath
mypy-type-checker.args
"--custom-typeshed-dir=typings"
Virtual directories (symlinks)
(.venv) C:\apps\Z0Z_tools> MKLINK /D typings \apps\stubFileNotFound\stubs
-
Copy and paste the signature into a stub file. Improve it.
-
stubgen --verbose --include-docstrings ^ --include-private --output typings ^ --package nameOfAnInstalledPackage
VS Code:
workbench.action.openGlobalKeybindingsFile
{ "args": { "text": "stubgen --include-private --include-docstrings --output typings --verbose -p ${selectedText}\n" }, "command": "workbench.action.terminal.sendSequence", "key": "ctrl+shift+t" },
-
pyright --createstub nameOfAnInstalledPackage
- "Quick Fix" in VS Code.
-
Pylance if
reportMissingTypeStubs
is enabled and the stub is missing: "Quick Fix"
- MonkeyType
- stubgen-pyx:
stubgen-pyx /path/to/package
- stub-generator
- pytype
-
Nuitka-Stubgen:
pip install AST-Stubgen
import pathlib import Ast_Stubgen pathlib.Path('typings/Ast_Stubgen').mkdir(parents=True, exist_ok=True) Ast_Stubgen.generate_stub('.venv/Lib/site-packages/Ast_Stubgen/stubgen.py', 'typings/Ast_Stubgen/stubgen.pyi') Ast_Stubgen.generate_stub('.venv/Lib/site-packages/Ast_Stubgen/__init__.py', 'typings/Ast_Stubgen/__init__.pyi')
Coding One Step at a Time:
- WRITE CODE.
- Don't write stupid code that's hard to revise.
- Write good code.
- When revising, write better code.