| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-02-17 | 8.5 kB | |
| Version 3.0.2 source code.tar.gz | 2026-02-17 | 953.3 kB | |
| Version 3.0.2 source code.zip | 2026-02-17 | 1.1 MB | |
| Totals: 3 Items | 2.1 MB | 0 | |
New Features:
- Added helper functions to
py::arraythat return shape and strides asstd::spanwhen available. #5974
Bug fixes:
-
Added fallback locking for Python 3.13t where
PyCriticalSection_BeginMutexis unavailable. #5981 -
Fixed race condition in
py::make_key_iteratorwith free-threaded Python. #5971 -
MSVC 19.16 and earlier were blocked from using
std::launderdue to internal compiler errors. #5968 -
Internals destructors were updated to check the owning interpreter before clearing Python objects. #5965
-
Internals shutdown handling was refined in two iterations before release: an initial finalization-time cleanup was followed by a safety adjustment to avoid late-shutdown
py::castsegfaults. #5958 #5972 -
Fixed ambiguous
str(handle)construction forobject-derived types likekwargsordictby templatizing the constructor with SFINAE. #5949 -
Fixed concurrency consistency for
internals_pp_managerunder multiple-interpreters. #5947 -
Fixed MSVC LNK2001 in C++20 builds when /GL (whole program optimization) is enabled. #5939
-
Added per-interpreter storage for
gil_safe_call_once_and_storeto make it safe under multi-interpreters. #5933 -
A workaround for a GCC
-Warray-boundsfalse positive inargument_vectorwas added. #5908 -
Corrected a mistake where support for
__index__was added, but the type hints did not reflect acceptance ofSupportsIndexobjects. Also fixed a long-standing bug: the complex-caster did not accept__index__inconvertmode. #5891 -
Fixed
*args/**kwargsreturn types. Added type hinting topy::make_tuple. #5881 -
Fixed compiler error in
type_caster_genericwhen casting aTimplicitly convertible fromT*. #5873 -
Updated
py::native_enumbindings to unregister enum types on destruction, preventing a use-after-free when returning a destroyed enum instance. #5871 -
Fixed undefined behavior that occurred when importing pybind11 modules from non-main threads created by C API modules or embedded python interpreters. #5870
-
Fixed dangling pointer in
internals::registered_types_cpp_fast. #5867 -
Added support for
std::shared_ptr<T>when loading module-local or conduit types from other modules. #5862 -
Fixed thread-safety issues if types were concurrently registered while
get_local_type_info()was called in free threaded Python. #5856 -
Fixed py::float_ casting and py::int_ and py::float_ type hints. #5839
-
Fixed two
smart_holderbugs inshared_ptrandunique_ptradoption with multiple/virtual inheritance:shared_ptrto-Python caster was updated to register the correct subobject pointer (fixes #5786).unique_ptradoption was updated to own the proper object start while aliasing subobject pointers for registration, which fixed MSVC crashes during destruction. #5836
-
Constrained
accessor::operator=templates to avoid obscuring special members. #5832 -
Fixed crash that can occur when finalizers acquire and release the GIL. #5828
-
Fixed compiler detection in
pybind11/detail/pybind11_namespace_macros.hfor clang-cl on Windows, to address warning suppression macros. #5816 -
Fixed compatibility with CMake policy CMP0190 by not always requiring a Python interpreter when cross-compiling. #5829
-
Added a static assertion to disallow
keep_aliveandcall_guardon properties. #5533
Internal:
-
CMake policy limit was set to 4.1. #5944
-
Improved performance of function calls between Python and C++ by switching to the "vectorcall" calling protocol. #5948
-
Many C-style casts were replaced with C++-style casts. #5930
-
Added
cast_sourcesabstraction totype_caster_generic. #5866 -
Improved the performance of from-Python conversions of legacy pybind11 enum objects bound by
py::enum_. #5860 -
Reduced size overhead by deduplicating functions' readable signatures and type information. #5857
-
Used new Python 3.14 C APIs when available. #5854
-
Improved performance of function dispatch and type casting by porting two-level type info lookup strategy from nanobind. #5842
-
Updated
.gitignoreto exclude__pycache__/directories. #5838 -
Changed internals to use
thread_localinstead ofthread_specific_storagefor increased performance. #5834 -
Reduced function call overhead by using thread_local for loader_life_support when possible. #5830
-
Removed heap allocation for the C++ argument array when dispatching functions with 6 or fewer arguments. #5824
Documentation:
-
Fixed docstring for
long doublecomplex types to usenumpy.clongdoubleinstead of the deprecatednumpy.longcomplex(removed in NumPy 2.0). #5952 -
The "Supported compilers" and "Supported platforms" sections in the main
README.rstwere replaced with a new "Supported platforms & compilers" section that points to the CI test matrix as the living source of truth. #5910 -
Fixed documentation formatting. #5903
-
Updated upgrade notes for
py::native_enum. #5885 -
Clarified in the docs to what extent bindings are global. #5859
Tests:
-
Fixed deadlock in a free-threading test by releasing the GIL while waiting on synchronization. #5973
-
Calls to
env.deprecated_call()were replaced with direct calls topytest.deprecated_call(). #5893 -
Updated pytest configuration to use
log_levelinstead oflog_cli_level. #5890
CI:
-
Added CI tests for windows-11-arm with clang/MSVC (currently python 3.13), windows-11-arm with clang/mingw (currently python 3.12). #5932
-
These clang-tidy rules were added:
readability-redundant-casting,readability-redundant-inline-specifier,readability-redundant-member-init#5924 -
Replaced deprecated macos-13 runners with macos-15-intel in CI. #5916
-
Restored
runs-on: windows-latestin CI. #5835