Commit Graph

2865 Commits

Author SHA1 Message Date
Ralf W. Grosse-Kunstleve
1e6bea27f7 Merge branch 'master' into annotated_any 2024-03-26 23:20:13 -07:00
Sebastian Berg
705efccecd
feat: make numpy.h compatible with both NumPy 1.x and 2.x (#5050)
* API: Make `numpy.h` compatible with both NumPy 1.x and 2.x

* TST: Update numpy dtype flags test to not covert flags to char

* API: Add `numpy2.h` instead and make `numpy.h` safe

This means that users of `numpy.h` cannot be broken, but need to
update to `numpy2.h` if they want to compile for NumPy 2.

Using Macros simply and didn't bother to try to remove unnecessary
code paths.

* API: Rather than `numpy2.h` use a define for the user.

* Thread `PYBIND11_NUMPY2_SUPPORT` through things and try to adept test matrix

* Small fixups (shouldn't matter)?

* Fixup.  Does upgrading scipy help?  (it shouldn't?)

(Some other small fixup)

* Use NumPy 2 nightlies for ubuntu-latest job also

* BUG: Fix numpy.bool check

* TST: Fix complexwarning

* BUG: Fix the fact that only the 50 slot is filled with the copy alias

(There were 3 functions all doing the same, only this slot survived 2.x)

* TST: One more test tweak

* TST: Use "long" name for long, since it changed on windows

* TST: Apparently we didn't always have ulong, so just use `L`

* TST: Enforce dtype='l' for test as default isn't long anymore on windows

* Rename macro and invert logic to PYBIND11_NUMPY_1_ONLY

* PYBIND11_INTERNAL_NUMPY_1_ONLY_DETECTED

* Test and code comment expansion

* CI: Use pre-releases of numpy/scipy from pip via explicit version

* CI: NumPy 2 only available on almalinux (as it is Python >=3.9)

* MAINT: Match name more exactly and adopt error phrasing

* MAINT: Pushed early, move helper to be private member

* fix error message compilation when using NumPy 1.x-only backcompat

* silence name shadowing warning

* chore: minor optimization

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-03-26 18:20:11 -04:00
Henry Schreiner
e0f2c71596
tests: hide warning on clang (#5069)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-03-26 13:57:05 -04:00
Jason Watson
65370f330e
Create handle_type_name specialization to type-hint variable length tuples (#5051) 2024-03-21 03:24:19 -04:00
Henry Schreiner
ddb8b67a8a
fix(cmake): allow forcing old FindPython (#5042) 2024-03-21 03:23:57 -04:00
Henry Schreiner
ec73bdaf1f
ci: skipping test for Windows Clang failure (#5062)
* ci: trying things for Windows Clang failure

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* WIP: try using older clang

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* tests: skip broken test

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* tests: try to skip test in tests

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* fix(tests): Prefer __version__ over MSVC

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* chore: avoid warning on Clang

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Update tests/test_exceptions.py

* Update tests/test_exceptions.py

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-03-21 02:27:58 -04:00
dependabot[bot]
8b48ff878c
chore(deps): bump the actions group with 3 updates (#5024)
Bumps the actions group with 3 updates: [jwlawson/actions-setup-cmake](https://github.com/jwlawson/actions-setup-cmake), [actions/cache](https://github.com/actions/cache) and [pre-commit/action](https://github.com/pre-commit/action).


Updates `jwlawson/actions-setup-cmake` from 1.14 to 2.0
- [Release notes](https://github.com/jwlawson/actions-setup-cmake/releases)
- [Commits](https://github.com/jwlawson/actions-setup-cmake/compare/v1.14...v2.0)

Updates `actions/cache` from 3 to 4
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

Updates `pre-commit/action` from 3.0.0 to 3.0.1
- [Release notes](https://github.com/pre-commit/action/releases)
- [Commits](https://github.com/pre-commit/action/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: jwlawson/actions-setup-cmake
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pre-commit/action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-13 20:50:51 -05:00
Henry Schreiner
0518bf9f9a
ci: ignore actions/checkout until v5 comes out 2024-02-13 18:36:39 -05:00
Henry Schreiner
e84d446d8e
ci: Ignore v1 updates for checkout (#5023)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-02-13 18:29:42 -05:00
pre-commit-ci[bot]
416f7a4410
chore(deps): update pre-commit hooks (#5018)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.9 → v0.2.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.9...v0.2.0)
- [github.com/sirosen/texthooks: 0.6.3 → 0.6.4](https://github.com/sirosen/texthooks/compare/0.6.3...0.6.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-02-05 23:07:31 -08:00
Pascal Thomet
768cebe17e
doc: add litgen to the automatic generators list (compiling.rst) (#5012)
* doc: add litgen to the automatic generators list (compiling.rst)

Added this:

[litgen]_ is an automatic python bindings generator with a focus on generating
documented and discoverable bindings: bindings will nicely reproduce the documentation
found in headers. It is is based on srcML (srcml.org), a highly scalable, multi-language
parsing tool with a developer centric approach. The API that you want to expose to python
must be C++14 compatible (but your implementation can use more modern constructs).

.. [litgen] https://pthom.github.io/litgen

* style: pre-commit fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-28 09:10:03 -08:00
Ralf W. Grosse-Kunstleve
869cc1ff08
install mingw-w64-${{matrix.env}}-python-scipy only for mingw64 (#5006) 2024-01-16 21:09:20 -08:00
Henry Schreiner
39e65e10d0
ci: group dependabot updates (#4986) 2024-01-13 15:28:39 -05:00
Huanchen Zhai
31b7e14052
bugfix: removing typing and duplicate `class_` for KeysView/ValuesView/ItemsView. Fix #4529 (#4985)
* remove typing for KeysView/ValuesView/ItemsView

* add tests for map view types
2024-01-13 11:07:36 -08:00
Ilya Lavrenov
aec6cc5406
fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run (#4856)
* fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run

* style: pre-commit fixes

* Update pybind11NewTools.cmake

* style: pre-commit fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2024-01-08 08:40:41 -05:00
pre-commit-ci[bot]
f29def9ea4
chore(deps): update pre-commit hooks (#4994)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.6 → v0.1.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.6...v0.1.9)
- [github.com/pre-commit/mirrors-mypy: v1.7.1 → v1.8.0](https://github.com/pre-commit/mirrors-mypy/compare/v1.7.1...v1.8.0)
- [github.com/PyCQA/pylint: v3.0.1 → v3.0.3](https://github.com/PyCQA/pylint/compare/v3.0.1...v3.0.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-01 19:25:58 -08:00
dependabot[bot]
b583336cf7
chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#4995)
Bumps [ilammy/msvc-dev-cmd](https://github.com/ilammy/msvc-dev-cmd) from 1.12.1 to 1.13.0.
- [Release notes](https://github.com/ilammy/msvc-dev-cmd/releases)
- [Commits](https://github.com/ilammy/msvc-dev-cmd/compare/v1.12.1...v1.13.0)

---
updated-dependencies:
- dependency-name: ilammy/msvc-dev-cmd
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-01 18:51:02 -08:00
Christoph Grüninger
976fea05a3
Fix Clazy warnings (#4988)
* stl.h: Use C++11 range-loops with const reference

This saves copy-ctor and dtor for non-trivial types by value
Found by clazy (range-loop-reference)

* test_smart_ptr.cpp cleanup

Introduce `pointer_set<T>`

https://github.com/boostorg/unordered/issues/139

> Based on the standard, the first move should leave a in a "valid but unspecified state";

---------

Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
2023-12-29 21:59:47 -08:00
Ralf W. Grosse-Kunstleve
d14d91e02a Remove handle_type_name default implementation, add explicit specializations, adjust tests.
The primary change is:

```diff
 template <typename T>
-struct handle_type_name {
-    static constexpr auto name = const_name<T>();
-};
+struct handle_type_name;
+
```

All other changes are adjustments to restore successful build & test.
2023-12-16 19:06:16 -08:00
Ralf W. Grosse-Kunstleve
66ee131d84 Test changes to adjust to previous commit (Change annotated_any() to quote_cpp_type_name()) 2023-12-16 16:52:07 -08:00
Ralf W. Grosse-Kunstleve
813660cbd4 Change annotated_any() to quote_cpp_type_name() 2023-12-16 16:45:59 -08:00
Ralf W. Grosse-Kunstleve
6b771d548a Merge branch 'master' into annotated_any 2023-12-16 16:37:15 -08:00
dependabot[bot]
eeac2f4572
chore(deps): bump actions/upload-artifact from 3 to 4 (#4975)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-14 18:50:09 -08:00
dependabot[bot]
e8a43ea974
chore(deps): bump actions/download-artifact from 3 to 4 (#4976)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-14 18:46:13 -08:00
Victor Stinner
dc477fac0e
fix: Use PyObject_VisitManagedDict() of Python 3.13 (#4973)
* fix: Use PyObject_VisitManagedDict() of Python 3.13

Use PyObject_VisitManagedDict() and PyObject_ClearManagedDict() in
pybind11_traverse() and pybind11_clear() on Python 3.13 and newer.

* Add Python 3.13 CI

* tests: don't get numpy/scipy on 3.13 yet

* ci: move 3.13 to upstream

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2023-12-14 18:42:55 -08:00
Pol Mesalles
daea1130b4
fix(cmake): upgrade maximum supported CMake version to 3.27 (#4786)
* Upgrade maximum supported CMake version to 3.27 to fix warning with CMP0148 policy (#4785)

* Update `macos_brew_install_llvm` pipeline to use expected Python installation

* Fix `Python_EXECUTABLE` Cmake variable typo

* Apply suggestions from code review

* fix: use FindPython for CMake 3.18+ by default for pybind11's tests

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* tests: fix issues with finding Python

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* tests: also set executable on subdir tests

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* fix(cmake): correct logic for FindPython

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Update ci.yml

* Revert "Update ci.yml"

This reverts commit 33798adf3f.

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2023-12-14 14:36:45 -05:00
Victor Stinner
7d538a4275
fix: make_static_property_type() (#4971)
Update make_static_property_type() to make it compatible with Python
3.13: set Py_TPFLAGS_MANAGED_DICT flag before calling PyType_Ready().
2023-12-14 06:36:25 -08:00
dependabot[bot]
68322895df
chore(deps): bump actions/setup-python from 4 to 5 (#4965)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-06 21:09:08 -08:00
pre-commit-ci[bot]
c1e06f5bf9
chore(deps): update pre-commit hooks (#4963)
updates:
- [github.com/pre-commit/mirrors-clang-format: v17.0.4 → v17.0.6](https://github.com/pre-commit/mirrors-clang-format/compare/v17.0.4...v17.0.6)
- [github.com/astral-sh/ruff-pre-commit: v0.1.4 → v0.1.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.4...v0.1.6)
- [github.com/pre-commit/mirrors-mypy: v1.6.1 → v1.7.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.6.1...v1.7.1)
- [github.com/sirosen/texthooks: 0.6.2 → 0.6.3](https://github.com/sirosen/texthooks/compare/0.6.2...0.6.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-12-05 08:58:06 -08:00
Antoine Prouvost
a67d786571
fix(stl_bind): Enable bind_map with using declarations. (#4952)
* Enable `bind_map` with `using` declarations.

* style: pre-commit fixes

* Enable directives in bind_vector

* Add tests for bind_ and using directives

* style: pre-commit fixes

* Remove C++17 functions

* Fix test comment

* Add minimal user like map py test

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-29 12:56:25 -08:00
dependabot[bot]
4bb6163b4f
chore(deps): bump deadsnakes/action from 3.0.1 to 3.1.0 (#4951)
Bumps [deadsnakes/action](https://github.com/deadsnakes/action) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/deadsnakes/action/releases)
- [Commits](https://github.com/deadsnakes/action/compare/v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: deadsnakes/action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 15:37:43 -08:00
Ralf W. Grosse-Kunstleve
65661fee39 Change detail::annotated_any() to produce pybind11.CppType(...)
Background:

* https://github.com/python/mypy/issues/16306#issuecomment-1815191849

* https://github.com/python/mypy/issues/16306#issuecomment-1815246274
2023-11-16 12:51:42 -08:00
Ralf W. Grosse-Kunstleve
2b2ffebeb8 Introduce detail::annotated_any() helper. 2023-11-16 12:31:13 -08:00
Ralf W. Grosse-Kunstleve
429a1f820d Make test_cases_for_stubgen.py much more compact, and the pytest -v output much easier to read. 2023-11-16 00:33:38 -08:00
Ralf W. Grosse-Kunstleve
bdbb10d9a3 Add some deeply nested test cases. 2023-11-16 00:08:23 -08:00
Ralf W. Grosse-Kunstleve
542438f2b6 Merge branch 'master' into annotated_any 2023-11-15 23:35:29 -08:00
Ben Boeckel
dc9b39596d
pybind11.pc: use pcfiledir for relative destinations (#4830)
* pybind11.pc: use pcfiledir for relative destinations

If the datarootdir is absolute, just use the absolute path directly.
However, if it is relative, we can compute the prefix from the location
of the `.pc` file itself. This allows the install to be relocatable.

* chore: use 3.20's cmake_path if available

* style: pre-commit fixes

* Update CMakeLists.txt

---------

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-16 00:55:14 -05:00
Henry Schreiner
9591cfb0b8
fix(cmake): findpython issues and 3.12 support for pybind11_find_import (#4941)
* fix(cmake): findpython issues and 3.12 support for pybind11_find_import

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Update pybind11NewTools.cmake

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-11-16 00:54:47 -05:00
Henry Schreiner
6831666f5c
ci: add more versions of numpy/scipy/pypy (#4714)
* ci: add more versions of numpy/scipy/pypy

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Apply suggestions from code review

* style: pre-commit fixes

* Update requirements.txt

* Update requirements.txt

* Apply suggestions from code review

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-16 00:52:05 -05:00
Henry Schreiner
6cf90e7286
fix(cmake): avoid really slow compile on emscripten (#4642)
* fix: avoid really slow compile on emscripten

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Update tools/pybind11Common.cmake

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-11-16 00:50:15 -05:00
Henry Schreiner
b389ae77cb
chore: update changelog script for categories (#4942) 2023-11-15 18:59:07 -05:00
Ralf W. Grosse-Kunstleve
2376f6e953 Use py::handle instead of py::object to avoid clang-tidy errors. 2023-11-14 23:46:42 -08:00
Ralf W. Grosse-Kunstleve
79f6bdca36 Replace .stl_binders. with .cases_for_stubgen. 2023-11-14 23:40:33 -08:00
Ralf W. Grosse-Kunstleve
1a2e8a6624 C++11 compatibility. 2023-11-14 23:35:28 -08:00
Ralf W. Grosse-Kunstleve
69dac469fe Add m.basics tests in ntest_cases_for_stubgen.py 2023-11-14 23:19:48 -08:00
Ralf W. Grosse-Kunstleve
1fa0065967 pre-commit clang-format, NO manual changes. 2023-11-14 22:55:01 -08:00
Ralf W. Grosse-Kunstleve
644d15054e Minimal changes to make the basics code build. 2023-11-14 22:52:49 -08:00
Ralf W. Grosse-Kunstleve
1b4fa7172b Unmodified copy of c6cb3c6282/test-data/pybind11_mypy_demo/src/main.cpp 2023-11-14 22:50:34 -08:00
Ralf W. Grosse-Kunstleve
d1694d9ac5 Use locally defined bindings to avoid dependency on test_stl. 2023-11-14 22:44:42 -08:00
Ralf W. Grosse-Kunstleve
e5f210e61b Rename user_type to UserType 2023-11-14 14:08:59 -08:00