NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4484 most downloaded on PyPI
PEP 561 type stubs generator for pybind11 modules
Last release 9 days ago
25 Sep 2026
Ships unpredictably
gaps range from 8 days to 1.1 years
Some releases are documented
notes for 27 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
79 releases · first in 2019
Maintainership has passed from @sizmailov to @ax3l , @skarndev , and @virtuald , and the repository has been transferred to the pybind11 organization.
Maintainership has passed from @sizmailov to @ax3l, @skarndev, and @virtuald,
and the repository has been transferred to the pybind11 organization.
Many thanks to @sizmailov for creating pybind11-stubgen and maintaining it over the years!
Breaking changes:
# value = ... comments by default; use --print-value-comments to restore them (#251) by @dyollb and @ax3lChanges:
mappingproxy, to their importable names in types (#278) by @skarndev and @ax3lRuntimeError: dictionary changed size during iteration when attribute access modifies a class dictionary (#310) by @htruscottWeakKeyDictionary (#295) by @ax3lDevelopment:
setup.py to pyproject.toml (#281) by @gentlegiantJGCOne column per quarter.
🐛 Fix the type annotation for __all__ ( #261 ) by @sarlinpe
✨ Add argv to main() to simplify use as a library ( #252 ) by @gentlegiantJGC
Changes:
argv to main() to simplify use as a library (#252) by @gentlegiantJGC✨ Ignore technical dunder Python 3.13 fields ( __static_attributes__ and __firstlineno__ ): ( #243 ) by @nim65s
Changes:
__static_attributes__
and __firstlineno__): (https://github.com/sizmailov/pybind11-stubgen/pull/243) by @nim65sChanges: 🐛 Fixed: Missed numpy unsigned int types ( #219 ) by @Yc7521
🐛 Fixed: Don't render pybind11 KeysView, ValuesView, ItemsView class definitions (#211) 🐛 Fixed: Escape backslashes in stub output
🐛 Fixed: Don't render pybind11 KeysView, ValuesView, ItemsView class definitions (#211)
🐛 Fixed: Escape backslashes in stub output (#208)
🔁 Revert #196 due to poor review
Changes:
✨ Automatically replace invalid enum expressions with corresponding valid expression & import (#196) contributed by @ringohoffman
Changes:
self parameter annotation when types do not match (#195) contributed by @ringohoffman✨ Added --numpy-array-use-type-var flag which reformats the pybind11-generated numpy.ndarray[numpy.float32[m, 1]] annotation as numpy.ndarray[tuple[M,
Changes:
--numpy-array-use-type-var flag which reformats the pybind11-generated numpy.ndarray[numpy.float32[m, 1]]numpy.ndarray[tuple[M, Literal[1]], numpy.dtype[numpy.float32]] contributed by @ringohoffman (#188)🐛 fix: Handle top-level list-like annotations as types
Changes:
🐛 fix: Missing py::dtype translation
Changes:
py::dtype translation (#179)🐛 fix: Wrong import for lowercase buffer (#175), issue
Changes:
buffer (#175), issue (#173)🐛 fix: Misleading warning that referred to ignored errors
Changes:
🐛 fix: The typing.Annotated does not exist in python < 3.9, use typing_extensions
Changes:
typing.Annotated does not exist in python < 3.9, use typing_extensions (#168)🐛 fix: Missing function name in error message
Changes:
🐛 fix: Crash on None-valued docstring of property getter
Changes:
None-valued docstring of property getter (#161)🐛 fix: Inconsistent --enum-class-locations behaviour
Changes:
--enum-class-locations behaviour (#158)🐛 fix: Missing -? in eum representation regex
Changes:
-? in eum representation regex📝 Update --print-invalid-expressions-as-is description
Changes:
--print-invalid-expressions-as-is description🐛 Fix: Python literals as default arg rendered as ...
Changes:
... (#147)--print-safe-value-reprs=REGEX CLI option to override the print-safe flag
of Value (for custom default value representations provided via pybind11::arg_v()) (#147)--enum-class-locations=REGEX:LOC CLI option to rewrite enum values as valid
Python expressions with correct imports. (#147)⚠️ This release detects more invalid expressions in bindings code. Previously, Enum-like representations (e.g., <MyEnum.Zero: 0>) were always treated as non-printable values and were rendered as .... The invalid expressions should be acknowledged by --enum-class-locations or --ignore-invalid-expressions.
✨ Add --stub-extension CLI option
Changes:
🐛 Fix: missing isinstance check
Changes:
isinstance check (#138)🐛 Fix: missing subdirectories for top-level submodules
Changes:
🐛 Explicitly set encoding of stubs to utf-8
Changes:
numpy.ndarray.flags (#128)scipy.sparse.* types the same as numpy.ndarray with --numpy-array-wrap-with-annotated (#128)--numpy-array-wrap-with-annotated (#128)--numpy-array-wrap-with-annotated-fixed-size to --numpy-array-wrap-with-annotated (#128)🐛 Fix missing remap of numpy.ndarray.flags
Changes:
numpy.ndarray.flags (#128)scipy.sparse.* types the same as numpy.ndarray with --numpy-array-wrap-with-annotated (#128)--numpy-array-wrap-with-annotated (#128)--numpy-array-wrap-with-annotated-fixed-size to --numpy-array-wrap-with-annotated (#128)🐛 Fix compatibility with Python 3.7..3.9
Changes:
typing collections with builtin types (e.g. typing.List -> list) according
to PEP 585 (#122)function -> Callable, object/handle -> typing.Any (#121)Added --dry-run CLI option to skip writing stubs stage
Changes:
--dry-run CLI option to skip writing stubs stage (#114 )The project was rewritten from scratch for 1.0.
The project was rewritten from scratch for 1.0.
Changes:
pybind11-stubgen --help for details⚠️ Project was rewritten from scratch for 1.x.
⚠️ Project was rewritten from scratch for 1.x.
Changes:
pybind11-stubgen --help for detailsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →