knx/examples/knxPython/pybind11/docs/changelog.rst

3286 lines
133 KiB
ReStructuredText
Raw Normal View History

.. _changelog:
Changelog
#########
Starting with version 1.8.0, pybind11 releases use a `semantic versioning
<http://semver.org>`_ policy.
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
Changes will be added here periodically from the "Suggested changelog entry"
block in pull request descriptions.
IN DEVELOPMENT
--------------
Changes will be summarized here periodically.
2024-09-14 19:38:30 +02:00
New Features:
* Support for Python 3.7 was removed. (Official end-of-life: 2023-06-27).
`#5191 <https://github.com/pybind/pybind11/pull/5191>`_
* stl.h ``list|set|map_caster`` were made more user friendly: it is no longer
necessary to explicitly convert Python iterables to ``tuple()``, ``set()``,
or ``map()`` in many common situations.
`#4686 <https://github.com/pybind/pybind11/pull/4686>`_
* Support for CMake older than 3.15 removed. CMake 3.15-3.30 supported.
`#5304 <https://github.com/pybind/pybind11/pull/5304>`_
* The ``array_caster`` in pybind11/stl.h was enhanced to support value types that are not default-constructible.
`#5305 <https://github.com/pybind/pybind11/pull/5305>`_
* Added ``py::warnings`` namespace with ``py::warnings::warn`` and ``py::warnings::new_warning_type`` that provides the interface for Python warnings.
`#5291 <https://github.com/pybind/pybind11/pull/5291>`_
Version 2.13.6 (September 13, 2024)
-----------------------------------
New Features:
* A new ``self._pybind11_conduit_v1_()`` method is automatically added to all
``py::class_``-wrapped types, to enable type-safe interoperability between
different independent Python/C++ bindings systems, including pybind11
versions with different ``PYBIND11_INTERNALS_VERSION``'s. Supported on
pybind11 2.11.2, 2.12.1, and 2.13.6+.
`#5296 <https://github.com/pybind/pybind11/pull/5296>`_
Bug fixes:
* Using ``__cpp_nontype_template_args`` instead of ``__cpp_nontype_template_parameter_class``.
`#5330 <https://github.com/pybind/pybind11/pull/5330>`_
* Properly translate C++ exception to Python exception when creating Python buffer from wrapped object.
`#5324 <https://github.com/pybind/pybind11/pull/5324>`_
Documentation:
* Adds an answer (FAQ) for "What is a highly conclusive and simple way to find memory leaks?".
`#5340 <https://github.com/pybind/pybind11/pull/5340>`_
Version 2.13.5 (August 22, 2024)
--------------------------------
Bug fixes:
* Fix includes when using Windows long paths (``\\?\`` prefix).
`#5321 <https://github.com/pybind/pybind11/pull/5321>`_
* Support ``-Wpedantic`` in C++20 mode.
`#5322 <https://github.com/pybind/pybind11/pull/5322>`_
* Fix and test ``<ranges>`` support for ``py::tuple`` and ``py::list``.
`#5314 <https://github.com/pybind/pybind11/pull/5314>`_
Version 2.13.4 (August 14, 2024)
--------------------------------
Bug fixes:
* Fix paths with spaces, including on Windows.
(Replaces regression from `#5302 <https://github.com/pybind/pybind11/pull/5302>`_)
`#4874 <https://github.com/pybind/pybind11/pull/4874>`_
Documentation:
* Remove repetitive words.
`#5308 <https://github.com/pybind/pybind11/pull/5308>`_
Version 2.13.3 (August 13, 2024)
--------------------------------
Bug fixes:
* Quote paths from pybind11-config
`#5302 <https://github.com/pybind/pybind11/pull/5302>`_
* Fix typo in Emscripten support when in config mode (CMake)
`#5301 <https://github.com/pybind/pybind11/pull/5301>`_
Version 2.13.2 (August 13, 2024)
--------------------------------
New Features:
* A ``pybind11::detail::type_caster_std_function_specializations`` feature was added, to support specializations for
``std::function``'s with return types that require custom to-Python conversion behavior (to primary use case is to catch and
convert exceptions).
`#4597 <https://github.com/pybind/pybind11/pull/4597>`_
Changes:
* Use ``PyMutex`` instead of ``std::mutex`` for internal locking in the free-threaded build.
`#5219 <https://github.com/pybind/pybind11/pull/5219>`_
* Add a special type annotation for C++ empty tuple.
`#5214 <https://github.com/pybind/pybind11/pull/5214>`_
* When compiling for WebAssembly, add the required exception flags (CMake 3.13+).
`#5298 <https://github.com/pybind/pybind11/pull/5298>`_
Bug fixes:
* Make ``gil_safe_call_once_and_store`` thread-safe in free-threaded CPython.
`#5246 <https://github.com/pybind/pybind11/pull/5246>`_
* A missing ``#include <algorithm>`` in pybind11/typing.h was added to fix build errors (in case user code does not already depend
on that include).
`#5208 <https://github.com/pybind/pybind11/pull/5208>`_
* Fix regression introduced in #5201 for GCC<10.3 in C++20 mode.
`#5205 <https://github.com/pybind/pybind11/pull/5205>`_
.. fix(cmake)
* Remove extra = when assigning flto value in the case for Clang in CMake.
`#5207 <https://github.com/pybind/pybind11/pull/5207>`_
Tests:
* Adding WASM testing to our CI (Pyodide / Emscripten via scikit-build-core).
`#4745 <https://github.com/pybind/pybind11/pull/4745>`_
* clang-tidy (in GitHub Actions) was updated from clang 15 to clang 18.
`#5272 <https://github.com/pybind/pybind11/pull/5272>`_
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
Version 2.13.1 (June 26, 2024)
------------------------------
New Features:
* Add support for ``Typing.Callable[..., T]``.
`#5202 <https://github.com/pybind/pybind11/pull/5202>`_
Bug fixes:
* Avoid aligned allocation in free-threaded build in order to support macOS
versions before 10.14.
`#5200 <https://github.com/pybind/pybind11/pull/5200>`_
Version 2.13.0 (June 25, 2024)
------------------------------
New Features:
* Support free-threaded CPython (3.13t). Add ``py::mod_gil_not_used()`` tag to
indicate if a module supports running with the GIL disabled.
`#5148 <https://github.com/pybind/pybind11/pull/5148>`_
* Support for Python 3.6 was removed. (Official end-of-life: 2021-12-23).
`#5177 <https://github.com/pybind/pybind11/pull/5177>`_
* ``py::list`` gained a ``.clear()`` method.
`#5153 <https://github.com/pybind/pybind11/pull/5153>`_
.. feat(types)
* Support for ``Union``, ``Optional``, ``type[T]``, ``typing.TypeGuard``,
``typing.TypeIs``, ``typing.Never``, ``typing.NoReturn`` and
``typing.Literal`` was added to ``pybind11/typing.h``.
`#5166 <https://github.com/pybind/pybind11/pull/5166>`_
`#5165 <https://github.com/pybind/pybind11/pull/5165>`_
`#5194 <https://github.com/pybind/pybind11/pull/5194>`_
`#5193 <https://github.com/pybind/pybind11/pull/5193>`_
`#5192 <https://github.com/pybind/pybind11/pull/5192>`_
.. feat(cmake)
* In CMake, if ``PYBIND11_USE_CROSSCOMPILING`` is enabled, then
``CMAKE_CROSSCOMPILING`` will be respected and will keep pybind11 from
accessing the interpreter during configuration. Several CMake variables will
be required in this case, but can be deduced from the environment variable
``SETUPTOOLS_EXT_SUFFIX``. The default (currently ``OFF``) may be changed in
the future.
`#5083 <https://github.com/pybind/pybind11/pull/5083>`_
Bug fixes:
* A refcount bug (leading to heap-use-after-free) involving trampoline
functions with ``PyObject *`` return type was fixed.
`#5156 <https://github.com/pybind/pybind11/pull/5156>`_
* Return ``py::ssize_t`` from ``.ref_count()`` instead of ``int``.
`#5139 <https://github.com/pybind/pybind11/pull/5139>`_
* A subtle bug involving C++ types with unusual ``operator&`` overrides
was fixed.
`#5189 <https://github.com/pybind/pybind11/pull/5189>`_
* Support Python 3.13 with minor fix, add to CI.
`#5127 <https://github.com/pybind/pybind11/pull/5127>`_
.. fix(cmake)
* Fix mistake affecting old cmake and old boost.
`#5149 <https://github.com/pybind/pybind11/pull/5149>`_
Documentation:
* Build docs updated to feature scikit-build-core and meson-python, and updated
setuptools instructions.
`#5168 <https://github.com/pybind/pybind11/pull/5168>`_
Tests:
* Avoid immortal objects in tests.
`#5150 <https://github.com/pybind/pybind11/pull/5150>`_
CI:
* Compile against Python 3.13t in CI.
* Use ``macos-13`` (Intel) for CI jobs for now (will drop Python 3.7 soon).
`#5109 <https://github.com/pybind/pybind11/pull/5109>`_
* Releases now have artifact attestations, visible at
https://github.com/pybind/pybind11/attestations.
`#5196 <https://github.com/pybind/pybind11/pull/5196>`_
Other:
* Some cleanup in preparation for 3.13 support.
`#5137 <https://github.com/pybind/pybind11/pull/5137>`_
* Avoid a warning by ensuring an iterator end check is included in release mode.
`#5129 <https://github.com/pybind/pybind11/pull/5129>`_
* Bump max cmake to 3.29.
`#5075 <https://github.com/pybind/pybind11/pull/5075>`_
* Update docs and noxfile.
`#5071 <https://github.com/pybind/pybind11/pull/5071>`_
2024-09-14 19:38:30 +02:00
Version 2.12.1 (September 13, 2024)
-----------------------------------
New Features:
* A new ``self._pybind11_conduit_v1_()`` method is automatically added to all
``py::class_``-wrapped types, to enable type-safe interoperability between
different independent Python/C++ bindings systems, including pybind11
versions with different ``PYBIND11_INTERNALS_VERSION``'s. Supported on
pybind11 2.11.2, 2.12.1, and 2.13.6+.
`#5296 <https://github.com/pybind/pybind11/pull/5296>`_
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
Version 2.12.0 (March 27, 2024)
-------------------------------
New Features:
* ``pybind11`` now supports compiling for
`NumPy 2 <https://numpy.org/devdocs/numpy_2_0_migration_guide.html>`_. Most
code shouldn't change (see :ref:`upgrade-guide-2.12` for details). However,
if you experience issues you can define ``PYBIND11_NUMPY_1_ONLY`` to disable
the new support for now, but this will be removed in the future.
`#5050 <https://github.com/pybind/pybind11/pull/5050>`_
* ``pybind11/gil_safe_call_once.h`` was added (it needs to be included
explicitly). The primary use case is GIL-safe initialization of C++
``static`` variables.
`#4877 <https://github.com/pybind/pybind11/pull/4877>`_
* Support move-only iterators in ``py::make_iterator``,
``py::make_key_iterator``, ``py::make_value_iterator``.
`#4834 <https://github.com/pybind/pybind11/pull/4834>`_
* Two simple ``py::set_error()`` functions were added and the documentation was
updated accordingly. In particular, ``py::exception<>::operator()`` was
deprecated (use one of the new functions instead). The documentation for
``py::exception<>`` was further updated to not suggest code that may result
in undefined behavior.
`#4772 <https://github.com/pybind/pybind11/pull/4772>`_
Bug fixes:
* Removes potential for Undefined Behavior during process teardown.
`#4897 <https://github.com/pybind/pybind11/pull/4897>`_
* Improve compatibility with the nvcc compiler (especially CUDA 12.1/12.2).
`#4893 <https://github.com/pybind/pybind11/pull/4893>`_
* ``pybind11/numpy.h`` now imports NumPy's ``multiarray`` and ``_internal``
submodules with paths depending on the installed version of NumPy (for
compatibility with NumPy 2).
`#4857 <https://github.com/pybind/pybind11/pull/4857>`_
* Builtins collections names in docstrings are now consistently rendered in
lowercase (list, set, dict, tuple), in accordance with PEP 585.
`#4833 <https://github.com/pybind/pybind11/pull/4833>`_
* Added ``py::typing::Iterator<T>``, ``py::typing::Iterable<T>``.
`#4832 <https://github.com/pybind/pybind11/pull/4832>`_
* Render ``py::function`` as ``Callable`` in docstring.
`#4829 <https://github.com/pybind/pybind11/pull/4829>`_
* Also bump ``PYBIND11_INTERNALS_VERSION`` for MSVC, which unlocks two new
features without creating additional incompatibilities.
`#4819 <https://github.com/pybind/pybind11/pull/4819>`_
* Guard against crashes/corruptions caused by modules built with different MSVC
versions.
`#4779 <https://github.com/pybind/pybind11/pull/4779>`_
* A long-standing bug in the handling of Python multiple inheritance was fixed.
See PR #4762 for the rather complex details.
`#4762 <https://github.com/pybind/pybind11/pull/4762>`_
* Fix ``bind_map`` with ``using`` declarations.
`#4952 <https://github.com/pybind/pybind11/pull/4952>`_
* Qualify ``py::detail::concat`` usage to avoid ADL selecting one from
somewhere else, such as modernjson's concat.
`#4955 <https://github.com/pybind/pybind11/pull/4955>`_
* Use new PyCode API on Python 3.12+.
`#4916 <https://github.com/pybind/pybind11/pull/4916>`_
* Minor cleanup from warnings reported by Clazy.
`#4988 <https://github.com/pybind/pybind11/pull/4988>`_
* Remove typing and duplicate ``class_`` for ``KeysView``/``ValuesView``/``ItemsView``.
`#4985 <https://github.com/pybind/pybind11/pull/4985>`_
* Use ``PyObject_VisitManagedDict()`` and ``PyObject_ClearManagedDict()`` on Python 3.13 and newer.
`#4973 <https://github.com/pybind/pybind11/pull/4973>`_
* Update ``make_static_property_type()`` to make it compatible with Python 3.13.
`#4971 <https://github.com/pybind/pybind11/pull/4971>`_
.. fix(types)
* Render typed iterators for ``make_iterator``, ``make_key_iterator``,
``make_value_iterator``.
`#4876 <https://github.com/pybind/pybind11/pull/4876>`_
* Add several missing type name specializations.
`#5073 <https://github.com/pybind/pybind11/pull/5073>`_
* Change docstring render for ``py::buffer``, ``py::sequence`` and
``py::handle`` (to ``Buffer``, ``Sequence``, ``Any``).
`#4831 <https://github.com/pybind/pybind11/pull/4831>`_
* Fixed ``base_enum.__str__`` docstring.
`#4827 <https://github.com/pybind/pybind11/pull/4827>`_
* Enforce single line docstring signatures.
`#4735 <https://github.com/pybind/pybind11/pull/4735>`_
* Special 'typed' wrappers now available in ``typing.h`` to annotate tuple, dict,
list, set, and function.
`#4259 <https://github.com/pybind/pybind11/pull/4259>`_
* Create ``handle_type_name`` specialization to type-hint variable length tuples.
`#5051 <https://github.com/pybind/pybind11/pull/5051>`_
.. fix(build)
* Setting ``PYBIND11_FINDPYTHON`` to OFF will force the old FindPythonLibs mechanism to be used.
`#5042 <https://github.com/pybind/pybind11/pull/5042>`_
* Skip empty ``PYBIND11_PYTHON_EXECUTABLE_LAST`` for the first cmake run.
`#4856 <https://github.com/pybind/pybind11/pull/4856>`_
* Fix FindPython mode exports & avoid ``pkg_resources`` if
``importlib.metadata`` available.
`#4941 <https://github.com/pybind/pybind11/pull/4941>`_
* ``Python_ADDITIONAL_VERSIONS`` (classic search) now includes 3.12.
`#4909 <https://github.com/pybind/pybind11/pull/4909>`_
* ``pybind11.pc`` is now relocatable by default as long as install destinations
are not absolute paths.
`#4830 <https://github.com/pybind/pybind11/pull/4830>`_
* Correctly detect CMake FindPython removal when used as a subdirectory.
`#4806 <https://github.com/pybind/pybind11/pull/4806>`_
* Don't require the libs component on CMake 3.18+ when using
PYBIND11_FINDPYTHON (fixes manylinux builds).
`#4805 <https://github.com/pybind/pybind11/pull/4805>`_
* ``pybind11_strip`` is no longer automatically applied when
``CMAKE_BUILD_TYPE`` is unset.
`#4780 <https://github.com/pybind/pybind11/pull/4780>`_
* Support ``DEBUG_POSFIX`` correctly for debug builds.
`#4761 <https://github.com/pybind/pybind11/pull/4761>`_
* Hardcode lto/thin lto for Emscripten cross-compiles.
`#4642 <https://github.com/pybind/pybind11/pull/4642>`_
* Upgrade maximum supported CMake version to 3.27 to fix CMP0148 warnings.
`#4786 <https://github.com/pybind/pybind11/pull/4786>`_
Documentation:
* Small fix to grammar in ``functions.rst``.
`#4791 <https://github.com/pybind/pybind11/pull/4791>`_
* Remove upper bound in example pyproject.toml for setuptools.
`#4774 <https://github.com/pybind/pybind11/pull/4774>`_
CI:
* CI: Update NVHPC to 23.5 and Ubuntu 20.04.
`#4764 <https://github.com/pybind/pybind11/pull/4764>`_
* Test on PyPy 3.10.
`#4714 <https://github.com/pybind/pybind11/pull/4714>`_
Other:
* Use Ruff formatter instead of Black.
`#4912 <https://github.com/pybind/pybind11/pull/4912>`_
* An ``assert()`` was added to help Coverty avoid generating a false positive.
`#4817 <https://github.com/pybind/pybind11/pull/4817>`_
2024-09-14 19:38:30 +02:00
Version 2.11.2 (September 13, 2024)
-----------------------------------
New Features:
* A new ``self._pybind11_conduit_v1_()`` method is automatically added to all
``py::class_``-wrapped types, to enable type-safe interoperability between
different independent Python/C++ bindings systems, including pybind11
versions with different ``PYBIND11_INTERNALS_VERSION``'s. Supported on
pybind11 2.11.2, 2.12.1, and 2.13.6+.
`#5296 <https://github.com/pybind/pybind11/pull/5296>`_
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
Version 2.11.1 (July 17, 2023)
------------------------------
Changes:
* ``PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF`` is now provided as an option
for disabling the default-on ``PyGILState_Check()``'s in
``pybind11::handle``'s ``inc_ref()`` & ``dec_ref()``.
`#4753 <https://github.com/pybind/pybind11/pull/4753>`_
* ``PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF`` was disabled for PyPy in general
(not just PyPy Windows).
`#4751 <https://github.com/pybind/pybind11/pull/4751>`_
Version 2.11.0 (July 14, 2023)
------------------------------
New features:
* The newly added ``pybind11::detail::is_move_constructible`` trait can be
specialized for cases in which ``std::is_move_constructible`` does not work
as needed. This is very similar to the long-established
``pybind11::detail::is_copy_constructible``.
`#4631 <https://github.com/pybind/pybind11/pull/4631>`_
* Introduce ``recursive_container_traits``.
`#4623 <https://github.com/pybind/pybind11/pull/4623>`_
* ``pybind11/type_caster_pyobject_ptr.h`` was added to support automatic
wrapping of APIs that make use of ``PyObject *``. This header needs to
included explicitly (i.e. it is not included implicitly
with ``pybind/pybind11.h``).
`#4601 <https://github.com/pybind/pybind11/pull/4601>`_
* ``format_descriptor<>`` & ``npy_format_descriptor<>`` ``PyObject *``
specializations were added. The latter enables ``py::array_t<PyObject *>``
to/from-python conversions.
`#4674 <https://github.com/pybind/pybind11/pull/4674>`_
* ``buffer_info`` gained an ``item_type_is_equivalent_to<T>()`` member
function.
`#4674 <https://github.com/pybind/pybind11/pull/4674>`_
* The ``capsule`` API gained a user-friendly constructor
(``py::capsule(ptr, "name", dtor)``).
`#4720 <https://github.com/pybind/pybind11/pull/4720>`_
Changes:
* ``PyGILState_Check()``'s in ``pybind11::handle``'s ``inc_ref()`` &
``dec_ref()`` are now enabled by default again.
`#4246 <https://github.com/pybind/pybind11/pull/4246>`_
* ``py::initialize_interpreter()`` using ``PyConfig_InitPythonConfig()``
instead of ``PyConfig_InitIsolatedConfig()``, to obtain complete
``sys.path``.
`#4473 <https://github.com/pybind/pybind11/pull/4473>`_
* Cast errors now always include Python type information, even if
``PYBIND11_DETAILED_ERROR_MESSAGES`` is not defined. This increases binary
sizes slightly (~1.5%) but the error messages are much more informative.
`#4463 <https://github.com/pybind/pybind11/pull/4463>`_
* The docstring generation for the ``std::array``-list caster was fixed.
Previously, signatures included the size of the list in a non-standard,
non-spec compliant way. The new format conforms to PEP 593.
**Tooling for processing the docstrings may need to be updated accordingly.**
`#4679 <https://github.com/pybind/pybind11/pull/4679>`_
* Setter return values (which are inaccessible for all practical purposes) are
no longer converted to Python (only to be discarded).
`#4621 <https://github.com/pybind/pybind11/pull/4621>`_
* Allow lambda specified to function definition to be ``noexcept(true)``
in C++17.
`#4593 <https://github.com/pybind/pybind11/pull/4593>`_
* Get rid of recursive template instantiations for concatenating type
signatures on C++17 and higher.
`#4587 <https://github.com/pybind/pybind11/pull/4587>`_
* Compatibility with Python 3.12 (beta). Note that the minimum pybind11
ABI version for Python 3.12 is version 5. (The default ABI version
for Python versions up to and including 3.11 is still version 4.).
`#4570 <https://github.com/pybind/pybind11/pull/4570>`_
* With ``PYBIND11_INTERNALS_VERSION 5`` (default for Python 3.12+), MSVC builds
use ``std::hash<std::type_index>`` and ``std::equal_to<std::type_index>``
instead of string-based type comparisons. This resolves issues when binding
types defined in the unnamed namespace.
`#4319 <https://github.com/pybind/pybind11/pull/4319>`_
* Python exception ``__notes__`` (introduced with Python 3.11) are now added to
the ``error_already_set::what()`` output.
`#4678 <https://github.com/pybind/pybind11/pull/4678>`_
Build system improvements:
* CMake 3.27 support was added, CMake 3.4 support was dropped.
FindPython will be used if ``FindPythonInterp`` is not present.
`#4719 <https://github.com/pybind/pybind11/pull/4719>`_
* Update clang-tidy to 15 in CI.
`#4387 <https://github.com/pybind/pybind11/pull/4387>`_
* Moved the linting framework over to Ruff.
`#4483 <https://github.com/pybind/pybind11/pull/4483>`_
* Skip ``lto`` checks and target generation when
``CMAKE_INTERPROCEDURAL_OPTIMIZATION`` is defined.
`#4643 <https://github.com/pybind/pybind11/pull/4643>`_
* No longer inject ``-stdlib=libc++``, not needed for modern Pythons
(macOS 10.9+).
`#4639 <https://github.com/pybind/pybind11/pull/4639>`_
* PyPy 3.10 support was added, PyPy 3.7 support was dropped.
`#4728 <https://github.com/pybind/pybind11/pull/4728>`_
* Testing with Python 3.12 beta releases was added.
`#4713 <https://github.com/pybind/pybind11/pull/4713>`_
Version 2.10.4 (Mar 16, 2023)
-----------------------------
Changes:
* ``python3 -m pybind11`` gained a ``--version`` option (prints the version and
exits).
`#4526 <https://github.com/pybind/pybind11/pull/4526>`_
Bug Fixes:
* Fix a warning when pydebug is enabled on Python 3.11.
`#4461 <https://github.com/pybind/pybind11/pull/4461>`_
* Ensure ``gil_scoped_release`` RAII is non-copyable.
`#4490 <https://github.com/pybind/pybind11/pull/4490>`_
* Ensure the tests dir does not show up with new versions of setuptools.
`#4510 <https://github.com/pybind/pybind11/pull/4510>`_
* Better stacklevel for a warning in setuptools helpers.
`#4516 <https://github.com/pybind/pybind11/pull/4516>`_
Version 2.10.3 (Jan 3, 2023)
----------------------------
Changes:
* Temporarily made our GIL status assertions (added in 2.10.2) disabled by
default (re-enable manually by defining
``PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF``, will be enabled in 2.11).
`#4432 <https://github.com/pybind/pybind11/pull/4432>`_
* Improved error messages when ``inc_ref``/``dec_ref`` are called with an
invalid GIL state.
`#4427 <https://github.com/pybind/pybind11/pull/4427>`_
`#4436 <https://github.com/pybind/pybind11/pull/4436>`_
Bug Fixes:
* Some minor touchups found by static analyzers.
`#4440 <https://github.com/pybind/pybind11/pull/4440>`_
Version 2.10.2 (Dec 20, 2022)
-----------------------------
Changes:
* ``scoped_interpreter`` constructor taking ``PyConfig``.
`#4330 <https://github.com/pybind/pybind11/pull/4330>`_
* ``pybind11/eigen/tensor.h`` adds converters to and from ``Eigen::Tensor`` and
``Eigen::TensorMap``.
`#4201 <https://github.com/pybind/pybind11/pull/4201>`_
* ``PyGILState_Check()``'s were integrated to ``pybind11::handle``
``inc_ref()`` & ``dec_ref()``. The added GIL checks are guarded by
``PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF``, which is the default only if
``NDEBUG`` is not defined. (Made non-default in 2.10.3, will be active in 2.11)
`#4246 <https://github.com/pybind/pybind11/pull/4246>`_
* Add option for enable/disable enum members in docstring.
`#2768 <https://github.com/pybind/pybind11/pull/2768>`_
* Fixed typing of ``KeysView``, ``ValuesView`` and ``ItemsView`` in ``bind_map``.
`#4353 <https://github.com/pybind/pybind11/pull/4353>`_
Bug fixes:
* Bug fix affecting only Python 3.6 under very specific, uncommon conditions:
move ``PyEval_InitThreads()`` call to the correct location.
`#4350 <https://github.com/pybind/pybind11/pull/4350>`_
* Fix segfault bug when passing foreign native functions to functional.h.
`#4254 <https://github.com/pybind/pybind11/pull/4254>`_
Build system improvements:
* Support setting PYTHON_LIBRARIES manually for Windows ARM cross-compilation
(classic mode).
`#4406 <https://github.com/pybind/pybind11/pull/4406>`_
* Extend IPO/LTO detection for ICX (a.k.a IntelLLVM) compiler.
`#4402 <https://github.com/pybind/pybind11/pull/4402>`_
* Allow calling ``find_package(pybind11 CONFIG)`` multiple times from separate
directories in the same CMake project and properly link Python (new mode).
`#4401 <https://github.com/pybind/pybind11/pull/4401>`_
* ``multiprocessing_set_spawn`` in pytest fixture for added safety.
`#4377 <https://github.com/pybind/pybind11/pull/4377>`_
* Fixed a bug in two pybind11/tools cmake scripts causing "Unknown arguments specified" errors.
`#4327 <https://github.com/pybind/pybind11/pull/4327>`_
Version 2.10.1 (Oct 31, 2022)
-----------------------------
This is the first version to fully support embedding the newly released Python 3.11.
Changes:
* Allow ``pybind11::capsule`` constructor to take null destructor pointers.
`#4221 <https://github.com/pybind/pybind11/pull/4221>`_
* ``embed.h`` was changed so that ``PYTHONPATH`` is used also with Python 3.11
(established behavior).
`#4119 <https://github.com/pybind/pybind11/pull/4119>`_
* A ``PYBIND11_SIMPLE_GIL_MANAGEMENT`` option was added (cmake, C++ define),
along with many additional tests in ``test_gil_scoped.py``. The option may be
useful to try when debugging GIL-related issues, to determine if the more
complex default implementation is or is not to blame. See #4216 for
background. WARNING: Please be careful to not create ODR violations when
using the option: everything that is linked together with mutual symbol
visibility needs to be rebuilt.
`#4216 <https://github.com/pybind/pybind11/pull/4216>`_
* ``PYBIND11_EXPORT_EXCEPTION`` was made non-empty only under macOS. This makes
Linux builds safer, and enables the removal of warning suppression pragmas for
Windows.
`#4298 <https://github.com/pybind/pybind11/pull/4298>`_
Bug fixes:
* Fixed a bug where ``UnicodeDecodeError`` was not propagated from various
``py::str`` ctors when decoding surrogate utf characters.
`#4294 <https://github.com/pybind/pybind11/pull/4294>`_
* Revert perfect forwarding for ``make_iterator``. This broke at least one
valid use case. May revisit later.
`#4234 <https://github.com/pybind/pybind11/pull/4234>`_
* Fix support for safe casts to ``void*`` (regression in 2.10.0).
`#4275 <https://github.com/pybind/pybind11/pull/4275>`_
* Fix ``char8_t`` support (regression in 2.9).
`#4278 <https://github.com/pybind/pybind11/pull/4278>`_
* Unicode surrogate character in Python exception message leads to process
termination in ``error_already_set::what()``.
`#4297 <https://github.com/pybind/pybind11/pull/4297>`_
* Fix MSVC 2019 v.1924 & C++14 mode error for ``overload_cast``.
`#4188 <https://github.com/pybind/pybind11/pull/4188>`_
* Make augmented assignment operators non-const for the object-api. Behavior
was previously broken for augmented assignment operators.
`#4065 <https://github.com/pybind/pybind11/pull/4065>`_
* Add proper error checking to C++ bindings for Python list append and insert.
`#4208 <https://github.com/pybind/pybind11/pull/4208>`_
* Work-around for Nvidia's CUDA nvcc compiler in versions 11.4.0 - 11.8.0.
`#4220 <https://github.com/pybind/pybind11/pull/4220>`_
* A workaround for PyPy was added in the ``py::error_already_set``
implementation, related to PR `#1895 <https://github.com/pybind/pybind11/pull/1895>`_
released with v2.10.0.
`#4079 <https://github.com/pybind/pybind11/pull/4079>`_
* Fixed compiler errors when C++23 ``std::forward_like`` is available.
`#4136 <https://github.com/pybind/pybind11/pull/4136>`_
* Properly raise exceptions in contains methods (like when an object in unhashable).
`#4209 <https://github.com/pybind/pybind11/pull/4209>`_
* Further improve another error in exception handling.
`#4232 <https://github.com/pybind/pybind11/pull/4232>`_
* ``get_local_internals()`` was made compatible with
``finalize_interpreter()``, fixing potential freezes during interpreter
finalization.
`#4192 <https://github.com/pybind/pybind11/pull/4192>`_
Performance and style:
* Reserve space in set and STL map casters if possible. This will prevent
unnecessary rehashing / resizing by knowing the number of keys ahead of time
for Python to C++ casting. This improvement will greatly speed up the casting
of large unordered maps and sets.
`#4194 <https://github.com/pybind/pybind11/pull/4194>`_
* GIL RAII scopes are non-copyable to avoid potential bugs.
`#4183 <https://github.com/pybind/pybind11/pull/4183>`_
* Explicitly default all relevant ctors for pytypes in the ``PYBIND11_OBJECT``
macros and enforce the clang-tidy checks ``modernize-use-equals-default`` in
macros as well.
`#4017 <https://github.com/pybind/pybind11/pull/4017>`_
* Optimize iterator advancement in C++ bindings.
`#4237 <https://github.com/pybind/pybind11/pull/4237>`_
* Use the modern ``PyObject_GenericGetDict`` and ``PyObject_GenericSetDict``
for handling dynamic attribute dictionaries.
`#4106 <https://github.com/pybind/pybind11/pull/4106>`_
* Document that users should use ``PYBIND11_NAMESPACE`` instead of using ``pybind11`` when
opening namespaces. Using namespace declarations and namespace qualification
remain the same as ``pybind11``. This is done to ensure consistent symbol
visibility.
`#4098 <https://github.com/pybind/pybind11/pull/4098>`_
* Mark ``detail::forward_like`` as constexpr.
`#4147 <https://github.com/pybind/pybind11/pull/4147>`_
* Optimize unpacking_collector when processing ``arg_v`` arguments.
`#4219 <https://github.com/pybind/pybind11/pull/4219>`_
* Optimize casting C++ object to ``None``.
`#4269 <https://github.com/pybind/pybind11/pull/4269>`_
Build system improvements:
* CMake: revert overwrite behavior, now opt-in with ``PYBIND11_PYTHONLIBS_OVERRWRITE OFF``.
`#4195 <https://github.com/pybind/pybind11/pull/4195>`_
* Include a pkg-config file when installing pybind11, such as in the Python
package.
`#4077 <https://github.com/pybind/pybind11/pull/4077>`_
* Avoid stripping debug symbols when ``CMAKE_BUILD_TYPE`` is set to ``DEBUG``
instead of ``Debug``.
`#4078 <https://github.com/pybind/pybind11/pull/4078>`_
* Followup to `#3948 <https://github.com/pybind/pybind11/pull/3948>`_, fixing vcpkg again.
`#4123 <https://github.com/pybind/pybind11/pull/4123>`_
Version 2.10.0 (Jul 15, 2022)
-----------------------------
Removed support for Python 2.7, Python 3.5, and MSVC 2015. Support for MSVC
2017 is limited due to availability of CI runners; we highly recommend MSVC
2019 or 2022 be used. Initial support added for Python 3.11.
New features:
* ``py::anyset`` & ``py::frozenset`` were added, with copying (cast) to
``std::set`` (similar to ``set``).
`#3901 <https://github.com/pybind/pybind11/pull/3901>`_
* Support bytearray casting to string.
`#3707 <https://github.com/pybind/pybind11/pull/3707>`_
* ``type_caster<std::monostate>`` was added. ``std::monostate`` is a tag type
that allows ``std::variant`` to act as an optional, or allows default
construction of a ``std::variant`` holding a non-default constructible type.
`#3818 <https://github.com/pybind/pybind11/pull/3818>`_
* ``pybind11::capsule::set_name`` added to mutate the name of the capsule instance.
`#3866 <https://github.com/pybind/pybind11/pull/3866>`_
* NumPy: dtype constructor from type number added, accessors corresponding to
Python API ``dtype.num``, ``dtype.byteorder``, ``dtype.flags`` and
``dtype.alignment`` added.
`#3868 <https://github.com/pybind/pybind11/pull/3868>`_
Changes:
* Python 3.6 is now the minimum supported version.
`#3688 <https://github.com/pybind/pybind11/pull/3688>`_
`#3719 <https://github.com/pybind/pybind11/pull/3719>`_
* The minimum version for MSVC is now 2017.
`#3722 <https://github.com/pybind/pybind11/pull/3722>`_
* Fix issues with CPython 3.11 betas and add to supported test matrix.
`#3923 <https://github.com/pybind/pybind11/pull/3923>`_
* ``error_already_set`` is now safer and more performant, especially for
exceptions with long tracebacks, by delaying computation.
`#1895 <https://github.com/pybind/pybind11/pull/1895>`_
* Improve exception handling in python ``str`` bindings.
`#3826 <https://github.com/pybind/pybind11/pull/3826>`_
* The bindings for capsules now have more consistent exception handling.
`#3825 <https://github.com/pybind/pybind11/pull/3825>`_
* ``PYBIND11_OBJECT_CVT`` and ``PYBIND11_OBJECT_CVT_DEFAULT`` macro can now be
used to define classes in namespaces other than pybind11.
`#3797 <https://github.com/pybind/pybind11/pull/3797>`_
* Error printing code now uses ``PYBIND11_DETAILED_ERROR_MESSAGES`` instead of
requiring ``NDEBUG``, allowing use with release builds if desired.
`#3913 <https://github.com/pybind/pybind11/pull/3913>`_
* Implicit conversion of the literal ``0`` to ``pybind11::handle`` is now disabled.
`#4008 <https://github.com/pybind/pybind11/pull/4008>`_
Bug fixes:
* Fix exception handling when ``pybind11::weakref()`` fails.
`#3739 <https://github.com/pybind/pybind11/pull/3739>`_
* ``module_::def_submodule`` was missing proper error handling. This is fixed now.
`#3973 <https://github.com/pybind/pybind11/pull/3973>`_
* The behavior or ``error_already_set`` was made safer and the highly opaque
"Unknown internal error occurred" message was replaced with a more helpful
message.
`#3982 <https://github.com/pybind/pybind11/pull/3982>`_
* ``error_already_set::what()`` now handles non-normalized exceptions correctly.
`#3971 <https://github.com/pybind/pybind11/pull/3971>`_
* Support older C++ compilers where filesystem is not yet part of the standard
library and is instead included in ``std::experimental::filesystem``.
`#3840 <https://github.com/pybind/pybind11/pull/3840>`_
* Fix ``-Wfree-nonheap-object`` warnings produced by GCC by avoiding returning
pointers to static objects with ``return_value_policy::take_ownership``.
`#3946 <https://github.com/pybind/pybind11/pull/3946>`_
* Fix cast from pytype rvalue to another pytype.
`#3949 <https://github.com/pybind/pybind11/pull/3949>`_
* Ensure proper behavior when garbage collecting classes with dynamic attributes in Python >=3.9.
`#4051 <https://github.com/pybind/pybind11/pull/4051>`_
* A couple long-standing ``PYBIND11_NAMESPACE``
``__attribute__((visibility("hidden")))`` inconsistencies are now fixed
(affects only unusual environments).
`#4043 <https://github.com/pybind/pybind11/pull/4043>`_
* ``pybind11::detail::get_internals()`` is now resilient to in-flight Python
exceptions.
`#3981 <https://github.com/pybind/pybind11/pull/3981>`_
* Arrays with a dimension of size 0 are now properly converted to dynamic Eigen
matrices (more common in NumPy 1.23).
`#4038 <https://github.com/pybind/pybind11/pull/4038>`_
* Avoid catching unrelated errors when importing NumPy.
`#3974 <https://github.com/pybind/pybind11/pull/3974>`_
Performance and style:
* Added an accessor overload of ``(object &&key)`` to reference steal the
object when using python types as keys. This prevents unnecessary reference
count overhead for attr, dictionary, tuple, and sequence look ups. Added
additional regression tests. Fixed a performance bug the caused accessor
assignments to potentially perform unnecessary copies.
`#3970 <https://github.com/pybind/pybind11/pull/3970>`_
* Perfect forward all args of ``make_iterator``.
`#3980 <https://github.com/pybind/pybind11/pull/3980>`_
* Avoid potential bug in pycapsule destructor by adding an ``error_guard`` to
one of the dtors.
`#3958 <https://github.com/pybind/pybind11/pull/3958>`_
* Optimize dictionary access in ``strip_padding`` for numpy.
`#3994 <https://github.com/pybind/pybind11/pull/3994>`_
* ``stl_bind.h`` bindings now take slice args as a const-ref.
`#3852 <https://github.com/pybind/pybind11/pull/3852>`_
* Made slice constructor more consistent, and improve performance of some
casters by allowing reference stealing.
`#3845 <https://github.com/pybind/pybind11/pull/3845>`_
* Change numpy dtype from_args method to use const ref.
`#3878 <https://github.com/pybind/pybind11/pull/3878>`_
* Follow rule of three to ensure ``PyErr_Restore`` is called only once.
`#3872 <https://github.com/pybind/pybind11/pull/3872>`_
* Added missing perfect forwarding for ``make_iterator`` functions.
`#3860 <https://github.com/pybind/pybind11/pull/3860>`_
* Optimize c++ to python function casting by using the rvalue caster.
`#3966 <https://github.com/pybind/pybind11/pull/3966>`_
* Optimize Eigen sparse matrix casting by removing unnecessary temporary.
`#4064 <https://github.com/pybind/pybind11/pull/4064>`_
* Avoid potential implicit copy/assignment constructors causing double free in
``strdup_gaurd``.
`#3905 <https://github.com/pybind/pybind11/pull/3905>`_
* Enable clang-tidy checks ``misc-definitions-in-headers``,
``modernize-loop-convert``, and ``modernize-use-nullptr``.
`#3881 <https://github.com/pybind/pybind11/pull/3881>`_
`#3988 <https://github.com/pybind/pybind11/pull/3988>`_
Build system improvements:
* CMake: Fix file extension on Windows with cp36 and cp37 using FindPython.
`#3919 <https://github.com/pybind/pybind11/pull/3919>`_
* CMake: Support multiple Python targets (such as on vcpkg).
`#3948 <https://github.com/pybind/pybind11/pull/3948>`_
* CMake: Fix issue with NVCC on Windows.
`#3947 <https://github.com/pybind/pybind11/pull/3947>`_
* CMake: Drop the bitness check on cross compiles (like targeting WebAssembly
via Emscripten).
`#3959 <https://github.com/pybind/pybind11/pull/3959>`_
* Add MSVC builds in debug mode to CI.
`#3784 <https://github.com/pybind/pybind11/pull/3784>`_
* MSVC 2022 C++20 coverage was added to GitHub Actions, including Eigen.
`#3732 <https://github.com/pybind/pybind11/pull/3732>`_,
`#3741 <https://github.com/pybind/pybind11/pull/3741>`_
Backend and tidying up:
* New theme for the documentation.
`#3109 <https://github.com/pybind/pybind11/pull/3109>`_
* Remove idioms in code comments. Use more inclusive language.
`#3809 <https://github.com/pybind/pybind11/pull/3809>`_
* ``#include <iostream>`` was removed from the ``pybind11/stl.h`` header. Your
project may break if it has a transitive dependency on this include. The fix
is to "Include What You Use".
`#3928 <https://github.com/pybind/pybind11/pull/3928>`_
* Avoid ``setup.py <command>`` usage in internal tests.
`#3734 <https://github.com/pybind/pybind11/pull/3734>`_
Version 2.9.2 (Mar 29, 2022)
----------------------------
Changes:
* Enum now has an ``__index__`` method on Python <3.8 too.
`#3700 <https://github.com/pybind/pybind11/pull/3700>`_
* Local internals are now cleared after finalizing the interpreter.
`#3744 <https://github.com/pybind/pybind11/pull/3744>`_
Bug fixes:
* Better support for Python 3.11 alphas.
`#3694 <https://github.com/pybind/pybind11/pull/3694>`_
* ``PYBIND11_TYPE_CASTER`` now uses fully qualified symbols, so it can be used
outside of ``pybind11::detail``.
`#3758 <https://github.com/pybind/pybind11/pull/3758>`_
* Some fixes for PyPy 3.9.
`#3768 <https://github.com/pybind/pybind11/pull/3768>`_
* Fixed a potential memleak in PyPy in ``get_type_override``.
`#3774 <https://github.com/pybind/pybind11/pull/3774>`_
* Fix usage of ``VISIBILITY_INLINES_HIDDEN``.
`#3721 <https://github.com/pybind/pybind11/pull/3721>`_
Build system improvements:
* Uses ``sysconfig`` module to determine installation locations on Python >=
3.10, instead of ``distutils`` which has been deprecated.
`#3764 <https://github.com/pybind/pybind11/pull/3764>`_
* Support Catch 2.13.5+ (supporting GLIBC 2.34+).
`#3679 <https://github.com/pybind/pybind11/pull/3679>`_
* Fix test failures with numpy 1.22 by ignoring whitespace when comparing
``str()`` of dtypes.
`#3682 <https://github.com/pybind/pybind11/pull/3682>`_
Backend and tidying up:
* clang-tidy: added ``readability-qualified-auto``,
``readability-braces-around-statements``,
``cppcoreguidelines-prefer-member-initializer``,
``clang-analyzer-optin.performance.Padding``,
``cppcoreguidelines-pro-type-static-cast-downcast``, and
``readability-inconsistent-declaration-parameter-name``.
`#3702 <https://github.com/pybind/pybind11/pull/3702>`_,
`#3699 <https://github.com/pybind/pybind11/pull/3699>`_,
`#3716 <https://github.com/pybind/pybind11/pull/3716>`_,
`#3709 <https://github.com/pybind/pybind11/pull/3709>`_
* clang-format was added to the pre-commit actions, and the entire code base
automatically reformatted (after several iterations preparing for this leap).
`#3713 <https://github.com/pybind/pybind11/pull/3713>`_
Version 2.9.1 (Feb 2, 2022)
---------------------------
Changes:
* If possible, attach Python exception with ``py::raise_from`` to ``TypeError``
when casting from C++ to Python. This will give additional info if Python
exceptions occur in the caster. Adds a test case of trying to convert a set
from C++ to Python when the hash function is not defined in Python.
`#3605 <https://github.com/pybind/pybind11/pull/3605>`_
* Add a mapping of C++11 nested exceptions to their Python exception
equivalent using ``py::raise_from``. This attaches the nested exceptions in
Python using the ``__cause__`` field.
`#3608 <https://github.com/pybind/pybind11/pull/3608>`_
* Propagate Python exception traceback using ``raise_from`` if a pybind11
function runs out of overloads.
`#3671 <https://github.com/pybind/pybind11/pull/3671>`_
* ``py::multiple_inheritance`` is now only needed when C++ bases are hidden
from pybind11.
`#3650 <https://github.com/pybind/pybind11/pull/3650>`_ and
`#3659 <https://github.com/pybind/pybind11/pull/3659>`_
Bug fixes:
* Remove a boolean cast in ``numpy.h`` that causes MSVC C4800 warnings when
compiling against Python 3.10 or newer.
`#3669 <https://github.com/pybind/pybind11/pull/3669>`_
* Render ``py::bool_`` and ``py::float_`` as ``bool`` and ``float``
respectively.
`#3622 <https://github.com/pybind/pybind11/pull/3622>`_
Build system improvements:
* Fix CMake extension suffix computation on Python 3.10+.
`#3663 <https://github.com/pybind/pybind11/pull/3663>`_
* Allow ``CMAKE_ARGS`` to override CMake args in pybind11's own ``setup.py``.
`#3577 <https://github.com/pybind/pybind11/pull/3577>`_
* Remove a few deprecated c-headers.
`#3610 <https://github.com/pybind/pybind11/pull/3610>`_
* More uniform handling of test targets.
`#3590 <https://github.com/pybind/pybind11/pull/3590>`_
* Add clang-tidy readability check to catch potentially swapped function args.
`#3611 <https://github.com/pybind/pybind11/pull/3611>`_
Version 2.9.0 (Dec 28, 2021)
----------------------------
This is the last version to support Python 2.7 and 3.5.
New Features:
* Allow ``py::args`` to be followed by other arguments; the remaining arguments
are implicitly keyword-only, as if a ``py::kw_only{}`` annotation had been
used.
`#3402 <https://github.com/pybind/pybind11/pull/3402>`_
Changes:
* Make str/bytes/memoryview more interoperable with ``std::string_view``.
`#3521 <https://github.com/pybind/pybind11/pull/3521>`_
* Replace ``_`` with ``const_name`` in internals, avoid defining ``pybind::_``
if ``_`` defined as macro (common gettext usage)
`#3423 <https://github.com/pybind/pybind11/pull/3423>`_
Bug fixes:
* Fix a rare warning about extra copy in an Eigen constructor.
`#3486 <https://github.com/pybind/pybind11/pull/3486>`_
* Fix caching of the C++ overrides.
`#3465 <https://github.com/pybind/pybind11/pull/3465>`_
* Add missing ``std::forward`` calls to some ``cpp_function`` overloads.
`#3443 <https://github.com/pybind/pybind11/pull/3443>`_
* Support PyPy 7.3.7 and the PyPy3.8 beta. Test python-3.11 on PRs with the
``python dev`` label.
`#3419 <https://github.com/pybind/pybind11/pull/3419>`_
* Replace usage of deprecated ``Eigen::MappedSparseMatrix`` with
``Eigen::Map<Eigen::SparseMatrix<...>>`` for Eigen 3.3+.
`#3499 <https://github.com/pybind/pybind11/pull/3499>`_
* Tweaks to support Microsoft Visual Studio 2022.
`#3497 <https://github.com/pybind/pybind11/pull/3497>`_
Build system improvements:
* Nicer CMake printout and IDE organisation for pybind11's own tests.
`#3479 <https://github.com/pybind/pybind11/pull/3479>`_
* CMake: report version type as part of the version string to avoid a spurious
space in the package status message.
`#3472 <https://github.com/pybind/pybind11/pull/3472>`_
* Flags starting with ``-g`` in ``$CFLAGS`` and ``$CPPFLAGS`` are no longer
overridden by ``.Pybind11Extension``.
`#3436 <https://github.com/pybind/pybind11/pull/3436>`_
* Ensure ThreadPool is closed in ``setup_helpers``.
`#3548 <https://github.com/pybind/pybind11/pull/3548>`_
* Avoid LTS on ``mips64`` and ``ppc64le`` (reported broken).
`#3557 <https://github.com/pybind/pybind11/pull/3557>`_
v2.8.1 (Oct 27, 2021)
---------------------
Changes and additions:
* The simple namespace creation shortcut added in 2.8.0 was deprecated due to
usage of CPython internal API, and will be removed soon. Use
``py::module_::import("types").attr("SimpleNamespace")``.
`#3374 <https://github.com/pybinyyd/pybind11/pull/3374>`_
* Add C++ Exception type to throw and catch ``AttributeError``. Useful for
defining custom ``__setattr__`` and ``__getattr__`` methods.
`#3387 <https://github.com/pybind/pybind11/pull/3387>`_
Fixes:
* Fixed the potential for dangling references when using properties with
``std::optional`` types.
`#3376 <https://github.com/pybind/pybind11/pull/3376>`_
* Modernize usage of ``PyCodeObject`` on Python 3.9+ (moving toward support for
Python 3.11a1)
`#3368 <https://github.com/pybind/pybind11/pull/3368>`_
* A long-standing bug in ``eigen.h`` was fixed (originally PR #3343). The bug
was unmasked by newly added ``static_assert``'s in the Eigen 3.4.0 release.
`#3352 <https://github.com/pybind/pybind11/pull/3352>`_
* Support multiple raw inclusion of CMake helper files (Conan.io does this for
multi-config generators).
`#3420 <https://github.com/pybind/pybind11/pull/3420>`_
* Fix harmless warning on upcoming CMake 3.22.
`#3368 <https://github.com/pybind/pybind11/pull/3368>`_
* Fix 2.8.0 regression with MSVC 2017 + C++17 mode + Python 3.
`#3407 <https://github.com/pybind/pybind11/pull/3407>`_
* Fix 2.8.0 regression that caused undefined behavior (typically
segfaults) in ``make_key_iterator``/``make_value_iterator`` if dereferencing
the iterator returned a temporary value instead of a reference.
`#3348 <https://github.com/pybind/pybind11/pull/3348>`_
v2.8.0 (Oct 4, 2021)
--------------------
New features:
* Added ``py::raise_from`` to enable chaining exceptions.
`#3215 <https://github.com/pybind/pybind11/pull/3215>`_
* Allow exception translators to be optionally registered local to a module
instead of applying globally across all pybind11 modules. Use
``register_local_exception_translator(ExceptionTranslator&& translator)``
instead of ``register_exception_translator(ExceptionTranslator&&
translator)`` to keep your exception remapping code local to the module.
`#2650 <https://github.com/pybinyyd/pybind11/pull/2650>`_
* Add ``make_simple_namespace`` function for instantiating Python
``SimpleNamespace`` objects. **Deprecated in 2.8.1.**
`#2840 <https://github.com/pybind/pybind11/pull/2840>`_
* ``pybind11::scoped_interpreter`` and ``initialize_interpreter`` have new
arguments to allow ``sys.argv`` initialization.
`#2341 <https://github.com/pybind/pybind11/pull/2341>`_
* Allow Python builtins to be used as callbacks in CPython.
`#1413 <https://github.com/pybind/pybind11/pull/1413>`_
* Added ``view`` to view arrays with a different datatype.
`#987 <https://github.com/pybind/pybind11/pull/987>`_
* Implemented ``reshape`` on arrays.
`#984 <https://github.com/pybind/pybind11/pull/984>`_
* Enable defining custom ``__new__`` methods on classes by fixing bug
preventing overriding methods if they have non-pybind11 siblings.
`#3265 <https://github.com/pybind/pybind11/pull/3265>`_
* Add ``make_value_iterator()``, and fix ``make_key_iterator()`` to return
references instead of copies.
`#3293 <https://github.com/pybind/pybind11/pull/3293>`_
* Improve the classes generated by ``bind_map``: `#3310 <https://github.com/pybind/pybind11/pull/3310>`_
* Change ``.items`` from an iterator to a dictionary view.
* Add ``.keys`` and ``.values`` (both dictionary views).
* Allow ``__contains__`` to take any object.
* ``pybind11::custom_type_setup`` was added, for customizing the
``PyHeapTypeObject`` corresponding to a class, which may be useful for
enabling garbage collection support, among other things.
`#3287 <https://github.com/pybind/pybind11/pull/3287>`_
Changes:
* Set ``__file__`` constant when running ``eval_file`` in an embedded interpreter.
`#3233 <https://github.com/pybind/pybind11/pull/3233>`_
* Python objects and (C++17) ``std::optional`` now accepted in ``py::slice``
constructor.
`#1101 <https://github.com/pybind/pybind11/pull/1101>`_
* The pybind11 proxy types ``str``, ``bytes``, ``bytearray``, ``tuple``,
``list`` now consistently support passing ``ssize_t`` values for sizes and
indexes. Previously, only ``size_t`` was accepted in several interfaces.
`#3219 <https://github.com/pybind/pybind11/pull/3219>`_
* Avoid evaluating ``PYBIND11_TLS_REPLACE_VALUE`` arguments more than once.
`#3290 <https://github.com/pybind/pybind11/pull/3290>`_
Fixes:
* Bug fix: enum value's ``__int__`` returning non-int when underlying type is
bool or of char type.
`#1334 <https://github.com/pybind/pybind11/pull/1334>`_
* Fixes bug in setting error state in Capsule's pointer methods.
`#3261 <https://github.com/pybind/pybind11/pull/3261>`_
* A long-standing memory leak in ``py::cpp_function::initialize`` was fixed.
`#3229 <https://github.com/pybind/pybind11/pull/3229>`_
* Fixes thread safety for some ``pybind11::type_caster`` which require lifetime
extension, such as for ``std::string_view``.
`#3237 <https://github.com/pybind/pybind11/pull/3237>`_
* Restore compatibility with gcc 4.8.4 as distributed by ubuntu-trusty, linuxmint-17.
`#3270 <https://github.com/pybind/pybind11/pull/3270>`_
Build system improvements:
* Fix regression in CMake Python package config: improper use of absolute path.
`#3144 <https://github.com/pybind/pybind11/pull/3144>`_
* Cached Python version information could become stale when CMake was re-run
with a different Python version. The build system now detects this and
updates this information.
`#3299 <https://github.com/pybind/pybind11/pull/3299>`_
* Specified UTF8-encoding in setup.py calls of open().
`#3137 <https://github.com/pybind/pybind11/pull/3137>`_
* Fix a harmless warning from CMake 3.21 with the classic Python discovery.
`#3220 <https://github.com/pybind/pybind11/pull/3220>`_
* Eigen repo and version can now be specified as cmake options.
`#3324 <https://github.com/pybind/pybind11/pull/3324>`_
Backend and tidying up:
* Reduced thread-local storage required for keeping alive temporary data for
type conversion to one key per ABI version, rather than one key per extension
module. This makes the total thread-local storage required by pybind11 2
keys per ABI version.
`#3275 <https://github.com/pybind/pybind11/pull/3275>`_
* Optimize NumPy array construction with additional moves.
`#3183 <https://github.com/pybind/pybind11/pull/3183>`_
* Conversion to ``std::string`` and ``std::string_view`` now avoids making an
extra copy of the data on Python >= 3.3.
`#3257 <https://github.com/pybind/pybind11/pull/3257>`_
* Remove const modifier from certain C++ methods on Python collections
(``list``, ``set``, ``dict``) such as (``clear()``, ``append()``,
``insert()``, etc...) and annotated them with ``py-non-const``.
* Enable readability ``clang-tidy-const-return`` and remove useless consts.
`#3254 <https://github.com/pybind/pybind11/pull/3254>`_
`#3194 <https://github.com/pybind/pybind11/pull/3194>`_
* The clang-tidy ``google-explicit-constructor`` option was enabled.
`#3250 <https://github.com/pybind/pybind11/pull/3250>`_
* Mark a pytype move constructor as noexcept (perf).
`#3236 <https://github.com/pybind/pybind11/pull/3236>`_
* Enable clang-tidy check to guard against inheritance slicing.
`#3210 <https://github.com/pybind/pybind11/pull/3210>`_
* Legacy warning suppression pragma were removed from eigen.h. On Unix
platforms, please use -isystem for Eigen include directories, to suppress
compiler warnings originating from Eigen headers. Note that CMake does this
by default. No adjustments are needed for Windows.
`#3198 <https://github.com/pybind/pybind11/pull/3198>`_
* Format pybind11 with isort consistent ordering of imports
`#3195 <https://github.com/pybind/pybind11/pull/3195>`_
* The warnings-suppression "pragma clamp" at the top/bottom of pybind11 was
removed, clearing the path to refactoring and IWYU cleanup.
`#3186 <https://github.com/pybind/pybind11/pull/3186>`_
* Enable most bugprone checks in clang-tidy and fix the found potential bugs
and poor coding styles.
`#3166 <https://github.com/pybind/pybind11/pull/3166>`_
* Add ``clang-tidy-readability`` rules to make boolean casts explicit improving
code readability. Also enabled other misc and readability clang-tidy checks.
`#3148 <https://github.com/pybind/pybind11/pull/3148>`_
* Move object in ``.pop()`` for list.
`#3116 <https://github.com/pybind/pybind11/pull/3116>`_
v2.7.1 (Aug 3, 2021)
---------------------
Minor missing functionality added:
* Allow Python builtins to be used as callbacks in CPython.
`#1413 <https://github.com/pybind/pybind11/pull/1413>`_
Bug fixes:
* Fix regression in CMake Python package config: improper use of absolute path.
`#3144 <https://github.com/pybind/pybind11/pull/3144>`_
* Fix Mingw64 and add to the CI testing matrix.
`#3132 <https://github.com/pybind/pybind11/pull/3132>`_
* Specified UTF8-encoding in setup.py calls of open().
`#3137 <https://github.com/pybind/pybind11/pull/3137>`_
* Add clang-tidy-readability rules to make boolean casts explicit improving
code readability. Also enabled other misc and readability clang-tidy checks.
`#3148 <https://github.com/pybind/pybind11/pull/3148>`_
* Move object in ``.pop()`` for list.
`#3116 <https://github.com/pybind/pybind11/pull/3116>`_
Backend and tidying up:
* Removed and fixed warning suppressions.
`#3127 <https://github.com/pybind/pybind11/pull/3127>`_
`#3129 <https://github.com/pybind/pybind11/pull/3129>`_
`#3135 <https://github.com/pybind/pybind11/pull/3135>`_
`#3141 <https://github.com/pybind/pybind11/pull/3141>`_
`#3142 <https://github.com/pybind/pybind11/pull/3142>`_
`#3150 <https://github.com/pybind/pybind11/pull/3150>`_
`#3152 <https://github.com/pybind/pybind11/pull/3152>`_
`#3160 <https://github.com/pybind/pybind11/pull/3160>`_
`#3161 <https://github.com/pybind/pybind11/pull/3161>`_
v2.7.0 (Jul 16, 2021)
---------------------
New features:
* Enable ``py::implicitly_convertible<py::none, ...>`` for
``py::class_``-wrapped types.
`#3059 <https://github.com/pybind/pybind11/pull/3059>`_
* Allow function pointer extraction from overloaded functions.
`#2944 <https://github.com/pybind/pybind11/pull/2944>`_
* NumPy: added ``.char_()`` to type which gives the NumPy public ``char``
result, which also distinguishes types by bit length (unlike ``.kind()``).
`#2864 <https://github.com/pybind/pybind11/pull/2864>`_
* Add ``pybind11::bytearray`` to manipulate ``bytearray`` similar to ``bytes``.
`#2799 <https://github.com/pybind/pybind11/pull/2799>`_
* ``pybind11/stl/filesystem.h`` registers a type caster that, on C++17/Python
3.6+, converts ``std::filesystem::path`` to ``pathlib.Path`` and any
``os.PathLike`` to ``std::filesystem::path``.
`#2730 <https://github.com/pybind/pybind11/pull/2730>`_
* A ``PYBIND11_VERSION_HEX`` define was added, similar to ``PY_VERSION_HEX``.
`#3120 <https://github.com/pybind/pybind11/pull/3120>`_
Changes:
* ``py::str`` changed to exclusively hold ``PyUnicodeObject``. Previously
``py::str`` could also hold ``bytes``, which is probably surprising, was
never documented, and can mask bugs (e.g. accidental use of ``py::str``
instead of ``py::bytes``).
`#2409 <https://github.com/pybind/pybind11/pull/2409>`_
* Add a safety guard to ensure that the Python GIL is held when C++ calls back
into Python via ``object_api<>::operator()`` (e.g. ``py::function``
``__call__``). (This feature is available for Python 3.6+ only.)
`#2919 <https://github.com/pybind/pybind11/pull/2919>`_
* Catch a missing ``self`` argument in calls to ``__init__()``.
`#2914 <https://github.com/pybind/pybind11/pull/2914>`_
* Use ``std::string_view`` if available to avoid a copy when passing an object
to a ``std::ostream``.
`#3042 <https://github.com/pybind/pybind11/pull/3042>`_
* An important warning about thread safety was added to the ``iostream.h``
documentation; attempts to make ``py::scoped_ostream_redirect`` thread safe
have been removed, as it was only partially effective.
`#2995 <https://github.com/pybind/pybind11/pull/2995>`_
Fixes:
* Performance: avoid unnecessary strlen calls.
`#3058 <https://github.com/pybind/pybind11/pull/3058>`_
* Fix auto-generated documentation string when using ``const T`` in
``pyarray_t``.
`#3020 <https://github.com/pybind/pybind11/pull/3020>`_
* Unify error messages thrown by ``simple_collector``/``unpacking_collector``.
`#3013 <https://github.com/pybind/pybind11/pull/3013>`_
* ``pybind11::builtin_exception`` is now explicitly exported, which means the
types included/defined in different modules are identical, and exceptions
raised in different modules can be caught correctly. The documentation was
updated to explain that custom exceptions that are used across module
boundaries need to be explicitly exported as well.
`#2999 <https://github.com/pybind/pybind11/pull/2999>`_
* Fixed exception when printing UTF-8 to a ``scoped_ostream_redirect``.
`#2982 <https://github.com/pybind/pybind11/pull/2982>`_
* Pickle support enhancement: ``setstate`` implementation will attempt to
``setattr`` ``__dict__`` only if the unpickled ``dict`` object is not empty,
to not force use of ``py::dynamic_attr()`` unnecessarily.
`#2972 <https://github.com/pybind/pybind11/pull/2972>`_
* Allow negative timedelta values to roundtrip.
`#2870 <https://github.com/pybind/pybind11/pull/2870>`_
* Fix unchecked errors could potentially swallow signals/other exceptions.
`#2863 <https://github.com/pybind/pybind11/pull/2863>`_
* Add null pointer check with ``std::localtime``.
`#2846 <https://github.com/pybind/pybind11/pull/2846>`_
* Fix the ``weakref`` constructor from ``py::object`` to create a new
``weakref`` on conversion.
`#2832 <https://github.com/pybind/pybind11/pull/2832>`_
* Avoid relying on exceptions in C++17 when getting a ``shared_ptr`` holder
from a ``shared_from_this`` class.
`#2819 <https://github.com/pybind/pybind11/pull/2819>`_
* Allow the codec's exception to be raised instead of :code:`RuntimeError` when
casting from :code:`py::str` to :code:`std::string`.
`#2903 <https://github.com/pybind/pybind11/pull/2903>`_
Build system improvements:
* In ``setup_helpers.py``, test for platforms that have some multiprocessing
features but lack semaphores, which ``ParallelCompile`` requires.
`#3043 <https://github.com/pybind/pybind11/pull/3043>`_
* Fix ``pybind11_INCLUDE_DIR`` in case ``CMAKE_INSTALL_INCLUDEDIR`` is
absolute.
`#3005 <https://github.com/pybind/pybind11/pull/3005>`_
* Fix bug not respecting ``WITH_SOABI`` or ``WITHOUT_SOABI`` to CMake.
`#2938 <https://github.com/pybind/pybind11/pull/2938>`_
* Fix the default ``Pybind11Extension`` compilation flags with a Mingw64 python.
`#2921 <https://github.com/pybind/pybind11/pull/2921>`_
* Clang on Windows: do not pass ``/MP`` (ignored flag).
`#2824 <https://github.com/pybind/pybind11/pull/2824>`_
* ``pybind11.setup_helpers.intree_extensions`` can be used to generate
``Pybind11Extension`` instances from cpp files placed in the Python package
source tree.
`#2831 <https://github.com/pybind/pybind11/pull/2831>`_
Backend and tidying up:
* Enable clang-tidy performance, readability, and modernization checks
throughout the codebase to enforce best coding practices.
`#3046 <https://github.com/pybind/pybind11/pull/3046>`_,
`#3049 <https://github.com/pybind/pybind11/pull/3049>`_,
`#3051 <https://github.com/pybind/pybind11/pull/3051>`_,
`#3052 <https://github.com/pybind/pybind11/pull/3052>`_,
`#3080 <https://github.com/pybind/pybind11/pull/3080>`_, and
`#3094 <https://github.com/pybind/pybind11/pull/3094>`_
* Checks for common misspellings were added to the pre-commit hooks.
`#3076 <https://github.com/pybind/pybind11/pull/3076>`_
* Changed ``Werror`` to stricter ``Werror-all`` for Intel compiler and fixed
minor issues.
`#2948 <https://github.com/pybind/pybind11/pull/2948>`_
* Fixed compilation with GCC < 5 when the user defines ``_GLIBCXX_USE_CXX11_ABI``.
`#2956 <https://github.com/pybind/pybind11/pull/2956>`_
* Added nox support for easier local testing and linting of contributions.
`#3101 <https://github.com/pybind/pybind11/pull/3101>`_ and
`#3121 <https://github.com/pybind/pybind11/pull/3121>`_
* Avoid RTD style issue with docutils 0.17+.
`#3119 <https://github.com/pybind/pybind11/pull/3119>`_
* Support pipx run, such as ``pipx run pybind11 --include`` for a quick compile.
`#3117 <https://github.com/pybind/pybind11/pull/3117>`_
v2.6.2 (Jan 26, 2021)
---------------------
Minor missing functionality added:
* enum: add missing Enum.value property.
`#2739 <https://github.com/pybind/pybind11/pull/2739>`_
* Allow thread termination to be avoided during shutdown for CPython 3.7+ via
``.disarm`` for ``gil_scoped_acquire``/``gil_scoped_release``.
`#2657 <https://github.com/pybind/pybind11/pull/2657>`_
Fixed or improved behavior in a few special cases:
* Fix bug where the constructor of ``object`` subclasses would not throw on
being passed a Python object of the wrong type.
`#2701 <https://github.com/pybind/pybind11/pull/2701>`_
* The ``type_caster`` for integers does not convert Python objects with
``__int__`` anymore with ``noconvert`` or during the first round of trying
overloads.
`#2698 <https://github.com/pybind/pybind11/pull/2698>`_
* When casting to a C++ integer, ``__index__`` is always called and not
considered as conversion, consistent with Python 3.8+.
`#2801 <https://github.com/pybind/pybind11/pull/2801>`_
Build improvements:
* Setup helpers: ``extra_compile_args`` and ``extra_link_args`` automatically set by
Pybind11Extension are now prepended, which allows them to be overridden
by user-set ``extra_compile_args`` and ``extra_link_args``.
`#2808 <https://github.com/pybind/pybind11/pull/2808>`_
* Setup helpers: Don't trigger unused parameter warning.
`#2735 <https://github.com/pybind/pybind11/pull/2735>`_
* CMake: Support running with ``--warn-uninitialized`` active.
`#2806 <https://github.com/pybind/pybind11/pull/2806>`_
* CMake: Avoid error if included from two submodule directories.
`#2804 <https://github.com/pybind/pybind11/pull/2804>`_
* CMake: Fix ``STATIC`` / ``SHARED`` being ignored in FindPython mode.
`#2796 <https://github.com/pybind/pybind11/pull/2796>`_
* CMake: Respect the setting for ``CMAKE_CXX_VISIBILITY_PRESET`` if defined.
`#2793 <https://github.com/pybind/pybind11/pull/2793>`_
* CMake: Fix issue with FindPython2/FindPython3 not working with ``pybind11::embed``.
`#2662 <https://github.com/pybind/pybind11/pull/2662>`_
* CMake: mixing local and installed pybind11's would prioritize the installed
one over the local one (regression in 2.6.0).
`#2716 <https://github.com/pybind/pybind11/pull/2716>`_
Bug fixes:
* Fixed segfault in multithreaded environments when using
``scoped_ostream_redirect``.
`#2675 <https://github.com/pybind/pybind11/pull/2675>`_
* Leave docstring unset when all docstring-related options are disabled, rather
than set an empty string.
`#2745 <https://github.com/pybind/pybind11/pull/2745>`_
* The module key in builtins that pybind11 uses to store its internals changed
from std::string to a python str type (more natural on Python 2, no change on
Python 3).
`#2814 <https://github.com/pybind/pybind11/pull/2814>`_
* Fixed assertion error related to unhandled (later overwritten) exception in
CPython 3.8 and 3.9 debug builds.
`#2685 <https://github.com/pybind/pybind11/pull/2685>`_
* Fix ``py::gil_scoped_acquire`` assert with CPython 3.9 debug build.
`#2683 <https://github.com/pybind/pybind11/pull/2683>`_
* Fix issue with a test failing on pytest 6.2.
`#2741 <https://github.com/pybind/pybind11/pull/2741>`_
Warning fixes:
* Fix warning modifying constructor parameter 'flag' that shadows a field of
'set_flag' ``[-Wshadow-field-in-constructor-modified]``.
`#2780 <https://github.com/pybind/pybind11/pull/2780>`_
* Suppressed some deprecation warnings about old-style
``__init__``/``__setstate__`` in the tests.
`#2759 <https://github.com/pybind/pybind11/pull/2759>`_
Valgrind work:
* Fix invalid access when calling a pybind11 ``__init__`` on a non-pybind11
class instance.
`#2755 <https://github.com/pybind/pybind11/pull/2755>`_
* Fixed various minor memory leaks in pybind11's test suite.
`#2758 <https://github.com/pybind/pybind11/pull/2758>`_
* Resolved memory leak in cpp_function initialization when exceptions occurred.
`#2756 <https://github.com/pybind/pybind11/pull/2756>`_
* Added a Valgrind build, checking for leaks and memory-related UB, to CI.
`#2746 <https://github.com/pybind/pybind11/pull/2746>`_
Compiler support:
* Intel compiler was not activating C++14 support due to a broken define.
`#2679 <https://github.com/pybind/pybind11/pull/2679>`_
* Support ICC and NVIDIA HPC SDK in C++17 mode.
`#2729 <https://github.com/pybind/pybind11/pull/2729>`_
* Support Intel OneAPI compiler (ICC 20.2) and add to CI.
`#2573 <https://github.com/pybind/pybind11/pull/2573>`_
v2.6.1 (Nov 11, 2020)
---------------------
* ``py::exec``, ``py::eval``, and ``py::eval_file`` now add the builtins module
as ``"__builtins__"`` to their ``globals`` argument, better matching ``exec``
and ``eval`` in pure Python.
`#2616 <https://github.com/pybind/pybind11/pull/2616>`_
* ``setup_helpers`` will no longer set a minimum macOS version higher than the
current version.
`#2622 <https://github.com/pybind/pybind11/pull/2622>`_
* Allow deleting static properties.
`#2629 <https://github.com/pybind/pybind11/pull/2629>`_
* Seal a leak in ``def_buffer``, cleaning up the ``capture`` object after the
``class_`` object goes out of scope.
`#2634 <https://github.com/pybind/pybind11/pull/2634>`_
* ``pybind11_INCLUDE_DIRS`` was incorrect, potentially causing a regression if
it was expected to include ``PYTHON_INCLUDE_DIRS`` (please use targets
instead).
`#2636 <https://github.com/pybind/pybind11/pull/2636>`_
* Added parameter names to the ``py::enum_`` constructor and methods, avoiding
``arg0`` in the generated docstrings.
`#2637 <https://github.com/pybind/pybind11/pull/2637>`_
* Added ``needs_recompile`` optional function to the ``ParallelCompiler``
helper, to allow a recompile to be skipped based on a user-defined function.
`#2643 <https://github.com/pybind/pybind11/pull/2643>`_
v2.6.0 (Oct 21, 2020)
---------------------
See :ref:`upgrade-guide-2.6` for help upgrading to the new version.
New features:
* Keyword-only arguments supported in Python 2 or 3 with ``py::kw_only()``.
`#2100 <https://github.com/pybind/pybind11/pull/2100>`_
* Positional-only arguments supported in Python 2 or 3 with ``py::pos_only()``.
`#2459 <https://github.com/pybind/pybind11/pull/2459>`_
* ``py::is_final()`` class modifier to block subclassing (CPython only).
`#2151 <https://github.com/pybind/pybind11/pull/2151>`_
* Added ``py::prepend()``, allowing a function to be placed at the beginning of
the overload chain.
`#1131 <https://github.com/pybind/pybind11/pull/1131>`_
* Access to the type object now provided with ``py::type::of<T>()`` and
``py::type::of(h)``.
`#2364 <https://github.com/pybind/pybind11/pull/2364>`_
* Perfect forwarding support for methods.
`#2048 <https://github.com/pybind/pybind11/pull/2048>`_
* Added ``py::error_already_set::discard_as_unraisable()``.
`#2372 <https://github.com/pybind/pybind11/pull/2372>`_
* ``py::hash`` is now public.
`#2217 <https://github.com/pybind/pybind11/pull/2217>`_
* ``py::class_<union_type>`` is now supported. Note that writing to one data
member of the union and reading another (type punning) is UB in C++. Thus
pybind11-bound enums should never be used for such conversions.
`#2320 <https://github.com/pybind/pybind11/pull/2320>`_.
* Classes now check local scope when registering members, allowing a subclass
to have a member with the same name as a parent (such as an enum).
`#2335 <https://github.com/pybind/pybind11/pull/2335>`_
Code correctness features:
* Error now thrown when ``__init__`` is forgotten on subclasses.
`#2152 <https://github.com/pybind/pybind11/pull/2152>`_
* Throw error if conversion to a pybind11 type if the Python object isn't a
valid instance of that type, such as ``py::bytes(o)`` when ``py::object o``
isn't a bytes instance.
`#2349 <https://github.com/pybind/pybind11/pull/2349>`_
* Throw if conversion to ``str`` fails.
`#2477 <https://github.com/pybind/pybind11/pull/2477>`_
API changes:
* ``py::module`` was renamed ``py::module_`` to avoid issues with C++20 when
used unqualified, but an alias ``py::module`` is provided for backward
compatibility.
`#2489 <https://github.com/pybind/pybind11/pull/2489>`_
* Public constructors for ``py::module_`` have been deprecated; please use
``pybind11::module_::create_extension_module`` if you were using the public
constructor (fairly rare after ``PYBIND11_MODULE`` was introduced).
`#2552 <https://github.com/pybind/pybind11/pull/2552>`_
* ``PYBIND11_OVERLOAD*`` macros and ``get_overload`` function replaced by
correctly-named ``PYBIND11_OVERRIDE*`` and ``get_override``, fixing
inconsistencies in the presence of a closing ``;`` in these macros.
``get_type_overload`` is deprecated.
`#2325 <https://github.com/pybind/pybind11/pull/2325>`_
Packaging / building improvements:
* The Python package was reworked to be more powerful and useful.
`#2433 <https://github.com/pybind/pybind11/pull/2433>`_
* :ref:`build-setuptools` is easier thanks to a new
``pybind11.setup_helpers`` module, which provides utilities to use
setuptools with pybind11. It can be used via PEP 518, ``setup_requires``,
or by directly importing or copying ``setup_helpers.py`` into your project.
* CMake configuration files are now included in the Python package. Use
``pybind11.get_cmake_dir()`` or ``python -m pybind11 --cmakedir`` to get
the directory with the CMake configuration files, or include the
site-packages location in your ``CMAKE_MODULE_PATH``. Or you can use the
new ``pybind11[global]`` extra when you install ``pybind11``, which
installs the CMake files and headers into your base environment in the
standard location.
* ``pybind11-config`` is another way to write ``python -m pybind11`` if you
have your PATH set up.
* Added external typing support to the helper module, code from
``import pybind11`` can now be type checked.
`#2588 <https://github.com/pybind/pybind11/pull/2588>`_
* Minimum CMake required increased to 3.4.
`#2338 <https://github.com/pybind/pybind11/pull/2338>`_ and
`#2370 <https://github.com/pybind/pybind11/pull/2370>`_
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
* Full integration with CMake's C++ standard system and compile features
replaces ``PYBIND11_CPP_STANDARD``.
* Generated config file is now portable to different Python/compiler/CMake
versions.
* Virtual environments prioritized if ``PYTHON_EXECUTABLE`` is not set
(``venv``, ``virtualenv``, and ``conda``) (similar to the new FindPython
mode).
* Other CMake features now natively supported, like
``CMAKE_INTERPROCEDURAL_OPTIMIZATION``, ``set(CMAKE_CXX_VISIBILITY_PRESET
hidden)``.
* ``CUDA`` as a language is now supported.
* Helper functions ``pybind11_strip``, ``pybind11_extension``,
``pybind11_find_import`` added, see :doc:`cmake/index`.
* Optional :ref:`find-python-mode` and :ref:`nopython-mode` with CMake.
`#2370 <https://github.com/pybind/pybind11/pull/2370>`_
* Uninstall target added.
`#2265 <https://github.com/pybind/pybind11/pull/2265>`_ and
`#2346 <https://github.com/pybind/pybind11/pull/2346>`_
* ``pybind11_add_module()`` now accepts an optional ``OPT_SIZE`` flag that
switches the binding target to size-based optimization if the global build
type can not always be fixed to ``MinSizeRel`` (except in debug mode, where
optimizations remain disabled). ``MinSizeRel`` or this flag reduces binary
size quite substantially (~25% on some platforms).
`#2463 <https://github.com/pybind/pybind11/pull/2463>`_
Smaller or developer focused features and fixes:
* Moved ``mkdoc.py`` to a new repo, `pybind11-mkdoc`_. There are no longer
submodules in the main repo.
* ``py::memoryview`` segfault fix and update, with new
``py::memoryview::from_memory`` in Python 3, and documentation.
`#2223 <https://github.com/pybind/pybind11/pull/2223>`_
* Fix for ``buffer_info`` on Python 2.
`#2503 <https://github.com/pybind/pybind11/pull/2503>`_
* If ``__eq__`` defined but not ``__hash__``, ``__hash__`` is now set to
``None``.
`#2291 <https://github.com/pybind/pybind11/pull/2291>`_
* ``py::ellipsis`` now also works on Python 2.
`#2360 <https://github.com/pybind/pybind11/pull/2360>`_
* Pointer to ``std::tuple`` & ``std::pair`` supported in cast.
`#2334 <https://github.com/pybind/pybind11/pull/2334>`_
* Small fixes in NumPy support. ``py::array`` now uses ``py::ssize_t`` as first
argument type.
`#2293 <https://github.com/pybind/pybind11/pull/2293>`_
* Added missing signature for ``py::array``.
`#2363 <https://github.com/pybind/pybind11/pull/2363>`_
* ``unchecked_mutable_reference`` has access to operator ``()`` and ``[]`` when
const.
`#2514 <https://github.com/pybind/pybind11/pull/2514>`_
* ``py::vectorize`` is now supported on functions that return void.
`#1969 <https://github.com/pybind/pybind11/pull/1969>`_
* ``py::capsule`` supports ``get_pointer`` and ``set_pointer``.
`#1131 <https://github.com/pybind/pybind11/pull/1131>`_
* Fix crash when different instances share the same pointer of the same type.
`#2252 <https://github.com/pybind/pybind11/pull/2252>`_
* Fix for ``py::len`` not clearing Python's error state when it fails and throws.
`#2575 <https://github.com/pybind/pybind11/pull/2575>`_
* Bugfixes related to more extensive testing, new GitHub Actions CI.
`#2321 <https://github.com/pybind/pybind11/pull/2321>`_
* Bug in timezone issue in Eastern hemisphere midnight fixed.
`#2438 <https://github.com/pybind/pybind11/pull/2438>`_
* ``std::chrono::time_point`` now works when the resolution is not the same as
the system.
`#2481 <https://github.com/pybind/pybind11/pull/2481>`_
* Bug fixed where ``py::array_t`` could accept arrays that did not match the
requested ordering.
`#2484 <https://github.com/pybind/pybind11/pull/2484>`_
* Avoid a segfault on some compilers when types are removed in Python.
`#2564 <https://github.com/pybind/pybind11/pull/2564>`_
* ``py::arg::none()`` is now also respected when passing keyword arguments.
`#2611 <https://github.com/pybind/pybind11/pull/2611>`_
* PyPy fixes, PyPy 7.3.x now supported, including PyPy3. (Known issue with
PyPy2 and Windows `#2596 <https://github.com/pybind/pybind11/issues/2596>`_).
`#2146 <https://github.com/pybind/pybind11/pull/2146>`_
* CPython 3.9.0 workaround for undefined behavior (macOS segfault).
`#2576 <https://github.com/pybind/pybind11/pull/2576>`_
* CPython 3.9 warning fixes.
`#2253 <https://github.com/pybind/pybind11/pull/2253>`_
* Improved C++20 support, now tested in CI.
`#2489 <https://github.com/pybind/pybind11/pull/2489>`_
`#2599 <https://github.com/pybind/pybind11/pull/2599>`_
* Improved but still incomplete debug Python interpreter support.
`#2025 <https://github.com/pybind/pybind11/pull/2025>`_
* NVCC (CUDA 11) now supported and tested in CI.
`#2461 <https://github.com/pybind/pybind11/pull/2461>`_
* NVIDIA PGI compilers now supported and tested in CI.
`#2475 <https://github.com/pybind/pybind11/pull/2475>`_
* At least Intel 18 now explicitly required when compiling with Intel.
`#2577 <https://github.com/pybind/pybind11/pull/2577>`_
* Extensive style checking in CI, with `pre-commit`_ support. Code
modernization, checked by clang-tidy.
* Expanded docs, including new main page, new installing section, and CMake
helpers page, along with over a dozen new sections on existing pages.
* In GitHub, new docs for contributing and new issue templates.
.. _pre-commit: https://pre-commit.com
.. _pybind11-mkdoc: https://github.com/pybind/pybind11-mkdoc
v2.5.0 (Mar 31, 2020)
-----------------------------------------------------
* Use C++17 fold expressions in type casters, if available. This can
improve performance during overload resolution when functions have
multiple arguments.
`#2043 <https://github.com/pybind/pybind11/pull/2043>`_.
* Changed include directory resolution in ``pybind11/__init__.py``
and installation in ``setup.py``. This fixes a number of open issues
where pybind11 headers could not be found in certain environments.
`#1995 <https://github.com/pybind/pybind11/pull/1995>`_.
* C++20 ``char8_t`` and ``u8string`` support. `#2026
<https://github.com/pybind/pybind11/pull/2026>`_.
* CMake: search for Python 3.9. `bb9c91
<https://github.com/pybind/pybind11/commit/bb9c91>`_.
* Fixes for MSYS-based build environments.
`#2087 <https://github.com/pybind/pybind11/pull/2087>`_,
`#2053 <https://github.com/pybind/pybind11/pull/2053>`_.
* STL bindings for ``std::vector<...>::clear``. `#2074
<https://github.com/pybind/pybind11/pull/2074>`_.
* Read-only flag for ``py::buffer``. `#1466
<https://github.com/pybind/pybind11/pull/1466>`_.
* Exception handling during module initialization.
`bf2b031 <https://github.com/pybind/pybind11/commit/bf2b031>`_.
* Support linking against a CPython debug build.
`#2025 <https://github.com/pybind/pybind11/pull/2025>`_.
* Fixed issues involving the availability and use of aligned ``new`` and
``delete``. `#1988 <https://github.com/pybind/pybind11/pull/1988>`_,
`759221 <https://github.com/pybind/pybind11/commit/759221>`_.
* Fixed a resource leak upon interpreter shutdown.
`#2020 <https://github.com/pybind/pybind11/pull/2020>`_.
* Fixed error handling in the boolean caster.
`#1976 <https://github.com/pybind/pybind11/pull/1976>`_.
v2.4.3 (Oct 15, 2019)
-----------------------------------------------------
* Adapt pybind11 to a C API convention change in Python 3.8. `#1950
<https://github.com/pybind/pybind11/pull/1950>`_.
v2.4.2 (Sep 21, 2019)
-----------------------------------------------------
* Replaced usage of a C++14 only construct. `#1929
<https://github.com/pybind/pybind11/pull/1929>`_.
* Made an ifdef future-proof for Python >= 4. `f3109d
<https://github.com/pybind/pybind11/commit/f3109d>`_.
v2.4.1 (Sep 20, 2019)
-----------------------------------------------------
* Fixed a problem involving implicit conversion from enumerations to integers
on Python 3.8. `#1780 <https://github.com/pybind/pybind11/pull/1780>`_.
v2.4.0 (Sep 19, 2019)
-----------------------------------------------------
* Try harder to keep pybind11-internal data structures separate when there
are potential ABI incompatibilities. Fixes crashes that occurred when loading
multiple pybind11 extensions that were e.g. compiled by GCC (libstdc++)
and Clang (libc++).
`#1588 <https://github.com/pybind/pybind11/pull/1588>`_ and
`c9f5a <https://github.com/pybind/pybind11/commit/c9f5a>`_.
* Added support for ``__await__``, ``__aiter__``, and ``__anext__`` protocols.
`#1842 <https://github.com/pybind/pybind11/pull/1842>`_.
* ``pybind11_add_module()``: don't strip symbols when compiling in
``RelWithDebInfo`` mode. `#1980
<https://github.com/pybind/pybind11/pull/1980>`_.
* ``enum_``: Reproduce Python behavior when comparing against invalid values
(e.g. ``None``, strings, etc.). Add back support for ``__invert__()``.
`#1912 <https://github.com/pybind/pybind11/pull/1912>`_,
`#1907 <https://github.com/pybind/pybind11/pull/1907>`_.
* List insertion operation for ``py::list``.
Added ``.empty()`` to all collection types.
Added ``py::set::contains()`` and ``py::dict::contains()``.
`#1887 <https://github.com/pybind/pybind11/pull/1887>`_,
`#1884 <https://github.com/pybind/pybind11/pull/1884>`_,
`#1888 <https://github.com/pybind/pybind11/pull/1888>`_.
* ``py::details::overload_cast_impl`` is available in C++11 mode, can be used
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
like ``overload_cast`` with an additional set of parentheses.
`#1581 <https://github.com/pybind/pybind11/pull/1581>`_.
* Fixed ``get_include()`` on Conda.
`#1877 <https://github.com/pybind/pybind11/pull/1877>`_.
* ``stl_bind.h``: negative indexing support.
`#1882 <https://github.com/pybind/pybind11/pull/1882>`_.
* Minor CMake fix to add MinGW compatibility.
`#1851 <https://github.com/pybind/pybind11/pull/1851>`_.
* GIL-related fixes.
`#1836 <https://github.com/pybind/pybind11/pull/1836>`_,
`8b90b <https://github.com/pybind/pybind11/commit/8b90b>`_.
* Other very minor/subtle fixes and improvements.
`#1329 <https://github.com/pybind/pybind11/pull/1329>`_,
`#1910 <https://github.com/pybind/pybind11/pull/1910>`_,
`#1863 <https://github.com/pybind/pybind11/pull/1863>`_,
`#1847 <https://github.com/pybind/pybind11/pull/1847>`_,
`#1890 <https://github.com/pybind/pybind11/pull/1890>`_,
`#1860 <https://github.com/pybind/pybind11/pull/1860>`_,
`#1848 <https://github.com/pybind/pybind11/pull/1848>`_,
`#1821 <https://github.com/pybind/pybind11/pull/1821>`_,
`#1837 <https://github.com/pybind/pybind11/pull/1837>`_,
`#1833 <https://github.com/pybind/pybind11/pull/1833>`_,
`#1748 <https://github.com/pybind/pybind11/pull/1748>`_,
`#1852 <https://github.com/pybind/pybind11/pull/1852>`_.
v2.3.0 (June 11, 2019)
-----------------------------------------------------
* Significantly reduced module binary size (10-20%) when compiled in C++11 mode
with GCC/Clang, or in any mode with MSVC. Function signatures are now always
precomputed at compile time (this was previously only available in C++14 mode
for non-MSVC compilers).
`#934 <https://github.com/pybind/pybind11/pull/934>`_.
* Add basic support for tag-based static polymorphism, where classes
provide a method to returns the desired type of an instance.
`#1326 <https://github.com/pybind/pybind11/pull/1326>`_.
* Python type wrappers (``py::handle``, ``py::object``, etc.)
now support map Python's number protocol onto C++ arithmetic
operators such as ``operator+``, ``operator/=``, etc.
`#1511 <https://github.com/pybind/pybind11/pull/1511>`_.
* A number of improvements related to enumerations:
1. The ``enum_`` implementation was rewritten from scratch to reduce
code bloat. Rather than instantiating a full implementation for each
enumeration, most code is now contained in a generic base class.
`#1511 <https://github.com/pybind/pybind11/pull/1511>`_.
2. The ``value()`` method of ``py::enum_`` now accepts an optional
docstring that will be shown in the documentation of the associated
enumeration. `#1160 <https://github.com/pybind/pybind11/pull/1160>`_.
3. check for already existing enum value and throw an error if present.
`#1453 <https://github.com/pybind/pybind11/pull/1453>`_.
* Support for over-aligned type allocation via C++17's aligned ``new``
statement. `#1582 <https://github.com/pybind/pybind11/pull/1582>`_.
* Added ``py::ellipsis()`` method for slicing of multidimensional NumPy arrays
`#1502 <https://github.com/pybind/pybind11/pull/1502>`_.
* Numerous Improvements to the ``mkdoc.py`` script for extracting documentation
from C++ header files.
`#1788 <https://github.com/pybind/pybind11/pull/1788>`_.
* ``pybind11_add_module()``: allow including Python as a ``SYSTEM`` include path.
`#1416 <https://github.com/pybind/pybind11/pull/1416>`_.
* ``pybind11/stl.h`` does not convert strings to ``vector<string>`` anymore.
`#1258 <https://github.com/pybind/pybind11/issues/1258>`_.
* Mark static methods as such to fix auto-generated Sphinx documentation.
`#1732 <https://github.com/pybind/pybind11/pull/1732>`_.
* Re-throw forced unwind exceptions (e.g. during pthread termination).
`#1208 <https://github.com/pybind/pybind11/pull/1208>`_.
* Added ``__contains__`` method to the bindings of maps (``std::map``,
``std::unordered_map``).
`#1767 <https://github.com/pybind/pybind11/pull/1767>`_.
* Improvements to ``gil_scoped_acquire``.
`#1211 <https://github.com/pybind/pybind11/pull/1211>`_.
* Type caster support for ``std::deque<T>``.
`#1609 <https://github.com/pybind/pybind11/pull/1609>`_.
* Support for ``std::unique_ptr`` holders, whose deleters differ between a base and derived
class. `#1353 <https://github.com/pybind/pybind11/pull/1353>`_.
* Construction of STL array/vector-like data structures from
iterators. Added an ``extend()`` operation.
`#1709 <https://github.com/pybind/pybind11/pull/1709>`_,
* CMake build system improvements for projects that include non-C++
files (e.g. plain C, CUDA) in ``pybind11_add_module`` et al.
`#1678 <https://github.com/pybind/pybind11/pull/1678>`_.
* Fixed asynchronous invocation and deallocation of Python functions
wrapped in ``std::function``.
`#1595 <https://github.com/pybind/pybind11/pull/1595>`_.
* Fixes regarding return value policy propagation in STL type casters.
`#1603 <https://github.com/pybind/pybind11/pull/1603>`_.
* Fixed scoped enum comparisons.
`#1571 <https://github.com/pybind/pybind11/pull/1571>`_.
* Fixed iostream redirection for code that releases the GIL.
`#1368 <https://github.com/pybind/pybind11/pull/1368>`_,
* A number of CI-related fixes.
`#1757 <https://github.com/pybind/pybind11/pull/1757>`_,
`#1744 <https://github.com/pybind/pybind11/pull/1744>`_,
`#1670 <https://github.com/pybind/pybind11/pull/1670>`_.
v2.2.4 (September 11, 2018)
-----------------------------------------------------
* Use new Python 3.7 Thread Specific Storage (TSS) implementation if available.
`#1454 <https://github.com/pybind/pybind11/pull/1454>`_,
`#1517 <https://github.com/pybind/pybind11/pull/1517>`_.
* Fixes for newer MSVC versions and C++17 mode.
`#1347 <https://github.com/pybind/pybind11/pull/1347>`_,
`#1462 <https://github.com/pybind/pybind11/pull/1462>`_.
* Propagate return value policies to type-specific casters
when casting STL containers.
`#1455 <https://github.com/pybind/pybind11/pull/1455>`_.
* Allow ostream-redirection of more than 1024 characters.
`#1479 <https://github.com/pybind/pybind11/pull/1479>`_.
* Set ``Py_DEBUG`` define when compiling against a debug Python build.
`#1438 <https://github.com/pybind/pybind11/pull/1438>`_.
* Untangle integer logic in number type caster to work for custom
types that may only be castable to a restricted set of builtin types.
`#1442 <https://github.com/pybind/pybind11/pull/1442>`_.
* CMake build system: Remember Python version in cache file.
`#1434 <https://github.com/pybind/pybind11/pull/1434>`_.
* Fix for custom smart pointers: use ``std::addressof`` to obtain holder
address instead of ``operator&``.
`#1435 <https://github.com/pybind/pybind11/pull/1435>`_.
* Properly report exceptions thrown during module initialization.
`#1362 <https://github.com/pybind/pybind11/pull/1362>`_.
* Fixed a segmentation fault when creating empty-shaped NumPy array.
`#1371 <https://github.com/pybind/pybind11/pull/1371>`_.
* The version of Intel C++ compiler must be >= 2017, and this is now checked by
the header files. `#1363 <https://github.com/pybind/pybind11/pull/1363>`_.
* A few minor typo fixes and improvements to the test suite, and
patches that silence compiler warnings.
* Vectors now support construction from generators, as well as ``extend()`` from a
list or generator.
`#1496 <https://github.com/pybind/pybind11/pull/1496>`_.
v2.2.3 (April 29, 2018)
-----------------------------------------------------
* The pybind11 header location detection was replaced by a new implementation
that no longer depends on ``pip`` internals (the recently released ``pip``
10 has restricted access to this API).
`#1190 <https://github.com/pybind/pybind11/pull/1190>`_.
* Small adjustment to an implementation detail to work around a compiler segmentation fault in Clang 3.3/3.4.
`#1350 <https://github.com/pybind/pybind11/pull/1350>`_.
* The minimal supported version of the Intel compiler was >= 17.0 since
pybind11 v2.1. This check is now explicit, and a compile-time error is raised
if the compiler meet the requirement.
`#1363 <https://github.com/pybind/pybind11/pull/1363>`_.
* Fixed an endianness-related fault in the test suite.
`#1287 <https://github.com/pybind/pybind11/pull/1287>`_.
v2.2.2 (February 7, 2018)
-----------------------------------------------------
* Fixed a segfault when combining embedded interpreter
shutdown/reinitialization with external loaded pybind11 modules.
`#1092 <https://github.com/pybind/pybind11/pull/1092>`_.
* Eigen support: fixed a bug where Nx1/1xN numpy inputs couldn't be passed as
arguments to Eigen vectors (which for Eigen are simply compile-time fixed
Nx1/1xN matrices).
`#1106 <https://github.com/pybind/pybind11/pull/1106>`_.
* Clarified to license by moving the licensing of contributions from
``LICENSE`` into ``CONTRIBUTING.md``: the licensing of contributions is not
actually part of the software license as distributed. This isn't meant to be
a substantial change in the licensing of the project, but addresses concerns
that the clause made the license non-standard.
`#1109 <https://github.com/pybind/pybind11/issues/1109>`_.
* Fixed a regression introduced in 2.1 that broke binding functions with lvalue
character literal arguments.
`#1128 <https://github.com/pybind/pybind11/pull/1128>`_.
* MSVC: fix for compilation failures under /permissive-, and added the flag to
the appveyor test suite.
`#1155 <https://github.com/pybind/pybind11/pull/1155>`_.
* Fixed ``__qualname__`` generation, and in turn, fixes how class names
(especially nested class names) are shown in generated docstrings.
`#1171 <https://github.com/pybind/pybind11/pull/1171>`_.
* Updated the FAQ with a suggested project citation reference.
`#1189 <https://github.com/pybind/pybind11/pull/1189>`_.
* Added fixes for deprecation warnings when compiled under C++17 with
``-Wdeprecated`` turned on, and add ``-Wdeprecated`` to the test suite
compilation flags.
`#1191 <https://github.com/pybind/pybind11/pull/1191>`_.
* Fixed outdated PyPI URLs in ``setup.py``.
`#1213 <https://github.com/pybind/pybind11/pull/1213>`_.
* Fixed a refcount leak for arguments that end up in a ``py::args`` argument
for functions with both fixed positional and ``py::args`` arguments.
`#1216 <https://github.com/pybind/pybind11/pull/1216>`_.
* Fixed a potential segfault resulting from possible premature destruction of
``py::args``/``py::kwargs`` arguments with overloaded functions.
`#1223 <https://github.com/pybind/pybind11/pull/1223>`_.
* Fixed ``del map[item]`` for a ``stl_bind.h`` bound stl map.
`#1229 <https://github.com/pybind/pybind11/pull/1229>`_.
* Fixed a regression from v2.1.x where the aggregate initialization could
unintentionally end up at a constructor taking a templated
``std::initializer_list<T>`` argument.
`#1249 <https://github.com/pybind/pybind11/pull/1249>`_.
* Fixed an issue where calling a function with a keep_alive policy on the same
nurse/patient pair would cause the internal patient storage to needlessly
grow (unboundedly, if the nurse is long-lived).
`#1251 <https://github.com/pybind/pybind11/issues/1251>`_.
* Various other minor fixes.
v2.2.1 (September 14, 2017)
-----------------------------------------------------
* Added ``py::module_::reload()`` member function for reloading a module.
`#1040 <https://github.com/pybind/pybind11/pull/1040>`_.
* Fixed a reference leak in the number converter.
`#1078 <https://github.com/pybind/pybind11/pull/1078>`_.
* Fixed compilation with Clang on host GCC < 5 (old libstdc++ which isn't fully
C++11 compliant). `#1062 <https://github.com/pybind/pybind11/pull/1062>`_.
* Fixed a regression where the automatic ``std::vector<bool>`` caster would
fail to compile. The same fix also applies to any container which returns
element proxies instead of references.
`#1053 <https://github.com/pybind/pybind11/pull/1053>`_.
* Fixed a regression where the ``py::keep_alive`` policy could not be applied
to constructors. `#1065 <https://github.com/pybind/pybind11/pull/1065>`_.
* Fixed a nullptr dereference when loading a ``py::module_local`` type
that's only registered in an external module.
`#1058 <https://github.com/pybind/pybind11/pull/1058>`_.
* Fixed implicit conversion of accessors to types derived from ``py::object``.
`#1076 <https://github.com/pybind/pybind11/pull/1076>`_.
* The ``name`` in ``PYBIND11_MODULE(name, variable)`` can now be a macro.
`#1082 <https://github.com/pybind/pybind11/pull/1082>`_.
* Relaxed overly strict ``py::pickle()`` check for matching get and set types.
`#1064 <https://github.com/pybind/pybind11/pull/1064>`_.
* Conversion errors now try to be more informative when it's likely that
a missing header is the cause (e.g. forgetting ``<pybind11/stl.h>``).
`#1077 <https://github.com/pybind/pybind11/pull/1077>`_.
v2.2.0 (August 31, 2017)
-----------------------------------------------------
* Support for embedding the Python interpreter. See the
:doc:`documentation page </advanced/embedding>` for a
full overview of the new features.
`#774 <https://github.com/pybind/pybind11/pull/774>`_,
`#889 <https://github.com/pybind/pybind11/pull/889>`_,
`#892 <https://github.com/pybind/pybind11/pull/892>`_,
`#920 <https://github.com/pybind/pybind11/pull/920>`_.
.. code-block:: cpp
#include <pybind11/embed.h>
namespace py = pybind11;
int main() {
py::scoped_interpreter guard{}; // start the interpreter and keep it alive
py::print("Hello, World!"); // use the Python API
}
* Support for inheriting from multiple C++ bases in Python.
`#693 <https://github.com/pybind/pybind11/pull/693>`_.
.. code-block:: python
from cpp_module import CppBase1, CppBase2
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
class PyDerived(CppBase1, CppBase2):
def __init__(self):
CppBase1.__init__(self) # C++ bases must be initialized explicitly
CppBase2.__init__(self)
* ``PYBIND11_MODULE`` is now the preferred way to create module entry points.
``PYBIND11_PLUGIN`` is deprecated. See :ref:`macros` for details.
`#879 <https://github.com/pybind/pybind11/pull/879>`_.
.. code-block:: cpp
// new
PYBIND11_MODULE(example, m) {
m.def("add", [](int a, int b) { return a + b; });
}
// old
PYBIND11_PLUGIN(example) {
py::module m("example");
m.def("add", [](int a, int b) { return a + b; });
return m.ptr();
}
* pybind11's headers and build system now more strictly enforce hidden symbol
visibility for extension modules. This should be seamless for most users,
but see the :doc:`upgrade` if you use a custom build system.
`#995 <https://github.com/pybind/pybind11/pull/995>`_.
* Support for ``py::module_local`` types which allow multiple modules to
export the same C++ types without conflicts. This is useful for opaque
types like ``std::vector<int>``. ``py::bind_vector`` and ``py::bind_map``
now default to ``py::module_local`` if their elements are builtins or
local types. See :ref:`module_local` for details.
`#949 <https://github.com/pybind/pybind11/pull/949>`_,
`#981 <https://github.com/pybind/pybind11/pull/981>`_,
`#995 <https://github.com/pybind/pybind11/pull/995>`_,
`#997 <https://github.com/pybind/pybind11/pull/997>`_.
* Custom constructors can now be added very easily using lambdas or factory
functions which return a class instance by value, pointer or holder. This
supersedes the old placement-new ``__init__`` technique.
See :ref:`custom_constructors` for details.
`#805 <https://github.com/pybind/pybind11/pull/805>`_,
`#1014 <https://github.com/pybind/pybind11/pull/1014>`_.
.. code-block:: cpp
struct Example {
Example(std::string);
};
py::class_<Example>(m, "Example")
.def(py::init<std::string>()) // existing constructor
.def(py::init([](int n) { // custom constructor
return std::make_unique<Example>(std::to_string(n));
}));
* Similarly to custom constructors, pickling support functions are now bound
using the ``py::pickle()`` adaptor which improves type safety. See the
:doc:`upgrade` and :ref:`pickling` for details.
`#1038 <https://github.com/pybind/pybind11/pull/1038>`_.
* Builtin support for converting C++17 standard library types and general
conversion improvements:
1. C++17 ``std::variant`` is supported right out of the box. C++11/14
equivalents (e.g. ``boost::variant``) can also be added with a simple
user-defined specialization. See :ref:`cpp17_container_casters` for details.
`#811 <https://github.com/pybind/pybind11/pull/811>`_,
`#845 <https://github.com/pybind/pybind11/pull/845>`_,
`#989 <https://github.com/pybind/pybind11/pull/989>`_.
2. Out-of-the-box support for C++17 ``std::string_view``.
`#906 <https://github.com/pybind/pybind11/pull/906>`_.
3. Improved compatibility of the builtin ``optional`` converter.
`#874 <https://github.com/pybind/pybind11/pull/874>`_.
4. The ``bool`` converter now accepts ``numpy.bool_`` and types which
define ``__bool__`` (Python 3.x) or ``__nonzero__`` (Python 2.7).
`#925 <https://github.com/pybind/pybind11/pull/925>`_.
5. C++-to-Python casters are now more efficient and move elements out
of rvalue containers whenever possible.
`#851 <https://github.com/pybind/pybind11/pull/851>`_,
`#936 <https://github.com/pybind/pybind11/pull/936>`_,
`#938 <https://github.com/pybind/pybind11/pull/938>`_.
6. Fixed ``bytes`` to ``std::string/char*`` conversion on Python 3.
`#817 <https://github.com/pybind/pybind11/pull/817>`_.
7. Fixed lifetime of temporary C++ objects created in Python-to-C++ conversions.
`#924 <https://github.com/pybind/pybind11/pull/924>`_.
* Scope guard call policy for RAII types, e.g. ``py::call_guard<py::gil_scoped_release>()``,
``py::call_guard<py::scoped_ostream_redirect>()``. See :ref:`call_policies` for details.
`#740 <https://github.com/pybind/pybind11/pull/740>`_.
* Utility for redirecting C++ streams to Python (e.g. ``std::cout`` ->
``sys.stdout``). Scope guard ``py::scoped_ostream_redirect`` in C++ and
a context manager in Python. See :ref:`ostream_redirect`.
`#1009 <https://github.com/pybind/pybind11/pull/1009>`_.
* Improved handling of types and exceptions across module boundaries.
`#915 <https://github.com/pybind/pybind11/pull/915>`_,
`#951 <https://github.com/pybind/pybind11/pull/951>`_,
`#995 <https://github.com/pybind/pybind11/pull/995>`_.
* Fixed destruction order of ``py::keep_alive`` nurse/patient objects
in reference cycles.
`#856 <https://github.com/pybind/pybind11/pull/856>`_.
* NumPy and buffer protocol related improvements:
1. Support for negative strides in Python buffer objects/numpy arrays. This
required changing integers from unsigned to signed for the related C++ APIs.
Note: If you have compiler warnings enabled, you may notice some new conversion
warnings after upgrading. These can be resolved with ``static_cast``.
`#782 <https://github.com/pybind/pybind11/pull/782>`_.
2. Support ``std::complex`` and arrays inside ``PYBIND11_NUMPY_DTYPE``.
`#831 <https://github.com/pybind/pybind11/pull/831>`_,
`#832 <https://github.com/pybind/pybind11/pull/832>`_.
3. Support for constructing ``py::buffer_info`` and ``py::arrays`` using
arbitrary containers or iterators instead of requiring a ``std::vector``.
`#788 <https://github.com/pybind/pybind11/pull/788>`_,
`#822 <https://github.com/pybind/pybind11/pull/822>`_,
`#860 <https://github.com/pybind/pybind11/pull/860>`_.
4. Explicitly check numpy version and require >= 1.7.0.
`#819 <https://github.com/pybind/pybind11/pull/819>`_.
* Support for allowing/prohibiting ``None`` for specific arguments and improved
``None`` overload resolution order. See :ref:`none_arguments` for details.
`#843 <https://github.com/pybind/pybind11/pull/843>`_.
`#859 <https://github.com/pybind/pybind11/pull/859>`_.
* Added ``py::exec()`` as a shortcut for ``py::eval<py::eval_statements>()``
and support for C++11 raw string literals as input. See :ref:`eval`.
`#766 <https://github.com/pybind/pybind11/pull/766>`_,
`#827 <https://github.com/pybind/pybind11/pull/827>`_.
* ``py::vectorize()`` ignores non-vectorizable arguments and supports
member functions.
`#762 <https://github.com/pybind/pybind11/pull/762>`_.
* Support for bound methods as callbacks (``pybind11/functional.h``).
`#815 <https://github.com/pybind/pybind11/pull/815>`_.
* Allow aliasing pybind11 methods: ``cls.attr("foo") = cls.attr("bar")``.
`#802 <https://github.com/pybind/pybind11/pull/802>`_.
* Don't allow mixed static/non-static overloads.
`#804 <https://github.com/pybind/pybind11/pull/804>`_.
* Fixed overriding static properties in derived classes.
`#784 <https://github.com/pybind/pybind11/pull/784>`_.
* Added support for write only properties.
`#1144 <https://github.com/pybind/pybind11/pull/1144>`_.
* Improved deduction of member functions of a derived class when its bases
aren't registered with pybind11.
`#855 <https://github.com/pybind/pybind11/pull/855>`_.
.. code-block:: cpp
struct Base {
int foo() { return 42; }
}
struct Derived : Base {}
// Now works, but previously required also binding `Base`
py::class_<Derived>(m, "Derived")
.def("foo", &Derived::foo); // function is actually from `Base`
* The implementation of ``py::init<>`` now uses C++11 brace initialization
syntax to construct instances, which permits binding implicit constructors of
aggregate types. `#1015 <https://github.com/pybind/pybind11/pull/1015>`_.
.. code-block:: cpp
struct Aggregate {
int a;
std::string b;
};
py::class_<Aggregate>(m, "Aggregate")
.def(py::init<int, const std::string &>());
* Fixed issues with multiple inheritance with offset base/derived pointers.
`#812 <https://github.com/pybind/pybind11/pull/812>`_,
`#866 <https://github.com/pybind/pybind11/pull/866>`_,
`#960 <https://github.com/pybind/pybind11/pull/960>`_.
* Fixed reference leak of type objects.
`#1030 <https://github.com/pybind/pybind11/pull/1030>`_.
* Improved support for the ``/std:c++14`` and ``/std:c++latest`` modes
on MSVC 2017.
`#841 <https://github.com/pybind/pybind11/pull/841>`_,
`#999 <https://github.com/pybind/pybind11/pull/999>`_.
* Fixed detection of private operator new on MSVC.
`#893 <https://github.com/pybind/pybind11/pull/893>`_,
`#918 <https://github.com/pybind/pybind11/pull/918>`_.
* Intel C++ compiler compatibility fixes.
`#937 <https://github.com/pybind/pybind11/pull/937>`_.
Squashed 'examples/knxPython/pybind11/' changes from 59a2ac27..941f45bc 941f45bc chore: prepare for 2.13.1 63020d33 docs: prepare for 2.13.1 (#5203) dd0e4a0b feat(types): add support for Typing.Callable Special Case (#5202) 3b47b464 fix: use manual padding of instance_map_shard (#5200) 0c69e1eb chore: prepare for 2.13.0 (#5198) 2be85c60 feat(types): adds support for TypeGuard and TypeIs (#5194) b5ec7c71 ci: release with trusted publisher and attestations (#5196) 26281c79 feat(types): adds support for Never and NoReturn from python Typing (#5193) 183059f9 feat(types): add support for typing.Literal type (#5192) aebcd704 Add TypeVars / method generics typing (#5167) 9ec64e37 docs: prepare for 2.13.0 (#5187) a406a62e fix: use `std::addressof` in type_caster_base.h (#5189) f1a2e03d feat: remove Python 3.6 support (#5177) 5552cbf2 Add Python 3.10, 3.11, 3.12 to win32 job matrix. (#5179) 186df220 docs: building suggestions update (#5168) baa540ec fix: support free-threaded CPython with GIL disabled (#5148) 1961b96a chore(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs (#5170) fdd20d69 chore(deps): bump seanmiddleditch/gha-setup-ninja in the actions group (#5169) 7c4ac91d Add type[T] support to typing.h (#5166) 68405a11 Add `Union` and `Optional` to typing.h (#5165) ab955f15 Fix refcount bug involving trampoline functions with `PyObject *` return type. (#5156) 35ff42b5 Add a pybind function to clear a list. (#5153) 9b3a2000 fix(cmake): improved cross-compilation support (#5083) b9794be4 chore(deps): update pre-commit hooks (#5154) 1a0ff405 tests: avoid immortal objects in tests (#5150) 7187894e fix(cmake): old cmake boost bug (#5149) ae6432b8 fix: Python 3.13t with GIL (#5139) a5b9e50f fix: added check on iterator end position (#5129) ce08e370 fix: handle NULL correctly (#5145) 86a64290 chore: some cleanup (#5137) 4d0fcedc fix: support Python 3.13.0b1 (PEP 667 fix) (#5127) b07fddb2 --- (#5130) aa98d957 chore(deps): update pre-commit hooks (#5123) ede061ca chore(deps): bump the actions group with 1 update (#5082) 75025779 chore(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs (#5122) c9747570 chore(deps): bump idna from 3.6 to 3.7 in /docs (#5121) 6497b3f2 docs(numpy): drop duplicated ndim (#5119) a9256a6d chore: docs and nox bump (#5071) f3984794 ci: macos-latest is changing to macos-14 ARM runners (#5109) 19a6b9f4 Fix typo in changelog date (#5096) f33f6afb chore(deps): update pre-commit hooks (#5084) 7f2214bc chore: bump cmake to 3.29 (#5075) 7af193e7 chore: get back to work b91b584d docs: remove extra space 3e9dfa28 docs: a few missed changes for 2.12 (#5074) 6b5674f3 chore: prepare 2.12.0 (#5070) 67c9c568 fix: fully qualify usages of concat to protect against ADL (#4955) 0efff79f Bug fixes: Add missing `handle_type_name` specializations. (#5073) 705efcce feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050) e0f2c715 tests: hide warning on clang (#5069) 65370f33 Create handle_type_name specialization to type-hint variable length tuples (#5051) ddb8b67a fix(cmake): allow forcing old FindPython (#5042) ec73bdaf ci: skipping test for Windows Clang failure (#5062) 8b48ff87 chore(deps): bump the actions group with 3 updates (#5024) 0518bf9f ci: ignore actions/checkout until v5 comes out e84d446d ci: Ignore v1 updates for checkout (#5023) 416f7a44 chore(deps): update pre-commit hooks (#5018) 768cebe1 doc: add litgen to the automatic generators list (compiling.rst) (#5012) 869cc1ff install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 39e65e10 ci: group dependabot updates (#4986) 31b7e140 bugfix: removing typing and duplicate ``class_`` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985) aec6cc54 fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856) f29def9e chore(deps): update pre-commit hooks (#4994) b583336c chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995) 976fea05 Fix Clazy warnings (#4988) eeac2f45 chore(deps): bump actions/upload-artifact from 3 to 4 (#4975) e8a43ea9 chore(deps): bump actions/download-artifact from 3 to 4 (#4976) dc477fac fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973) daea1130 fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786) 7d538a42 fix: make_static_property_type() (#4971) 68322895 chore(deps): bump actions/setup-python from 4 to 5 (#4965) c1e06f5b chore(deps): update pre-commit hooks (#4963) a67d7865 fix(stl_bind): Enable `bind_map` with `using` declarations. (#4952) 4bb6163b chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951) dc9b3959 pybind11.pc: use pcfiledir for relative destinations (#4830) 9591cfb0 fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941) 6831666f ci: add more versions of numpy/scipy/pypy (#4714) 6cf90e72 fix(cmake): avoid really slow compile on emscripten (#4642) b389ae77 chore: update changelog script for categories (#4942) e250155a Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2c35fde3 Fix refcount bug introduced with PR #4916. (#4927) c758b81f chore: move to ruff-format (#4912) 0a974fed chore(deps): update pre-commit hooks (#4923) f2606930 Use newer PyCode API and other fixes (#4916) 31b0a5d9 fix doc typo 76b7f536 Python_ADDITIONAL_VERSIONS: 3.12 (#4909) a18c10f6 fix(cmake): make library component optional (#4805) 3aece819 chore: update hooks and Ruff config (#4904) 1e28599e fix: Add missing spaces to error string (#4906) fa27d2fd Adapt to changed function name in Python 3.13 (#4902) bf88e29c Bug fix: Replace bare `static exception<T>` with `gil_safe_call_once_and_store`. (#4897) 3414c56b Workaround NVCC parse failure in `cast_op` (#4893) 7969049d Comment out failing job, with link to #4889 (#4890) 74439a64 feature: Use typed iterators in `make_*iterator` (#4876) 0cbd92ba Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) 0e2c3e5d Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) 6c772085 chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875) 2b2e4ca4 chore(deps): update pre-commit hooks (#4868) dd64df73 MAINT: Remove np.int_ (#4867) 0a756c0b MAINT: Include `numpy._core` imports (#4857) f468b070 Add 2 missing `throw error_already_set();` (#4863) 7e5edbc9 Avoid copy in iteration by using const auto & (#4861) 5891867e fix(cmake): support DEBUG_POSTFIX correctly (#4761) 4fb111bd fix(cmake): correctly detect FindPython policy and better warning (#4806) d06d5369 Fix small bug introduced with PR #4735 (#4845) 8c7b8dd0 fix: Missing typed variants of `iterator` and `iterable` (#4832) b4573674 Update render for buffer sequence and handle (#4831) c9149d99 fix: Use lowercase builtin collection names (#4833) c8360593 feature: Support move-only iterators in `py::make_*iterator` (#4834) 4a2f7e46 chore(deps): bump actions/checkout from 1 to 4 (#4836) 467fe27b chore(deps): update pre-commit hooks (#4838) c9638a19 Help Coverty avoid generating a false positive. (#4817) db412e6e fix: Render `py::function` as `Callable` (#4829) e705fb5f Fix enum's `__str__` docstring (#4827) 1adac5a5 `PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779. See comments there. (#4819) 76b88581 fix: Different MSVC versions may be ABI incompatible, guard with _MSC_VER (#2898) (#4779) b9359cea Remove newlines from docstring signature (#4735) f47ff328 Fix grammar in functions.rst (#4791) 80bcd21f [ci skip] Adopt nanobind config. (#4792) add281a2 Migrate to readthedocs configuration file v2¶ (#4789) 9039e6ac chore: use 2x faster black mirror (#4784) 4bf60c60 Disable strip when build type is unset (#4454) (#4780) 690a115d Add `py::set_error()`, use in updated `py::exception<>` documentation (#4772) 824dc27a CI: Reenable an NVHPC Test (#4764) f8703154 Provide better type hints for a variety of generic types (#4259) 9ad7e827 docs: Remove upper bound on pybind11 in example pyproject.toml for setuptools (#4774) 413e6328 chore(deps): update pre-commit hooks (#4770) 17b61430 clang 17 compatibility fixes (#4767) f3e06028 Add command to check for vX.Y.Z tag vs pybind11/_version.py consistency. (#4757) 8d08dc64 Copy v2.11.1 changelog section as released. (#4755) 99131a85 Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753) ec1b57c5 Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (not just PyPy Windows). (#4751) 0620d716 Update README.rst - Add missing comma in the list of acknowlegements (#4750) e85696e8 Post release version bump (#4747) 1a917f18 docs: preparation for v2.11.0 release (#4744) b33d06f6 bugfix: fixes a test suite bug in the __new__ example (#4698) 2e5f5c4c fix: support CMake 3.27, drop 3.4 (#4719) 6d22dba8 Warning on comparing wrapper enums with is (#4732) b2732c6e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4718) 47dc0c4b chore(deps): update pre-commit hooks (#4727) d462dd91 chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731) 782b6281 Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728) 5ccb9e41 chore: ruff moved to astral-sh (#4726) 2fb3d7cb Trivial refactoring to make the capsule API more user friendly. (#4720) e10da79b Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved. (#4717) bc1bcf7c chore: 3.12 + cleanup (#4713) 84932280 Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from which pip is called. (#4705) 86f60a0c pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704) 0e43fcc7 Python 3.12b2 testing (#4695) c679a920 chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687) 3617f355 chore(deps): update pre-commit hooks (#4689) 29487dee Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691) d0232b11 Use annotated for array (#4679) 8e1f9d5c Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` specializations. (#4674) 6e6bcca5 Create s Security Policy (#4671) ce9bbc0a Python 3.11+: Add `__notes__` to `error_already_set::what()` output. (#4678) 19816f0d chore: update changelog, with target date for v2.11.0 release (#4677) d72ffb44 ci: set minimal permissions to github workflows (#4665) cca4c51c Update errors in string "Explicit conversions" docs (#4658) e9b961d9 Elide to-python conversion of setter return values (#4621) 90312a6e Add `type_caster<PyObject>` (#4601) f7016546 Introduce recursive_container_traits (#4623) b3e88ecf chore(deps): update pre-commit hooks (#4648) dff75a62 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4650) da919262 fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639) 956390a8 fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643) 5e946c2f chore(deps): update pre-commit hooks (#4605) 3f366ff8 Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 6de6191a Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere **except when libc++ is in use** (#4319) ff7f5dfc 1. Fully test unstable ABI (#4635) 07725c28 Introduce `pybind11::detail::is_move_constructible` (#4631) 071f35ab chore(deps): bump jwlawson/actions-setup-cmake from 1.13 to 1.14 (#4632) ed466da5 chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 (#4604) 7ab88d2e chore(deps): bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 (#4602) 4ce05175 ci: Python 3.12 optional test job (#4575) 654fe926 Introduce `get_python_state_dict()` for Python 3.12 compatibility. (#4570) 1e8b52a9 bugfix: allow noexcept lambdas in C++17. Fix #4565 (#4593) 66f12df0 chore: make #4587 use proper cpp17 feature macro (#4592) 5bbcba54 use C++17 syntax to get rid of recursive template instantiations for concatenating type signatures (#4587) 286873ec chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#4584) cf7d2e6f Change `always_forkserver_on_unix()` to `use_multiprocessing_forkserver_on_linux()` (#4577) c4c15d4b docs: changelog for 2.10.4 (#4532) 04ef4e42 chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.1 (#4576) 442261da Remove test code that does not exercise anything in pybind11, but breaks between Python 3.12alpha3 (still working) and 3.12alpha6 (broken): (#4559) cbb876cc chore(deps): update pre-commit hooks (#4552) 3cc7e425 add --version option to pybind11-config (#4526) 438034c5 chore: move to Ruff and add rules (#4483) a19daeac Inconsistent comments between 2 templates of `unchecked()`. (#4519) 68211d41 fix: nicer stack level for warning (#4516) 6a5e6007 Make warning suppressions MINGW-specific again. (#4515) d1956eab Appease new flake8 B028 error: (#4513) 08a4a47a Revert "Go back to CMake 3.25.2 (#4496)" (#4503) 535f81a1 fix: tests dir has started to show up in packaging (#4510) 8dcced29 Always display python type information in cast errors (#4463) 531144dd Replace "whitelist" with "allowlist" (#4506) b8f28551 Go back to CMake 3.25.2 (#4496) f8713ec4 Revert "bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486)" (#4501) 8a90b367 chore(deps): update pre-commit hooks (#4495) b2c1978c bugfix: Keep registered types until after Py_Finalize(). Fix #4459 (#4486) 9ef65cee chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 (#4493) 08a89fac bugfix: delete proper ctors in gil.h (#4490) 3efe9d4c chore: update to black 23 (#4482) 44e93682 Use PyConfig_InitPythonConfig instead of PyConfig_InitIsolatedConfig (#4473) c71e3af7 Bump isort version to 5.12.0 (#4480) a500f439 Resolve new flake8 error (#4462) c709d2a8 Make sure to properly untrack gc objects before freeing them (#4461) e53d58af Ensure `import pybind11_tests` traceback is shown. (#4455) d821788b Add clang15 C++20 job (#4443) a34596bf chore: back to work b2d7ad72 chore: prepare for 2.10.3 (#4437) 769fd3b8 chore(deps): update pre-commit hooks (#4439) e3e24f3f fix: issuses detected by static analyzer (#4440) 6da268a5 ci: remove clang 10 C++20 (it broke recently) (#4438) f12e098f Fix `detail::obj_class_name()` to work correctly for meta classes. (#4436) 60f02f5f fix: improve the error reporting for inc_ref GIL failures (#4427) 70af9873 docs: fixed typo in spelling of first (#4428) 7f23e9f3 chore: update clang-tidy to 15 (#4387) 0694ec6a chore: preapre for 2.10.2 release (#4414) 3fd1520d docs: changelog for next version (#4413) ee4b9f5d Fix ODR violations in our Eigen Tensor tests (#4412) a97c4d22 fix(cmake): support Windows ARM cross-compilation (#4406) 09db6445 IPO/LTO support for ICX (IntelLLVM) compiler (#4402) ece1206b ci: set `env: VERBOSE: 1` (#4405) 89c3561d Fix multi-context new Python linking mode (#4401) ff42f525 Systematically add `-DCMAKE_VERBOSE_MAKEFILE=ON` to obtain full command lines related to `-Wodr` (#4398) 9727dcda chore: future safe bugbear opinionated warnings (#4393) 663b86c2 Add flake8 `B905` to `extend-ignore` in setup.cfg (#4391) 9db98801 Correct class names for KeysView, ValuesView and ItemsView in bind_map (#4353) 00126859 Add option for enable/disable enum members in docstring. (#2768) 65374c8e `pybind11::handle` `inc_ref()` & `dec_ref()` `PyGILState_Check()` **excluding** `nullptr` (#4246) 65cc9d2a chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 (#4389) 4768a6f8 chore(deps): update pre-commit hooks (#4386) a672de7c Fix source comment typo (#4388) a6e75e4d chore(deps): bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#4384) 6a1023e3 chore(deps): bump deadsnakes/action from 2.1.1 to 3.0.0 (#4383) 5b55f8fe Replace `ubuntu-latest` with `ubuntu-22.04` (#4382) e133c33d chore: Convert direct multiprocessing.set_start_method("forkserver") call to a pytest fixture. (#4377) 358ba459 Fix test added with PR #4330 (#4372) b14d58b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#4370) 88699849 scoped_interpreter. overloaded constructor: PyConfig param (#4330) 06003e82 Introduce a new style of warning suppression based on push/pop (#4285) 9907bedc fix(.github): fix bug-report issue template (#4363) 9c18a74e Use `multiprocessing` `start_method` `"forkserver"` (#4306) 48949222 Use `PyEval_InitThreads()` as intended (#4350) 296615ad Add macos_brew_install_llvm to ci.yml (#4326) 88b019a8 fix pybind11Tools.cmake typo causing Unknown arguments (#4327) 1f04cc70 Add windows_clang to ci.yml (#4323) ee2b5226 Fix functional.h bug + introduce test to verify that it is fixed (#4254) 0176632e chore: sync blacken-docs hook with black (#4304) 2441d25b chore(deps): update pre-commit hooks (#4302) 252ed8fb docs: prepare for 2.10.1 release (#4279) b1bd7f26 fix: define (non-empty) `PYBIND11_EXPORT_EXCEPTION` only under macOS. (#4298) 3a2c96bd fix: unicode surrogate character in Python exception message. (#4297) 5bc0943e Ensure config, build, toolchain, spelling, etc. issues are not masked. (#4255) b07d08f6 Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) b07223fa fix: improve bytes to str decoding error handling (#4294) fcb5554d ci: move to final release of 3.11 (#4286) 07a61aa1 Fix char8_t support (#4278) d1c31e9a chore: improve issue template (#4276) 4fe905d4 fix: add flag for overriding classic Python search values (#4195) 8ea75ab4 Fix casts to void* (#4275) 17c1e27b fix: Revert pfect args make iterator (#4234) 91cfb770 Revert "feat: add entrypoint for cmake modules dir" (#4270) 2ce76f78 Cleanup casters to release none() to avoid ref counting (#4269) 36ccb08b docs: update changelog (#4265) 128d988e ci: fix labeler 1d4a65e2 feat: add entrypoint for cmake modules dir (#4258) c3854682 ci(fix): don't label weekly dep updates & ci fixes (#4264) 17c68091 ci: update PGI build (old one no longer signed) (#4260) fab1eebe First draft of Eigen::Tensor support (#4201) b926396b bugfix: py contains raises errors when appropiate (#4209) 5b5547bc chore(deps): bump ilammy/msvc-dev-cmd from 1.11.0 to 1.12.0 (#4242) 964c4997 Minor `py::capsule` cleanup. No functional change. (#4238) 8781daf6 chore: Optimize iterator advance() call (#4237) 0927c4d1 chore: Improve PyCapsule exception handling (#4232) ff7b6971 chore(deps): bump jwlawson/actions-setup-cmake from 1.12 to 1.13 (#4233) da104a9e Reproducer and fix for issue encountered in smart_holder update. (#4228) 7c6f2f80 fix: PyCapsule_GetDestructor is allowed to return a nullptr destructor (#4221) 4a421562 test_eigen.py test_nonunit_stride_to_python bug fix (ASAN failure) (#4217) 6cb21474 fix: NVCC 11.4.0 - 11.8.0 host bug workaround (#4220) 864ed112 chore: steal arg_v.value from copied arg in unpacking_collector (#4219) 8275b769 ci: update pre-commit schedule (#4212) 600d6976 [pre-commit.ci] pre-commit autoupdate (#4210) c78dfe69 bugfix: Add error checking to list append and insert (#4208) da8c730a [pre-commit.ci] pre-commit autoupdate (#4197) 5aa0fad5 perf: call reserve method in set and map casters (#4194) f743bdf8 Avoid local_internals destruction (#4192) 95d0e71a test C++14 on MSVC (#4191) 424ac4fe fix: Windows compiler, missing object initializer (#4188) d02f219f [pre-commit.ci] pre-commit autoupdate (#4189) 9c04c7b0 chore: Delete copy ctor/assign for GIL RAIIs (#4183) 1874f8fa Clarify GIL documentation (#4057) 8524b20c fix: Python-3.12 compatibility (#4168) 64f72818 [pre-commit.ci] pre-commit autoupdate (#4178) aa8f8baa [pre-commit.ci] pre-commit autoupdate (#4171) 8756f16e [pre-commit.ci] pre-commit autoupdate (#4151) 283f10dc chore(deps): bump ilammy/msvc-dev-cmd from 1.10.0 to 1.11.0 (#4161) 0b4c1bc2 test: ConstructorStats newline (PyPy) (#4167) fac23b6f `error_fetch_and_normalize`: PyPy 7.3.10+ does not need the PR #4079 workaround anymore. (#4154) a48ec3e8 Words matter updates (#4155) 68e6fdaa embed.h Python 3.11 `config.use_environment=1` + `PYTHONPATH` test (#4119) 81f35d29 chore: Mark detail:forward_like as constexpr (#4147) 2d59b43c Qualify detail::forward_like to avoid conflict. (#4136) b884b9dc chore: Add pytests for constructing pytypes from iterable (#4138) bbb89da1 fix(cmake): support vcpkg, try 2 (#4123) 5bdd3d59 feat(cmake): add installation support for pkg-config dependency detection (#4077) 14c84654 [pre-commit.ci] pre-commit autoupdate (#4126) 6abb7de6 chore: Use PyObject_GenericGetDict and PyObject_GenericSetDict functions (#4106) 8a4bca82 fix(cmake): use case-insensitive CMAKE_BUILD_TYPE comparisons (#4078) 29f4940c Fix copy-paste oversight (#4118) ba5ccd84 [pre-commit.ci] pre-commit autoupdate (#4104) 88a1bb92 chore: remove unnecessary temporary std::pair (#4103) f8e8403b Open pybind11 namespace with consistent visility. (#4098) aa953710 [pre-commit.ci] pre-commit autoupdate (#4090) 36655302 Add `-DPYBIND11_WERROR=ON` to mingw cmake commands (#4073) 1e3400b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#4091) d70f54b0 docs: Missing semicolons (#4094) b07975f4 Fix missing undef in pytypes (#4087) 9a296373 More systematic gcc & clang coverage (#4083) cb35a3c1 For PyPy only, re-enable old behavior (runs the risk of masking bugs) (#4079) 42b54507 chore: use explicit defaulting in pyobject macros (#4017) f47f1edf Fix #3812 and fix const of inplace assignments (#4065) ef7d971e [pre-commit.ci] pre-commit autoupdate (#4082) 59f03ee3 tests: include pypy3.9 in nox if present 5116a629 fix(spelling): PYTHON_VERSIONS 8d82f298 chore: back to work aa304c9c chore: preapre for 2.10.0 release (#4068) 87f64c43 docs: update changelog for 2.10.0 (#4066) 1d811910 Disable implicit conversion of `0` to `pybind11::handle`. (#4008) bc9315fe chore: optimize sparse matrix casting with python tuple (#4064) 6b60d97d docs: use Furo (#3109) 7c3a0317 chore: bump clang-tidy to 13 (#3997) 023b3f32 Undo accidental one-line change under PR #3913 (#4060) 790241bc [pre-commit.ci] pre-commit autoupdate (#4058) f9f00495 Properly visit self in >=3.9 traverse (#4051) 432bc5cf Add `std::string clean_type_id(const char *typeid_name)` overload (in namespace detail). (#4049) 85bc0884 Report `C++ Info:` via `pytest_report_header()` (#4046) cd08869d PYBIND11_NAMESPACE consistency fixes. (#4043) 0ab1fcfb docs: update changelog (#4042) 2af163d9 Fix: 3.11 beta support (#3923) c42e3ab7 [pre-commit.ci] pre-commit autoupdate (#4041) bc1f9f9b chore(deps): bump actions/setup-python from 3 to 4 (#3999) 5a3a1e34 chore: simpler dependabot (#4035) 479e9a50 Fix arrays with zero-size dimensions (#4038) 374a5b00 [docs] Fix "Enumerations and internal types" example (#4034) dd3bf7fd [pre-commit.ci] pre-commit autoupdate (#4030) c3e9173f ci: use almalinux instead of centos, add 9 (#4020) 2ad974c9 [pre-commit.ci] pre-commit autoupdate (#4021) 0964a909 Add a missing std::move in numpy.h (#4005) 21f0e72b [pre-commit.ci] pre-commit autoupdate (#4003) 0e956a2e chore(deps): bump pre-commit/action from 2.0.3 to 3.0.0 (#3992) e2dcd954 chore: optimize dictionary access in strip_padding numpy (#3994) 918892b9 Make dtype::num() return type consistent with other functions (#3995) c5fa3436 [pre-commit.ci] pre-commit autoupdate (#3951) 554c0453 enable two new clang-tidy checks (#3988) 42a41bf3 remove useless ctor (#3989) a05bc3d2 error_already_set::what() is now constructed lazily (#1895) 58802de4 perf: Add object rvalue overload for accessors. Enables reference stealing (#3970) 9f7b3f73 addl unit tests for PR #3970 (#3977) b24c5ed2 Replace "Unknown internal error occurred" with a more helpful message. (#3982) de4ba92c Add `error_scope` to `detail::get_internals()` (#3981) 8da58da5 chore: perfectly forward all make_iterator args (#3980) 748ae227 Add missing error handling to `module_::def_submodule` (#3973) 68f80105 chore: add err guard to capsule destructor and add a move to iostream (#3958) 8d14e666 fix: avoid `catch (...)` for expected `import numpy` failures (#3974) 2c549eb7 Move `PyErr_NormalizeException()` up a few lines (#3971) 2d4a20c8 chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969) 4624e8e1 Don't return pointers to static objects with return_value_policy::take_ownership. (#3946) c42414db (perf): use a rvalue cast in func_wrapper (#3966) 918d4481 fix(cmake): support cross-compiles with classic Python (#3959) 1e4bd22b fix(cmake): support release and debug at the same time (#3948) a8b3ff30 chore: add a couple of moves in pybind11.h (#3941) dff6fa05 fix(cmake): avoid issue with NVCC + Windows (#3947) 1a7b1298 ci: fix cuda issue & MSVC spurious warning (#3950) 72eea20a Fix py::cast from pytype rvalue to pytype (#3949) 48c7be4a Undoing previous accidental commit. Sorry I forgot to git branch. 5621ab85 Do we have a unit test for the traceback code in error_string()? ad146b2a [pre-commit.ci] pre-commit autoupdate (#3933) 2e331308 chore: remove unused include from stl.h (#3928) 68a0b2df Add anyset & frozenset, enable copying (cast) to std::set (#3901) 9a16e55a [pre-commit.ci] pre-commit autoupdate (#3903) f306012b fix: file extension on windows with cp36 and cp37 (#3919) bdc7dd8c chore: update NVIDIA-PGI CI workflow (#3922) 287e4f23 Test pickling a simple callable (does not work). (#3906) f0b9f755 Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913) 75007dda chore: rule of 3 for strdup guard (#3905) 9bc27044 Add tests for cast from tuple to sequence containers (#3900) 03252067 chore(deps): bump actions/upload-artifact from 2 to 3 (#3899) be4a634c chore(deps): bump actions/checkout from 2 to 3 (#3896) 82455a41 Minor opt to cache tuple casting (#3894) 2a7cb008 chore(deps): bump actions/download-artifact from 2 to 3 (#3897) e79293cf chore(deps): bump actions/cache from 2 to 3 (#3898) b58b772b chore(deps): bump actions/setup-python from 2 to 3 (#3895) 1a8603e4 ci: dependabot major versions for official actions (#3888) e8e229fa [pre-commit.ci] pre-commit autoupdate (#3885) 1c636f4d chore: Change numpy dtype from_args call sig to const ref (#3878) fbcde3f0 chore: enable clang-tidy check modernize-use-nullptr (#3881) 30716c67 Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 3829b762 chore: simplify numpy dtype ctor (#3869) 45164c1f Added deleted copy constructor for error_scope to comply with rule of 3. (#3870) ba7a0fac Expand dtype accessors (#3868) fa98804a Adds set_name method of pybind11::capsule class (#3866) ad0de0f5 [pre-commit.ci] pre-commit autoupdate (#3863) 9969f3b5 ci: drop win2016 (#3854) 088ad4f2 Cleanup cast_safe<void> specialization (#3861) e3aa215b Add perfect forwarding to make_iterator calls (#3860) 1b27b744 chore: Make stl_bind take slice as const_ref (#3852) ab59f45d Prefer make_caster<T> to type_caster<T> (#3859) c4e29528 perf: Add more moves and optimize (#3845) f2f0c690 [pre-commit.ci] pre-commit autoupdate (#3848) b3ebd11d feature: support compilers that use std::experimental::filesystem (#3840) 65ec5de5 chore: bump changelog for 2.9.2 (#3834) 42d8593a style: bump black (#3831) 3a183d4b fix: improve str exceptions and consistency with python (#3826) 7742be02 Revert "ci: test pypy 3.9" (#3828) 461937d3 ci: test pypy 3.9 (#3789) 146695a9 fix: better exception and error handling for capsules (#3825) 47079b9e (perf): Add missing move in sp matrix caster and microopt char concats (#3823) b22ee64c Add type_caster<std::monostate> (#3818) 67089cd3 [pre-commit.ci] pre-commit autoupdate (#3817) b3a43d13 Use rvalue reference for std::variant cast_op<T> (#3811) 8b1944d3 Remove idioms in code comments (#3809) a7e7a6e8 Docs: No Strip in Debug (#3779) f8a532a7 [pre-commit.ci] pre-commit autoupdate (#3800) 91a6e129 PYBIND11_OBJECT_CVT should use namespace for error_already_set() (#3797) d75b3536 CI: MSVC Debug Build (#3784) 2dd52544 fix: missing move in eval.h (#3775) af08a95b fix: potential memory leak in pypy (#3774) 42a8e312 Improve Python 3.11 support (#3694) 465b2e0b Use sysconfig in Python >= 3.10 (#3764) 5f9b090a ci: fix PyPy (#3768) 061c6177 [pre-commit.ci] pre-commit autoupdate (#3765) f495dfc4 cast: Qualify symbol usage in PYBIND11_TYPE_CASTER (#3758) da15bb20 Cast bytearray to string (#3707) 91f597be [pre-commit.ci] pre-commit autoupdate (#3754) 9aa676d3 fix: clear local internals after finalizing interpreter #2101 (#3744) 44596bc4 Fix exception handling when pybind11::weakref() fails. (#3739) 009ffc33 MSVC C++20 test_eigen (#3741) 4b42c371 style: pylint (#3720) c14170a7 Removing `// clang-format off` - `on` directives from test_pickling.cpp (#3738) 0986af61 [pre-commit.ci] pre-commit autoupdate (#3672) a25d40c7 tests: use 'build' in tests instead of running setup.py (#3734) a97e9d8c Dropping MSVC 2015 (#3722) 44156477 Adding MSVC 2022 C++20 GitHub Action (#3732) 522c59ce chore: drop Python 3.5 (#3719) 1a432b42 docs: Correct minor typos (#3721) 6493f496 Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) 46dcd9bc fix: minor CMake warning fix for unused variable (#3718) ec24786e Fully-automatic clang-format with include reordering (#3713) e96221be Final manual curation in preparation for global `clang-format`ing (#3712) d6c66d25 chore(clang-tidy): Add clang-tidy rules: prefer-member-initializer and optin.performance.Padding (#3716) dc9803ce Add missing clang-tidy fixes (#3715) 7f975816 chore(clang-tidy): Enable static downcast and decl naming check (#3709) abc38690 Manually applying two clang-format changes that need fix-ups for clang-tidy. (#3705) 7769e771 clang-tidy readability-qualified-auto (#3702) b4f5350d chore: use member initializer (#3704) ddbc74c6 Adding .clang-tidy readability-braces-around-statements option. 8581584e Manual fix-ups in preparation for clang-tidy readability-braces-around-statements. af056b65 fix: __index__ on Enum should always be present. (#3700) 1b841883 Minor change to improve readability (#3695) 96b943be tests: update catch to 2.13.5 to fix glibc 2.34 failures (#3679) 94a94872 docs: fix imported target name (#3689) 36813cfa chore: back to work 1d3b04e8 test: Strip whitespace when comparing numpy dtypes for 1.22 compat (#3682) ffa34686 chore: bump to 2.9.1 3899dc65 Documenting missing unit test coverage. (#3673) 0f6ad910 docs: update changelog for 2.9.1 (#3670) 21e10945 ci: move centos 8 to stream (#3675) ce18721d Ensure TypeError use raise_from for C++->Python overload res. (#3671) 978617f6 fix issue 3668 by removing bool casts in numpy.h (#3669) 3a8d9230 Fix caster optimization regression introduced in #3650 (#3659) bf7e5f92 fix(setup): support overriding CMake args (#3577) dc4717ba fix: module extension detection for python 3.10 (#3663) 07103d65 Remove extra semicolon (#3666) 17792884 Document how to bind templates (#3665) ec81e8e7 Propagate py::multiple_inheritance to all children (#3650) bcb6d63c fix msys ci python issue (#3651) dedda228 Fix a typo in class.rst (#3648) 9ec1128c Fix typo in doc (#3628) 3a1eddab chore(deps): bump jwlawson/actions-setup-cmake from 1.11 to 1.12 (#3625) 51948559 Render `py::bool_` and `py::float_` without `_` in docstrings (#3622) 7e7c5585 Fixing obvious minor typo (missing `D` in `-DOWNLOAD_EIGEN=ON`). d2ec8367 Add support for nested C++11 exceptions (#3608) f8d4aa47 Add clang-tidy readability checks for sus args (#3611) 21911e12 A way to register additional test targets and support .py only tests. (#3590) d434b5f3 (chore): Remove deprecated c-headers (#3610) f5888108 Replacing ICC C++14 with C++17 (#3570) ef070f77 Add additional info to TypeError when C++->Python casting fails (#3605) b66328b0 [pre-commit.ci] pre-commit autoupdate (#3609) fb9a222d chore(deps): bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#3606) 2cd32e5d [pre-commit.ci] pre-commit autoupdate (#3589) 1bbaeb34 Adding dedicated test_const_name. (#3578) 9b4f71d1 docs: remove duplication in changelog for 2.9.0 93716147 Merge branch 'master' into stable 45f792ef chore: prepare for 2.9 89769e6e [pre-commit.ci] pre-commit autoupdate (#3574) cb302305 fix: restore full range of _ functions (#3571) d4b9f347 docs: update changelog (#3556) e50f841d fix: do not use LTS on mips64 and ppc64le (#3557) 39fbc799 fix: avoiding usage of _ if already defined (#3423) b3d9c354 vi: replacing currently broken ICC Latest C++17 with C++14. (#3551) d0406c74 [pre-commit.ci] pre-commit autoupdate (#3563) 75168113 fix(setup_helpers): ensure ThreadPool is closed (#3548) 59aa9986 [pre-commit.ci] pre-commit autoupdate (#3533) a224d0cc fix: vs2022 compilation, issue #3477 (#3497) b4939fcb Expand std::string_view support to str, bytes, memoryview (#3521) cd176cee chore: update changelog with recent PRs (#3524) 70a58c57 Replace usage of deprecated Eigen class MappedSparseMatrix. (#3499) fe65693c [pre-commit.ci] pre-commit autoupdate (#3500) 5d067e87 fix: remove redundant copy operation to fix warning (#3486) 9281faf4 Fixing `stict` vs `strict` typo. (#3493) 673b4be3 Fix py::kw_only when used before the first arg of a method (#3488) 56322daf fixed include for filesystem::path (#3482) 15f8d7c1 fix(build): cleaner CMake printouts & IDE folders (#3479) ff51fcb7 docs: fix broken link (again) 72282f75 ci: support development releases of Python (#3419) 1eb59963 Removed duplicated word in docs/advanced/exceptions.rst (#3476) d2b21316 cmake: report version type in the version string (#3472) 9422d98f [pre-commit.ci] pre-commit autoupdate (#3473) afdc09de [master] Wrong caching of overrides (#3465) 270b11d5 Revert "style: drop pycln" (#3466) e450eb62 Removed duplicated word in docs/advanced/cast/eigen.rst (#3458) aebd21b5 docs: rework CI a bit, more modern skipping (#3424) b11ff912 fix(setup =_helpers): don't add -g0 CFLAGS sets -g (#3436) b322018e [pre-commit.ci] pre-commit autoupdate (#3449) 01f938e7 fix: add missing std::forward calls (#3443) a61e354e docs: touch up manual release suggestion (#3422) 6de30d31 [pre-commit.ci] pre-commit autoupdate (#3432) dd2d1272 Correct "which" versus "that" error. (#3430) e7c9753f feat: allow kw-only args after a py::args (#3402) a80b2237 chore: get back to work after 2.8.1 acae9301 Merge branch 'master' into stable f7b49961 [skip ci] Tweaks in preparation for the 2.8.1 release. (#3421) f1594cb9 docs: changelog update for 2.8.1 (#3416) 90707b46 fix(build): support conan's multiple includes of all files (#3420) e7e2c79f fix: improve support for Python 3.11-dev (#3368) c2d3e220 fix: the types for return_value_policy_override in optional_caster (#3376) d45a8810 [pre-commit.ci] pre-commit autoupdate (#3409) 9379b399 fix: MSVC 2017 C++17 on Python 3 regression (#3407) 78ee782b feat: Add C++ binding to throw AttributeError (#3387) 076c89fc tests: test recursive dispatch using visitor pattern (#3365) 606f81a9 style: drop pycln (#3397) 2d6014e4 docs: fix minor typo (#3390) f791dc86 fix: deprecate make_simple_namespace, fix Python 3.11 (#3374) 931f6644 ci: cancel in-progress on repeated pushes (#3370) 56b49c2b ci: fix mingw checks by pinning (#3375) 7c580586 Correct options on Eigen::MappedSparseMatrix & adding MSVC C4127 suppression around Eigen includes. (#3352) 02c05573 [pre-commit.ci] pre-commit autoupdate (#3353) 8a7c266d Fix make_key_iterator/make_value_iterator for prvalue iterators (#3348) 750e38dc Update eval.h (#3344) f4c81e08 maint: Add additional linter-related pre-commit hooks (#3337) ed09664f chore(deps): bump ilammy/msvc-dev-cmd from 1.9.0 to 1.10.0 (#3338) 47ed124f Fix some formatting in the v2.8.0 changelog (#3339) ba9f919b chore: get back to work after 2.8.0 e315e1fe Merge branch 'master' into stable 97976c16 [pre-commit.ci] pre-commit autoupdate (#3325) 3747dc2c Revert "All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage)." (#3326) c9a319c6 chore: version 2.8.0 final 20aae3e6 ci: disable Eigen due to Cert issue on CentOS 591db0b9 docs: update CHANGELOG for 2.8 9f146a56 All `-DDOWNLOAD_EIGEN=OFF` (to work around gitlab eigen outage). d7a7edc1 tests: support Eigen configuration ad966556 fix: replace free() with std::free() (#3321) b3573ac9 feat: add `.keys` and `.values` to bind_map (#3310) b4e1ab8c Docs: Demonstrate non-enum internal types in example (#3314) a1830d5e docs: mention title conventions in PR template (#3313) c9bbf8d2 docs: fix minor typo (#3311) 71fd5241 docs: fix minor typo (#3311) 6be64304 [pre-commit.ci] pre-commit autoupdate (#3312) 6bce3bd7 docs: update CHANGELOG (#3304) d58699c9 fix(cmake): reduce chance for variable collision (#3302) 62c4909c Add `custom_type_setup` attribute (#3287) 409be833 CMake: react to python version changes 6ad3f874 fix(build): avoid a possible warning about shadowed variables and changing behaviors (#3220) 21282e64 feat: reapply fixed version of #3271 (#3293) 2a78abff Ensure PYBIND11_TLS_REPLACE_VALUE evaluates its arguments only once (#3290) 5f46e47d tests: check simple iteration of pairs (#3296) 2fa3fcfd Revert "Add make_value_iterator (#3271)" 1dc9a23c chore(deps): bump jwlawson/actions-setup-cmake from 1.10 to 1.11 (#3294) b06a6f4f feat: Slice allowing None with py::object or std::optional (#1101) 0fb981b2 Add blacken-docs and pycln pre-commit hooks (#3292) ee0c5ee4 Add make_value_iterator (#3271) 077a16e9 [pre-commit.ci] pre-commit autoupdate (#3286) 6e6975e2 Fix test case with __new__ (#3285) d0f3c51f Enable defining custom __new__ (#3265) 14976c85 Eliminate duplicate TLS keys for loader_life_support stack (#3275) 04dd3262 docs: update CHANGELOG (#3276) e0031bfc include/pybind11/numpy.h: gcc 4.8.4 does not have is_trivially_copyable (#3270) 3ed31e92 [pre-commit.ci] pre-commit autoupdate (#3266) 6c65ab59 Follow-on to PR #3254, to address user code breakages. (#3263) 9978ed58 Fix capsule bug (#3261) 0e599589 Fix thread safety for pybind11 loader_life_support (#3237) 121b91f9 Fixing NOLINT mishap (#3260) ae07d4c6 maint(Clang-Tidy): readability-const-return (#3254) 4d5ad03e Avoid use of temporary `bytes` object in string_caster for UTF-8 (#3257) 4c6bee35 fix: Set __file__ constant when using eval_file (#1300) (#3233) 6abf2baa CodeHealth: Enabling clang-tidy google-explicit-constructor (#3250) 39a0aac8 docs fix to avoid nonexistent SmartCompile (#3241) d71ba0cb (perf): Add a missing noexcept to a pytype constructor (#3236) 49173e47 Minor follow-on to PR #1334 (Fix enum value's __int__ returning non-int when underlying type is bool or of char type) (#3232) a46f6237 Minor tweaks. (#3230) d6474ed7 fix: memory leak in cpp_function (#3228) (#3229) 76d939de [pre-commit.ci] pre-commit autoupdate (#3231) 777352fc Adding `ssize_t_cast` to support passing `size_t` or `ssize_t` values where `ssize_t` is needed. (#3219) cb60ed49 Fix enum value's __int__ returning non-int when underlying type is bool or of char type (#1334) 930bb16c Call PySys_SetArgv when initializing interpreter. (#2341) 503ff2a6 view for numpy arrays (#987) db44afa3 tests: fix pytest usage on Python 3.10 (#3221) 59ad1e7d reshape for numpy arrays (#984) 031a700d Add make_simple_namespace function and tests (#2840) c8ce4b8d Clone of @virtuald's PR #2112 with minor enhancements. (#3215) 6cbabc4b maint(clang-tidy): Enable cpp-coreguideline slicing checks (#3210) fdac5fbf chore: support targeting different Python versions with nox (#3214) b3d18f38 [pre-commit.ci] pre-commit autoupdate (#3213) 4f29b8a4 ci: extend msys2 mingw CI (#3207) 998d45e4 Cleanup of file-scoped and globally-scoped warning suppression pragmas across pybind11 header files. (#3201) 774b5ff9 Removing obsolete eigen.h warning suppression pragmas. (#3198) 617cb653 [Bugfix] Fix errant const methods (#3194) 1bcd94c4 Removing last remnants of pragma block at the top of pybind11.h (#3186) 9df2f1ff maint(precommit): Apply isort (#3195) d6841f60 chore(deps): bump jwlawson/actions-setup-cmake from 1.9 to 1.10 (#3196) 7d3b0571 Improved workaround for Centos 8 failure (follow-on to PR #3030). (#3193) 0be2ea06 [pre-commit.ci] pre-commit autoupdate (#3185) 4c7e509f PYBIND11_NOINLINE-related cleanup. (#3179) ff590c12 maint(perf): Optimize Numpy constructor to remove copies by value. (#3183) 61ee923b Consistent step name "Python tests". (#3180) 6ac8efe5 test_eval: Show example of working closure (#2743) af700733 Removing GCC -Wunused-but-set-parameter from pragma block at the top of pybind11.h (#3164) 3893f37b maint(clang-tidy): Bugprone enable checks (#3166) 089328f7 Revert "fix: apply simpler expression with fewer workarounds" 1fafd1b4 fix: apply simpler expression with fewer workarounds 5f4d7259 fix: version number hex c30f57d2 chore: start development for 2.8.0 787d2c88 fix: include hex version in bump 82adacb3 fix: include hex version in bump 5f34c42d chore: bump to version 2.7.1 078c1167 chore: bump to version 2.7.1 90959848 chore: changelog update (#3163) 9f204a18 fix: func_handle for rule of two (#3169) ada6b791 [pre-commit.ci] pre-commit autoupdate (#3167) a2b78a8c chore: changelog update (#3163) c0756ccd fix: func_handle for rule of two (#3169) f4f4632e [pre-commit.ci] pre-commit autoupdate (#3167) dcbda8d7 Removing MSVC C4127 from pragma block at the top of pybind11.h (#3152) b961ac64 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) c80e0593 fix: Mingw64 corrected and add a CI job to test it (#3132) 46c51fc0 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) e2573dc9 Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h (#3160) 9e8a741b fix: Mingw64 corrected and add a CI job to test it (#3132) b4259729 Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. (#3161) b1fdbe69 chore: add discussions link (#3159) 05852fb6 Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) ed5fb66b Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 0ac4c8af maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 5c6bdb72 fix: the CMake config in Python package had a hard coded path (#3144) fd71bd48 Allow python builtins to be used as callbacks (#1413) e93d9459 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) c973660d [pre-commit.ci] pre-commit autoupdate (#3143) 85b38c69 Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) b193d42c Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) ee3ecb8a Specified encoding in setup.py calls of open() (#3137) c14b1933 chore: increase CMake upper limit (#3124) b72ca7d1 Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) f4721a7b Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. (#3151) 2164c2e0 Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) 9beaa925 maint(clang-tidy): Improve code readability with explicit boolean casts (#3148) 7cc0ebb4 fix: the CMake config in Python package had a hard coded path (#3144) a0b97596 Allow python builtins to be used as callbacks (#1413) a0f862d4 Removing MSVC C4800 from pragma block at the top of pybind11.h (#3141) 7f76d795 [pre-commit.ci] pre-commit autoupdate (#3143) 7904ba1a Adding pragma warning(disable: 4522) for MSVC <= 2017. (#3142) ff97f101 Removing MSVC C4996 from pragma block at the top of pybind11.h (#3129) e58c6897 Specified encoding in setup.py calls of open() (#3137) d65edfb0 Feature/local exception translator (#2650) 6d5d4e73 Move object in pop method of List. (#3116) 9626483c [pre-commit.ci] pre-commit autoupdate (#3134) 34f587dd Removing all warning pragmas that have not effect. (#3127) 74935f8d chore: post-release (#3128) 65e95ea8 chore: bump to 2.7.0 (#3123) 6642f389 docs: update changelog (#3122) 4359e00b Introducing PYBIND11_VERSION_HEX (#3120) 1b10292c chore: support PDF from nox (#3121) 55f6f6e9 Fix: RTD Docutils Build (#3119) 2415c094 feat(package): support pipx run (#3117) 31843d45 docs: reduce visibility of 3.9.0 warning (#3105) 5cd37507 Enable -Wstrict-aliasing warning (#2816) c4b0dc7c Add shellcheck style checking (#3114) cd061aee style: pre-commit cleanup (#3111) 7331d381 Raise codec errors when casting to std::string (#2903) aca6c3ba * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087) 1be0a0a6 Add helper to build in-tree extensions. (#2831) 2b7985e5 Improve documentation of discard_as_unraisable() API (#2697) 25e470c5 fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094) 6a644c8f docs: update changelog (#3099) 0e2e0035 style: add pyupgrade check, 2.7+ 11e12fe4 chore: move some config to pyproject.toml 84fdadfb chore: update pre-commit hooks 75090647 More precise return_value_policy::automatic documentation. (#2920) ddf0efb9 chore: add nox support (#3101) 9f11951b Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR #2995 last ran. (#3103) f0a65c89 docs(fix): spelling mistake in recent commit 7472d37a Adding iostream.h thread-safety documentation. (#2995) 2d468697 NOLINT reduction (#3096) 7a64b8ad docs: fix script issues for changelog compilation (#3100) 0f4761b4 Rollback of DOWNLOAD_CATCH=OFF change merged via PR #3059. (#3092) cf006af2 Fix typos and docs style (#3088) bac5a0c3 Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR #3051 but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. (#3086) b5357d1f fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080) 6d1b197b Splitting out pybind11/stl/filesystem.h. (#3077) c090c8c4 Unify cast_error message thrown by [simple|unpacking]_collector (#3013) 0ad116d3 Adding codespell to .pre-commit-config.yaml (follow-on to PR #3075). (#3076) 8bee61b6 docs: fix various typos (#3075) 795e3c4c Removing `AlignConsecutiveAssignments: true`. (#3067) 6d440946 Check dict item accesses where it isn't already checked (#2863) 5bcaaa04 Add a std::filesystem::path <-> os.PathLike caster. (#2730) f067deb5 avoid unnecessary strlen (#3058) 733f8de2 Avoid string copy if possible when passing a Python object to std::ostream (#3042) cad79c11 tests: remove very minor oversight in PR #3059. (#3066) fbae8f31 pickle setstate: setattr __dict__ only if not empty (#2972) 93e69191 fix: enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types (#3059) 484b0f04 Updating and slightly enhancing instructions for running clang-tidy. (#3055) dac74ebd fix(clang-tidy): performance fixes applied in tests and CI (#3051) 3b30b0a5 fix(clang-tidy): clang-tidy readability and misc fixes, like adding const (#3052) d00fc629 use CMAKE_INSTALL_FULL_INCLUDEDIR (#3005) 9b3b3577 chore(deps): bump ilammy/msvc-dev-cmd from 1.8.1 to 1.9.0 (#3027) e0b5cbd4 chore(clang-tidy): add more modernize clang-tidy checks (#3049) af6218ff fix(clang-tidy): Apply performance fixes from clang-tidy (#3046) 79178e71 fix(setup_helpers): try import multiprocessing.synchronize too (#3043) 19d99a87 Working around Centos 8 failure. (#3030) b4b67f02 Fix typos (#3044) cd4b49a2 Update py::kwargs examples to pass by reference (#3038) 4c7697db Add const T to docstring generation. (#3020) e25b1505 Adjusting valgrind suppression for pypocketfft to resolve systematic failures that started to appear on 2020-05-27. (#3022) 3ac690b8 Explicitly export exception types. (#2999) 14023c9c chore(deps): bump ilammy/msvc-dev-cmd from 1.8.0 to 1.8.1 (#3021) f61855b9 chore(deps): bump ilammy/msvc-dev-cmd from 1 to 1.8.0 (#3001) bc7cf6ef chore(deps): bump jwlawson/actions-setup-cmake from 1.8 to 1.9 (#3000) b6ec0e95 functions: Add doc on incorrect argument index (#2979) 417fd120 Fix: fix typo of WITHOUT_SOABI (#2992) 0c93a0f3 Fix Unicode support for ostream redirects (#2982) 54430436 ci: install Boost for boost checks (#2968) bca4b36b chore(deps): bump pre-commit/action from v2.0.2 to v2.0.3 (#2964) 5e4804bb tests: use master commit for pytest on 3.10 (#2967) e08a5811 Fix compilation with gcc < 5 (#2956) 114be7f4 docs: remove recommonmark (#2955) 62976cfc fix: using -Werror-all for Intel (#2948) 6709abba Allow function pointer extraction from overloaded functions (#2944) e0c1dadb chore: add myself to CODEOWNERS (#2940) 4f0727f2 Fix the enabling of default extension handling (#2938) 16c23fef chore(deps): bump pre-commit/action from v2.0.0 to v2.0.2 (#2935) ad6bf5cd Adding PyGILState_Check() in object_api<>::operator(). (#2919) f676782b env: Add surrogate for pytest.deprecated_call for ptyest<3.9 (#2923) 1259db6f Fix Pybind11Extension on mingw64 (#2921) c2db53da fix: catch missing self argument in overloads constructor (#2914) 3df0ee6f docs: typo in classes.rst (#2926) 0e01c243 Generalizing suppression for pypocketfft. (#2896) f110889d Use correct duration representation when casting from datetime.timdelta to std::chrono::duration (#2870) 44678e54 Shuffling code in test_multiple_inheritance.cpp to separate struct/class definitions from bindings code. (#2890) 9c0aa699 Pointing out namespace in docs (#2874) e2e819b2 Shuffling code in test_smart_ptr.cpp to separate struct/class definitions from bindings code. Back-porting from smart_holder branch, to minimize diffs and potential for merge conflicts. (#2875) 74a767d4 Dtype kind vs char (#2864) c0fbb02c Extract gil management functions to separate header (#2845) 0c42250a Splitting out detail/type_caster_base.h from cast.h, with iwyu cleanup. (#2841) 98f9a33c Correct typo in FAQ (#2868) 59f8d7f1 chore(deps): bump jwlawson/actions-setup-cmake from v1.7 to v1.8 (#2865) 417067ee Add pybind11::bytearray (#2799) cbae6d55 docs: fix CMake status for DOWNLOAD_EIGEN (#2857) c2362393 chore(deps): bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#2851) c78dfb69 MSVC but not Clang: /MP (#2824) e791ec4e fix: add null pointer check with std::localtime (#2846) 948d09d6 test: Test against Python 3.10 (#2848) fe845878 Make sure all warnings in pytest get turned into errors (#2838) 721834b4 chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 6cf6bf20 Fix confusing weakref constructor overload (#2832) 932769b0 Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) 23c3edcf When determining if a shared_ptr already exists, use a test on the we… (#2819) 0432ae7c Changing pybind11::str to exclusively hold PyUnicodeObject (#2409) 587d5f84 Update breathe to 4.26.1, add make_tuple, make_iterator, and make_key_iterator (#2828) 9b7bfef8 Factoring out find_registered_python_instance() from type_caster_generic::cast. (#2822) 87954e7a fix: corrected dev versioning 4a5b81b1 chore: get back to work 8de7772c chore: prepare for the 2.6.2 release (#2821) 732bf88d fix: avoid changing class outside of GIL dff9b3b4 chore: add pytest-timeout, mypy 8e5d3d23 docs: prepare for 2.6.2 (#2820) 42e73807 chore(deps): bump jwlawson/actions-setup-cmake from v1.6 to v1.7 (#2818) 0bb8ca26 Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 (#2801) 9ea39dc3 Force the builtin module key to be the correct type. (#2814) 08bca374 docs: update changelog, nicer output for script (#2811) 44105ca1 docs: mention that the changelog block in PR is special 5b43ac42 docs: fix missing line from #2310 2db0264a style: add clang-format file (#2310) 130c9954 fix: support basic dual includes (#2804) eb83feef style: avoid using unintialized variables (#2806) 87f5aff4 ci: update to setup-cmake v1.6 (#2805) e8c4f543 fix: prepend Pybind11Extension flags rather than appending them. (#2808) 48534089 fix: Intel ICC C++17 compatibility (#2729) 8449a808 fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) 0df11d85 docs: update build description slightly (#2794) 0b3df7f9 ci: Intel icc/icpc via oneAPI (#2573) 0f8d5f2e Add a Valgrind build on debug Python 3.9 (#2746) 76a16007 fix: STATIC and SHARED flags not being detected (#2796) 08551463 Plug leaking function_records in cpp_function initialization in case of exceptions (found by Valgrind in #2746) (#2756) 230fa53f fix: Don't override global settings for VISIBILITY if set (#2793) 1faf4a8a docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784) 40931961 docs: fix spelling in some comments/docs (#2777) df8494dc fix: a clang warning [-Wshadow-field-in-constructor-modified] (#2780) 14b37512 docs: fix example code in Exceptions section (match vs. matches) (#2781) 210c8c21 fix: a warning found by static code analyzer (#2783) f243450e ci: disable builds for 3.10.0a4, and enable a nightly 3.10-dev build (#2792) 5abce7fc ci: use fixed action (#2791) 7b7ec664 ci: pin CMake to 3.19.2, fixes issues with 3.19.3 on Linux (aarch64) and macOS (universal) (#2790) 98f1bbb8 Ignore deprecation warnings about old-style __init__/__setstate__ constructors in the tests (originally done in #2746) (#2759) e57dd471 Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) e612043d Fix invalid access when reinterpret_casting a non-pybind11 PyObject* to instance* (found by Valgrind in #2746) (#2755) 2110d2d8 enum: add missing Enum.value property (#2739) b7dfe5cc chore: changelog update (#2750) d587a2fd fix: do not set docstring for function when empty (#2745) 830f8eda tests: update pytest 6.2.1 and fix test_python_alreadyset_in_destructor (#2741) 6f66e760 docs: add a note about compiling the example (#2737) 635e3fc9 CONTRIBUTING: Add suggestion about passing pytest flags (#2738) 79b0e2c0 docs: fix pdf build, simpler start page (#2736) 6b4297fd fix: don't trigger -Wunused-parameter in flagcheck.cpp. (#2735) 5bd766bf docs: update changelog and add script to help generate it (#2733) d5af536f ci: update cmake action (#2734) 79cb013f fix: allow users to avoid thread termination in scoped_released (#2657) cecdfadc minor cleanup: fixing or silencing flake8 errors (#2731) 30eb39ed fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) d9fa7056 style: remove redundant instance->owned = true (#2723) ffb113d1 fix: regression with installed pybind11 overriding local one (#2716) 499fcd54 ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) 5469c238 Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) 91a69720 docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) d068ab28 docs: pybind11/numpy.h does not require numpy at build time. (#2720) 028812ae docs: add warning about FindPython's Development component when libraries don't exist (e.g. on manylinux) (#2689) d57c1fab docs: update installing.rst (#2691) 8adef2c7 fix: workaround for #2682 and #2422 by simply clearing the TypeError (#2685) 087b07c8 Remove workaround code that is not needed since #1211 (#2683) 7bd4b397 fix: define PYBIND11_CPP14 for recent intel compilers (#2679) af8849f4 docs: list all pybind11 exceptions (#2671) 2fa4747c pythonbuf fix (#2675) 17c22b9e docs: mention branch update in checklist (#2670) 32d11c96 fix typo in pickle example (#2669) de78bddd docs: better badges (#2656) f8b8107b fix: make FindPython2 and FindPython3 work (#2662) 02746cb6 docs: add a little more information for releases b7c741b5 docs: back to work after 2.6.1 f1abf5d9 docs: changelog update (#2652) ebd5c5b4 feat: way to only recompile changed files (#2643) c58758d0 fix: add reasonable argument names to enum_ methods (#2637) b72cebeb style: clang-tidy: modernize-use-using (#2645) 06b673a0 Allow NULL value in pybind11_meta_setattro (#2629) 3e4d54bc fix: match new extension discovery with changes to classic discovery (#2640) 6d4854a5 ci: correct types statement 6cc233cc ci: label PRs when merged only for now b8dc60ec fix: Python include directory was missing from DIRS (#2636) 7d6713a4 Use weakref to clean up captured function object in def_buffer (#2634) 06a54018 fix: min macos (#2622) 139c05da ci: test on NumPy + Python 3.9 (#2628) 8290a5a0 clang -Wnon-virtual-dtor compatibility (#2626) f2e79986 [common.h] Mark another entry point as "unused". (#2625) 3a37d338 Add __builtins__ to globals argument of `py::exec` and `py::eval` if not present (#2616) ace4deb4 ci: add more jobs (#2610) 4d037439 fix: missing identifier for Python 3.9 7c26c718 Fix mispelling in basics.rst (#2614) 86d3e9eb begin working towards a future v2.6.1 patch release git-subtree-dir: examples/knxPython/pybind11 git-subtree-split: 941f45bcb51457884fa1afd6e24a67377d70f75c
2024-06-29 16:48:45 +02:00
* Fixed implicit conversion of ``py::enum_`` to integer types on Python 2.7.
`#821 <https://github.com/pybind/pybind11/pull/821>`_.
* Added ``py::hash`` to fetch the hash value of Python objects, and
``.def(hash(py::self))`` to provide the C++ ``std::hash`` as the Python
``__hash__`` method.
`#1034 <https://github.com/pybind/pybind11/pull/1034>`_.
* Fixed ``__truediv__`` on Python 2 and ``__itruediv__`` on Python 3.
`#867 <https://github.com/pybind/pybind11/pull/867>`_.
* ``py::capsule`` objects now support the ``name`` attribute. This is useful
for interfacing with ``scipy.LowLevelCallable``.
`#902 <https://github.com/pybind/pybind11/pull/902>`_.
* Fixed ``py::make_iterator``'s ``__next__()`` for past-the-end calls.
`#897 <https://github.com/pybind/pybind11/pull/897>`_.
* Added ``error_already_set::matches()`` for checking Python exceptions.
`#772 <https://github.com/pybind/pybind11/pull/772>`_.
* Deprecated ``py::error_already_set::clear()``. It's no longer needed
following a simplification of the ``py::error_already_set`` class.
`#954 <https://github.com/pybind/pybind11/pull/954>`_.
* Deprecated ``py::handle::operator==()`` in favor of ``py::handle::is()``
`#825 <https://github.com/pybind/pybind11/pull/825>`_.
* Deprecated ``py::object::borrowed``/``py::object::stolen``.
Use ``py::object::borrowed_t{}``/``py::object::stolen_t{}`` instead.
`#771 <https://github.com/pybind/pybind11/pull/771>`_.
* Changed internal data structure versioning to avoid conflicts between
modules compiled with different revisions of pybind11.
`#1012 <https://github.com/pybind/pybind11/pull/1012>`_.
* Additional compile-time and run-time error checking and more informative messages.
`#786 <https://github.com/pybind/pybind11/pull/786>`_,
`#794 <https://github.com/pybind/pybind11/pull/794>`_,
`#803 <https://github.com/pybind/pybind11/pull/803>`_.
* Various minor improvements and fixes.
`#764 <https://github.com/pybind/pybind11/pull/764>`_,
`#791 <https://github.com/pybind/pybind11/pull/791>`_,
`#795 <https://github.com/pybind/pybind11/pull/795>`_,
`#840 <https://github.com/pybind/pybind11/pull/840>`_,
`#844 <https://github.com/pybind/pybind11/pull/844>`_,
`#846 <https://github.com/pybind/pybind11/pull/846>`_,
`#849 <https://github.com/pybind/pybind11/pull/849>`_,
`#858 <https://github.com/pybind/pybind11/pull/858>`_,
`#862 <https://github.com/pybind/pybind11/pull/862>`_,
`#871 <https://github.com/pybind/pybind11/pull/871>`_,
`#872 <https://github.com/pybind/pybind11/pull/872>`_,
`#881 <https://github.com/pybind/pybind11/pull/881>`_,
`#888 <https://github.com/pybind/pybind11/pull/888>`_,
`#899 <https://github.com/pybind/pybind11/pull/899>`_,
`#928 <https://github.com/pybind/pybind11/pull/928>`_,
`#931 <https://github.com/pybind/pybind11/pull/931>`_,
`#944 <https://github.com/pybind/pybind11/pull/944>`_,
`#950 <https://github.com/pybind/pybind11/pull/950>`_,
`#952 <https://github.com/pybind/pybind11/pull/952>`_,
`#962 <https://github.com/pybind/pybind11/pull/962>`_,
`#965 <https://github.com/pybind/pybind11/pull/965>`_,
`#970 <https://github.com/pybind/pybind11/pull/970>`_,
`#978 <https://github.com/pybind/pybind11/pull/978>`_,
`#979 <https://github.com/pybind/pybind11/pull/979>`_,
`#986 <https://github.com/pybind/pybind11/pull/986>`_,
`#1020 <https://github.com/pybind/pybind11/pull/1020>`_,
`#1027 <https://github.com/pybind/pybind11/pull/1027>`_,
`#1037 <https://github.com/pybind/pybind11/pull/1037>`_.
* Testing improvements.
`#798 <https://github.com/pybind/pybind11/pull/798>`_,
`#882 <https://github.com/pybind/pybind11/pull/882>`_,
`#898 <https://github.com/pybind/pybind11/pull/898>`_,
`#900 <https://github.com/pybind/pybind11/pull/900>`_,
`#921 <https://github.com/pybind/pybind11/pull/921>`_,
`#923 <https://github.com/pybind/pybind11/pull/923>`_,
`#963 <https://github.com/pybind/pybind11/pull/963>`_.
v2.1.1 (April 7, 2017)
-----------------------------------------------------
* Fixed minimum version requirement for MSVC 2015u3
`#773 <https://github.com/pybind/pybind11/pull/773>`_.
v2.1.0 (March 22, 2017)
-----------------------------------------------------
* pybind11 now performs function overload resolution in two phases. The first
phase only considers exact type matches, while the second allows for implicit
conversions to take place. A special ``noconvert()`` syntax can be used to
completely disable implicit conversions for specific arguments.
`#643 <https://github.com/pybind/pybind11/pull/643>`_,
`#634 <https://github.com/pybind/pybind11/pull/634>`_,
`#650 <https://github.com/pybind/pybind11/pull/650>`_.
* Fixed a regression where static properties no longer worked with classes
using multiple inheritance. The ``py::metaclass`` attribute is no longer
necessary (and deprecated as of this release) when binding classes with
static properties.
`#679 <https://github.com/pybind/pybind11/pull/679>`_,
* Classes bound using ``pybind11`` can now use custom metaclasses.
`#679 <https://github.com/pybind/pybind11/pull/679>`_,
* ``py::args`` and ``py::kwargs`` can now be mixed with other positional
arguments when binding functions using pybind11.
`#611 <https://github.com/pybind/pybind11/pull/611>`_.
* Improved support for C++11 unicode string and character types; added
extensive documentation regarding pybind11's string conversion behavior.
`#624 <https://github.com/pybind/pybind11/pull/624>`_,
`#636 <https://github.com/pybind/pybind11/pull/636>`_,
`#715 <https://github.com/pybind/pybind11/pull/715>`_.
* pybind11 can now avoid expensive copies when converting Eigen arrays to NumPy
arrays (and vice versa). `#610 <https://github.com/pybind/pybind11/pull/610>`_.
* The "fast path" in ``py::vectorize`` now works for any full-size group of C or
F-contiguous arrays. The non-fast path is also faster since it no longer performs
copies of the input arguments (except when type conversions are necessary).
`#610 <https://github.com/pybind/pybind11/pull/610>`_.
* Added fast, unchecked access to NumPy arrays via a proxy object.
`#746 <https://github.com/pybind/pybind11/pull/746>`_.
* Transparent support for class-specific ``operator new`` and
``operator delete`` implementations.
`#755 <https://github.com/pybind/pybind11/pull/755>`_.
* Slimmer and more efficient STL-compatible iterator interface for sequence types.
`#662 <https://github.com/pybind/pybind11/pull/662>`_.
* Improved custom holder type support.
`#607 <https://github.com/pybind/pybind11/pull/607>`_.
* ``nullptr`` to ``None`` conversion fixed in various builtin type casters.
`#732 <https://github.com/pybind/pybind11/pull/732>`_.
* ``enum_`` now exposes its members via a special ``__members__`` attribute.
`#666 <https://github.com/pybind/pybind11/pull/666>`_.
* ``std::vector`` bindings created using ``stl_bind.h`` can now optionally
implement the buffer protocol. `#488 <https://github.com/pybind/pybind11/pull/488>`_.
* Automated C++ reference documentation using doxygen and breathe.
`#598 <https://github.com/pybind/pybind11/pull/598>`_.
* Added minimum compiler version assertions.
`#727 <https://github.com/pybind/pybind11/pull/727>`_.
* Improved compatibility with C++1z.
`#677 <https://github.com/pybind/pybind11/pull/677>`_.
* Improved ``py::capsule`` API. Can be used to implement cleanup
callbacks that are involved at module destruction time.
`#752 <https://github.com/pybind/pybind11/pull/752>`_.
* Various minor improvements and fixes.
`#595 <https://github.com/pybind/pybind11/pull/595>`_,
`#588 <https://github.com/pybind/pybind11/pull/588>`_,
`#589 <https://github.com/pybind/pybind11/pull/589>`_,
`#603 <https://github.com/pybind/pybind11/pull/603>`_,
`#619 <https://github.com/pybind/pybind11/pull/619>`_,
`#648 <https://github.com/pybind/pybind11/pull/648>`_,
`#695 <https://github.com/pybind/pybind11/pull/695>`_,
`#720 <https://github.com/pybind/pybind11/pull/720>`_,
`#723 <https://github.com/pybind/pybind11/pull/723>`_,
`#729 <https://github.com/pybind/pybind11/pull/729>`_,
`#724 <https://github.com/pybind/pybind11/pull/724>`_,
`#742 <https://github.com/pybind/pybind11/pull/742>`_,
`#753 <https://github.com/pybind/pybind11/pull/753>`_.
v2.0.1 (Jan 4, 2017)
-----------------------------------------------------
* Fix pointer to reference error in type_caster on MSVC
`#583 <https://github.com/pybind/pybind11/pull/583>`_.
* Fixed a segmentation in the test suite due to a typo
`cd7eac <https://github.com/pybind/pybind11/commit/cd7eac>`_.
v2.0.0 (Jan 1, 2017)
-----------------------------------------------------
* Fixed a reference counting regression affecting types with custom metaclasses
(introduced in v2.0.0-rc1).
`#571 <https://github.com/pybind/pybind11/pull/571>`_.
* Quenched a CMake policy warning.
`#570 <https://github.com/pybind/pybind11/pull/570>`_.
v2.0.0-rc1 (Dec 23, 2016)
-----------------------------------------------------
The pybind11 developers are excited to issue a release candidate of pybind11
with a subsequent v2.0.0 release planned in early January next year.
An incredible amount of effort by went into pybind11 over the last ~5 months,
leading to a release that is jam-packed with exciting new features and numerous
usability improvements. The following list links PRs or individual commits
whenever applicable.
Happy Christmas!
* Support for binding C++ class hierarchies that make use of multiple
inheritance. `#410 <https://github.com/pybind/pybind11/pull/410>`_.
* PyPy support: pybind11 now supports nightly builds of PyPy and will
interoperate with the future 5.7 release. No code changes are necessary,
everything "just" works as usual. Note that we only target the Python 2.7
branch for now; support for 3.x will be added once its ``cpyext`` extension
support catches up. A few minor features remain unsupported for the time
being (notably dynamic attributes in custom types).
`#527 <https://github.com/pybind/pybind11/pull/527>`_.
* Significant work on the documentation -- in particular, the monolithic
``advanced.rst`` file was restructured into a easier to read hierarchical
organization. `#448 <https://github.com/pybind/pybind11/pull/448>`_.
* Many NumPy-related improvements:
1. Object-oriented API to access and modify NumPy ``ndarray`` instances,
replicating much of the corresponding NumPy C API functionality.
`#402 <https://github.com/pybind/pybind11/pull/402>`_.
2. NumPy array ``dtype`` array descriptors are now first-class citizens and
are exposed via a new class ``py::dtype``.
3. Structured dtypes can be registered using the ``PYBIND11_NUMPY_DTYPE()``
macro. Special ``array`` constructors accepting dtype objects were also
added.
One potential caveat involving this change: format descriptor strings
should now be accessed via ``format_descriptor::format()`` (however, for
compatibility purposes, the old syntax ``format_descriptor::value`` will
still work for non-structured data types). `#308
<https://github.com/pybind/pybind11/pull/308>`_.
4. Further improvements to support structured dtypes throughout the system.
`#472 <https://github.com/pybind/pybind11/pull/472>`_,
`#474 <https://github.com/pybind/pybind11/pull/474>`_,
`#459 <https://github.com/pybind/pybind11/pull/459>`_,
`#453 <https://github.com/pybind/pybind11/pull/453>`_,
`#452 <https://github.com/pybind/pybind11/pull/452>`_, and
`#505 <https://github.com/pybind/pybind11/pull/505>`_.
5. Fast access operators. `#497 <https://github.com/pybind/pybind11/pull/497>`_.
6. Constructors for arrays whose storage is owned by another object.
`#440 <https://github.com/pybind/pybind11/pull/440>`_.
7. Added constructors for ``array`` and ``array_t`` explicitly accepting shape
and strides; if strides are not provided, they are deduced assuming
C-contiguity. Also added simplified constructors for 1-dimensional case.
8. Added buffer/NumPy support for ``char[N]`` and ``std::array<char, N>`` types.
9. Added ``memoryview`` wrapper type which is constructible from ``buffer_info``.
* Eigen: many additional conversions and support for non-contiguous
arrays/slices.
`#427 <https://github.com/pybind/pybind11/pull/427>`_,
`#315 <https://github.com/pybind/pybind11/pull/315>`_,
`#316 <https://github.com/pybind/pybind11/pull/316>`_,
`#312 <https://github.com/pybind/pybind11/pull/312>`_, and
`#267 <https://github.com/pybind/pybind11/pull/267>`_
* Incompatible changes in ``class_<...>::class_()``:
1. Declarations of types that provide access via the buffer protocol must
now include the ``py::buffer_protocol()`` annotation as an argument to
the ``class_`` constructor.
2. Declarations of types that require a custom metaclass (i.e. all classes
which include static properties via commands such as
``def_readwrite_static()``) must now include the ``py::metaclass()``
annotation as an argument to the ``class_`` constructor.
These two changes were necessary to make type definitions in pybind11
future-proof, and to support PyPy via its cpyext mechanism. `#527
<https://github.com/pybind/pybind11/pull/527>`_.
3. This version of pybind11 uses a redesigned mechanism for instantiating
trampoline classes that are used to override virtual methods from within
Python. This led to the following user-visible syntax change: instead of
.. code-block:: cpp
py::class_<TrampolineClass>("MyClass")
.alias<MyClass>()
....
write
.. code-block:: cpp
py::class_<MyClass, TrampolineClass>("MyClass")
....
Importantly, both the original and the trampoline class are now
specified as an arguments (in arbitrary order) to the ``py::class_``
template, and the ``alias<..>()`` call is gone. The new scheme has zero
overhead in cases when Python doesn't override any functions of the
underlying C++ class. `rev. 86d825
<https://github.com/pybind/pybind11/commit/86d825>`_.
* Added ``eval`` and ``eval_file`` functions for evaluating expressions and
statements from a string or file. `rev. 0d3fc3
<https://github.com/pybind/pybind11/commit/0d3fc3>`_.
* pybind11 can now create types with a modifiable dictionary.
`#437 <https://github.com/pybind/pybind11/pull/437>`_ and
`#444 <https://github.com/pybind/pybind11/pull/444>`_.
* Support for translation of arbitrary C++ exceptions to Python counterparts.
`#296 <https://github.com/pybind/pybind11/pull/296>`_ and
`#273 <https://github.com/pybind/pybind11/pull/273>`_.
* Report full backtraces through mixed C++/Python code, better reporting for
import errors, fixed GIL management in exception processing.
`#537 <https://github.com/pybind/pybind11/pull/537>`_,
`#494 <https://github.com/pybind/pybind11/pull/494>`_,
`rev. e72d95 <https://github.com/pybind/pybind11/commit/e72d95>`_, and
`rev. 099d6e <https://github.com/pybind/pybind11/commit/099d6e>`_.
* Support for bit-level operations, comparisons, and serialization of C++
enumerations. `#503 <https://github.com/pybind/pybind11/pull/503>`_,
`#508 <https://github.com/pybind/pybind11/pull/508>`_,
`#380 <https://github.com/pybind/pybind11/pull/380>`_,
`#309 <https://github.com/pybind/pybind11/pull/309>`_.
`#311 <https://github.com/pybind/pybind11/pull/311>`_.
* The ``class_`` constructor now accepts its template arguments in any order.
`#385 <https://github.com/pybind/pybind11/pull/385>`_.
* Attribute and item accessors now have a more complete interface which makes
it possible to chain attributes as in
``obj.attr("a")[key].attr("b").attr("method")(1, 2, 3)``. `#425
<https://github.com/pybind/pybind11/pull/425>`_.
* Major redesign of the default and conversion constructors in ``pytypes.h``.
`#464 <https://github.com/pybind/pybind11/pull/464>`_.
* Added built-in support for ``std::shared_ptr`` holder type. It is no longer
necessary to to include a declaration of the form
``PYBIND11_DECLARE_HOLDER_TYPE(T, std::shared_ptr<T>)`` (though continuing to
do so won't cause an error).
`#454 <https://github.com/pybind/pybind11/pull/454>`_.
* New ``py::overload_cast`` casting operator to select among multiple possible
overloads of a function. An example:
.. code-block:: cpp
py::class_<Pet>(m, "Pet")
.def("set", py::overload_cast<int>(&Pet::set), "Set the pet's age")
.def("set", py::overload_cast<const std::string &>(&Pet::set), "Set the pet's name");
This feature only works on C++14-capable compilers.
`#541 <https://github.com/pybind/pybind11/pull/541>`_.
* C++ types are automatically cast to Python types, e.g. when assigning
them as an attribute. For instance, the following is now legal:
.. code-block:: cpp
py::module m = /* ... */
m.attr("constant") = 123;
(Previously, a ``py::cast`` call was necessary to avoid a compilation error.)
`#551 <https://github.com/pybind/pybind11/pull/551>`_.
* Redesigned ``pytest``-based test suite. `#321 <https://github.com/pybind/pybind11/pull/321>`_.
* Instance tracking to detect reference leaks in test suite. `#324 <https://github.com/pybind/pybind11/pull/324>`_
* pybind11 can now distinguish between multiple different instances that are
located at the same memory address, but which have different types.
`#329 <https://github.com/pybind/pybind11/pull/329>`_.
* Improved logic in ``move`` return value policy.
`#510 <https://github.com/pybind/pybind11/pull/510>`_,
`#297 <https://github.com/pybind/pybind11/pull/297>`_.
* Generalized unpacking API to permit calling Python functions from C++ using
notation such as ``foo(a1, a2, *args, "ka"_a=1, "kb"_a=2, **kwargs)``. `#372 <https://github.com/pybind/pybind11/pull/372>`_.
* ``py::print()`` function whose behavior matches that of the native Python
``print()`` function. `#372 <https://github.com/pybind/pybind11/pull/372>`_.
* Added ``py::dict`` keyword constructor:``auto d = dict("number"_a=42,
"name"_a="World");``. `#372 <https://github.com/pybind/pybind11/pull/372>`_.
* Added ``py::str::format()`` method and ``_s`` literal: ``py::str s = "1 + 2
= {}"_s.format(3);``. `#372 <https://github.com/pybind/pybind11/pull/372>`_.
* Added ``py::repr()`` function which is equivalent to Python's builtin
``repr()``. `#333 <https://github.com/pybind/pybind11/pull/333>`_.
* Improved construction and destruction logic for holder types. It is now
possible to reference instances with smart pointer holder types without
constructing the holder if desired. The ``PYBIND11_DECLARE_HOLDER_TYPE``
macro now accepts an optional second parameter to indicate whether the holder
type uses intrusive reference counting.
`#533 <https://github.com/pybind/pybind11/pull/533>`_ and
`#561 <https://github.com/pybind/pybind11/pull/561>`_.
* Mapping a stateless C++ function to Python and back is now "for free" (i.e.
no extra indirections or argument conversion overheads). `rev. 954b79
<https://github.com/pybind/pybind11/commit/954b79>`_.
* Bindings for ``std::valarray<T>``.
`#545 <https://github.com/pybind/pybind11/pull/545>`_.
* Improved support for C++17 capable compilers.
`#562 <https://github.com/pybind/pybind11/pull/562>`_.
* Bindings for ``std::optional<t>``.
`#475 <https://github.com/pybind/pybind11/pull/475>`_,
`#476 <https://github.com/pybind/pybind11/pull/476>`_,
`#479 <https://github.com/pybind/pybind11/pull/479>`_,
`#499 <https://github.com/pybind/pybind11/pull/499>`_, and
`#501 <https://github.com/pybind/pybind11/pull/501>`_.
* ``stl_bind.h``: general improvements and support for ``std::map`` and
``std::unordered_map``.
`#490 <https://github.com/pybind/pybind11/pull/490>`_,
`#282 <https://github.com/pybind/pybind11/pull/282>`_,
`#235 <https://github.com/pybind/pybind11/pull/235>`_.
* The ``std::tuple``, ``std::pair``, ``std::list``, and ``std::vector`` type
casters now accept any Python sequence type as input. `rev. 107285
<https://github.com/pybind/pybind11/commit/107285>`_.
* Improved CMake Python detection on multi-architecture Linux.
`#532 <https://github.com/pybind/pybind11/pull/532>`_.
* Infrastructure to selectively disable or enable parts of the automatically
generated docstrings. `#486 <https://github.com/pybind/pybind11/pull/486>`_.
* ``reference`` and ``reference_internal`` are now the default return value
properties for static and non-static properties, respectively. `#473
<https://github.com/pybind/pybind11/pull/473>`_. (the previous defaults
were ``automatic``). `#473 <https://github.com/pybind/pybind11/pull/473>`_.
* Support for ``std::unique_ptr`` with non-default deleters or no deleter at
all (``py::nodelete``). `#384 <https://github.com/pybind/pybind11/pull/384>`_.
* Deprecated ``handle::call()`` method. The new syntax to call Python
functions is simply ``handle()``. It can also be invoked explicitly via
``handle::operator<X>()``, where ``X`` is an optional return value policy.
* Print more informative error messages when ``make_tuple()`` or ``cast()``
fail. `#262 <https://github.com/pybind/pybind11/pull/262>`_.
* Creation of holder types for classes deriving from
``std::enable_shared_from_this<>`` now also works for ``const`` values.
`#260 <https://github.com/pybind/pybind11/pull/260>`_.
* ``make_iterator()`` improvements for better compatibility with various
types (now uses prefix increment operator); it now also accepts iterators
with different begin/end types as long as they are equality comparable.
`#247 <https://github.com/pybind/pybind11/pull/247>`_.
* ``arg()`` now accepts a wider range of argument types for default values.
`#244 <https://github.com/pybind/pybind11/pull/244>`_.
* Support ``keep_alive`` where the nurse object may be ``None``. `#341
<https://github.com/pybind/pybind11/pull/341>`_.
* Added constructors for ``str`` and ``bytes`` from zero-terminated char
pointers, and from char pointers and length. Added constructors for ``str``
from ``bytes`` and for ``bytes`` from ``str``, which will perform UTF-8
decoding/encoding as required.
* Many other improvements of library internals without user-visible changes
1.8.1 (July 12, 2016)
----------------------
* Fixed a rare but potentially very severe issue when the garbage collector ran
during pybind11 type creation.
1.8.0 (June 14, 2016)
----------------------
* Redesigned CMake build system which exports a convenient
``pybind11_add_module`` function to parent projects.
* ``std::vector<>`` type bindings analogous to Boost.Python's ``indexing_suite``
* Transparent conversion of sparse and dense Eigen matrices and vectors (``eigen.h``)
* Added an ``ExtraFlags`` template argument to the NumPy ``array_t<>`` wrapper
to disable an enforced cast that may lose precision, e.g. to create overloads
for different precisions and complex vs real-valued matrices.
* Prevent implicit conversion of floating point values to integral types in
function arguments
* Fixed incorrect default return value policy for functions returning a shared
pointer
* Don't allow registering a type via ``class_`` twice
* Don't allow casting a ``None`` value into a C++ lvalue reference
* Fixed a crash in ``enum_::operator==`` that was triggered by the ``help()`` command
* Improved detection of whether or not custom C++ types can be copy/move-constructed
* Extended ``str`` type to also work with ``bytes`` instances
* Added a ``"name"_a`` user defined string literal that is equivalent to ``py::arg("name")``.
* When specifying function arguments via ``py::arg``, the test that verifies
the number of arguments now runs at compile time.
* Added ``[[noreturn]]`` attribute to ``pybind11_fail()`` to quench some
compiler warnings
* List function arguments in exception text when the dispatch code cannot find
a matching overload
* Added ``PYBIND11_OVERLOAD_NAME`` and ``PYBIND11_OVERLOAD_PURE_NAME`` macros which
can be used to override virtual methods whose name differs in C++ and Python
(e.g. ``__call__`` and ``operator()``)
* Various minor ``iterator`` and ``make_iterator()`` improvements
* Transparently support ``__bool__`` on Python 2.x and Python 3.x
* Fixed issue with destructor of unpickled object not being called
* Minor CMake build system improvements on Windows
* New ``pybind11::args`` and ``pybind11::kwargs`` types to create functions which
take an arbitrary number of arguments and keyword arguments
* New syntax to call a Python function from C++ using ``*args`` and ``*kwargs``
* The functions ``def_property_*`` now correctly process docstring arguments (these
formerly caused a segmentation fault)
* Many ``mkdoc.py`` improvements (enumerations, template arguments, ``DOC()``
macro accepts more arguments)
* Cygwin support
* Documentation improvements (pickling support, ``keep_alive``, macro usage)
1.7 (April 30, 2016)
----------------------
* Added a new ``move`` return value policy that triggers C++11 move semantics.
The automatic return value policy falls back to this case whenever a rvalue
reference is encountered
* Significantly more general GIL state routines that are used instead of
Python's troublesome ``PyGILState_Ensure`` and ``PyGILState_Release`` API
* Redesign of opaque types that drastically simplifies their usage
* Extended ability to pass values of type ``[const] void *``
* ``keep_alive`` fix: don't fail when there is no patient
* ``functional.h``: acquire the GIL before calling a Python function
* Added Python RAII type wrappers ``none`` and ``iterable``
* Added ``*args`` and ``*kwargs`` pass-through parameters to
``pybind11.get_include()`` function
* Iterator improvements and fixes
* Documentation on return value policies and opaque types improved
1.6 (April 30, 2016)
----------------------
* Skipped due to upload to PyPI gone wrong and inability to recover
(https://github.com/pypa/packaging-problems/issues/74)
1.5 (April 21, 2016)
----------------------
* For polymorphic types, use RTTI to try to return the closest type registered with pybind11
* Pickling support for serializing and unserializing C++ instances to a byte stream in Python
* Added a convenience routine ``make_iterator()`` which turns a range indicated
by a pair of C++ iterators into a iterable Python object
* Added ``len()`` and a variadic ``make_tuple()`` function
* Addressed a rare issue that could confuse the current virtual function
dispatcher and another that could lead to crashes in multi-threaded
applications
* Added a ``get_include()`` function to the Python module that returns the path
of the directory containing the installed pybind11 header files
* Documentation improvements: import issues, symbol visibility, pickling, limitations
* Added casting support for ``std::reference_wrapper<>``
1.4 (April 7, 2016)
--------------------------
* Transparent type conversion for ``std::wstring`` and ``wchar_t``
* Allow passing ``nullptr``-valued strings
* Transparent passing of ``void *`` pointers using capsules
* Transparent support for returning values wrapped in ``std::unique_ptr<>``
* Improved docstring generation for compatibility with Sphinx
* Nicer debug error message when default parameter construction fails
* Support for "opaque" types that bypass the transparent conversion layer for STL containers
* Redesigned type casting interface to avoid ambiguities that could occasionally cause compiler errors
* Redesigned property implementation; fixes crashes due to an unfortunate default return value policy
* Anaconda package generation support
1.3 (March 8, 2016)
--------------------------
* Added support for the Intel C++ compiler (v15+)
* Added support for the STL unordered set/map data structures
* Added support for the STL linked list data structure
* NumPy-style broadcasting support in ``pybind11::vectorize``
* pybind11 now displays more verbose error messages when ``arg::operator=()`` fails
* pybind11 internal data structures now live in a version-dependent namespace to avoid ABI issues
* Many, many bugfixes involving corner cases and advanced usage
1.2 (February 7, 2016)
--------------------------
* Optional: efficient generation of function signatures at compile time using C++14
* Switched to a simpler and more general way of dealing with function default
arguments. Unused keyword arguments in function calls are now detected and
cause errors as expected
* New ``keep_alive`` call policy analogous to Boost.Python's ``with_custodian_and_ward``
* New ``pybind11::base<>`` attribute to indicate a subclass relationship
* Improved interface for RAII type wrappers in ``pytypes.h``
* Use RAII type wrappers consistently within pybind11 itself. This
fixes various potential refcount leaks when exceptions occur
* Added new ``bytes`` RAII type wrapper (maps to ``string`` in Python 2.7)
* Made handle and related RAII classes const correct, using them more
consistently everywhere now
* Got rid of the ugly ``__pybind11__`` attributes on the Python side---they are
now stored in a C++ hash table that is not visible in Python
* Fixed refcount leaks involving NumPy arrays and bound functions
* Vastly improved handling of shared/smart pointers
* Removed an unnecessary copy operation in ``pybind11::vectorize``
* Fixed naming clashes when both pybind11 and NumPy headers are included
* Added conversions for additional exception types
* Documentation improvements (using multiple extension modules, smart pointers,
other minor clarifications)
* unified infrastructure for parsing variadic arguments in ``class_`` and cpp_function
* Fixed license text (was: ZLIB, should have been: 3-clause BSD)
* Python 3.2 compatibility
* Fixed remaining issues when accessing types in another plugin module
* Added enum comparison and casting methods
* Improved SFINAE-based detection of whether types are copy-constructible
* Eliminated many warnings about unused variables and the use of ``offsetof()``
* Support for ``std::array<>`` conversions
1.1 (December 7, 2015)
--------------------------
* Documentation improvements (GIL, wrapping functions, casting, fixed many typos)
* Generalized conversion of integer types
* Improved support for casting function objects
* Improved support for ``std::shared_ptr<>`` conversions
* Initial support for ``std::set<>`` conversions
* Fixed type resolution issue for types defined in a separate plugin module
* CMake build system improvements
* Factored out generic functionality to non-templated code (smaller code size)
* Added a code size / compile time benchmark vs Boost.Python
* Added an appveyor CI script
1.0 (October 15, 2015)
------------------------
* Initial release