Henry Schreiner
f5fbe867d2
chore: bump to 3.0.1 ( #5810 )
...
* docs: prepare for 3.0.1
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: bump for 3.0.1
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update docs/changelog.md
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-08-22 15:57:09 -04:00
Henry Schreiner
e71489c314
tests: avoid false DOWNLOAD_CATCH manually-specified variables warning ( #5803 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-08-21 15:52:09 -04:00
Robert Haschke
580494c7b4
fix: LTO warning of gcc >= 11.4 ( #5791 )
...
lto-wrapper: warning: using serial compilation of n LTRANS jobs
https://stackoverflow.com/questions/72218980/gcc-v12-1-warning-about-serial-compilation
2025-08-12 09:00:33 -04:00
Henry Schreiner
ad9180c120
fix: android CMake support ( #5733 )
2025-06-17 20:04:52 -04:00
Henry Schreiner
a1b1972241
chore: prepare for 3.0.0rc2 ( #5698 )
...
* chore: prepare for 3.0.0rc2
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update docs/changelog.md
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-05-29 01:16:32 -04:00
Henry Schreiner
a18b1bc4dc
tests: always disable on the nogil build ( #5701 )
...
* docs: fix docs on visibilty preset hidden
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* tests: always disable on the nogil build
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* style: pre-commit fixes
* docs: mention skip reason in comment
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-28 23:33:53 -04:00
Henry Schreiner
6e3e8515e7
fix(cmake): regression in include gaurd ( #5691 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-05-26 12:26:08 -04:00
Henry Schreiner
ec8b050824
chore: convert changelog to markdown ( #5672 )
...
* chore: move changelog to markdown
* chore: switch to simpler block def
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* style: pre-commit fixes
* chore: handle more block ends
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: fix md display
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: one more fix
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* style: pre-commit fixes
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-20 14:52:14 -04:00
Ralf W. Grosse-Kunstleve
4587d33cf9
docs: prepare for v3.0.0rc1 ( #5589 )
...
* Squashed prepv300/manuscript — 30b9c268aeb98308ea42aaccfd5fe454e173c6fc — 2025-03-30 14:56:03 -0700 [skip ci]
[Browse prepv300/manuscript tree](30b9c268ae )
[Browse prepv300/manuscript commits](30b9c268ae /)
* docs: update changelog
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: upgrade guide CMake suggestions
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Explain type_caster_enum_type_enabled, copyable_holder_caster_shared_ptr_with_smart_holder_support_enabled, move_only_holder_caster_unique_ptr_with_smart_holder_support_enabled in Upgrade guide.
* Add a small section for py::bind_vector, py::bind_map & py::smart_holder
* Fix tiny oversight: Reference back to the current release v2.13 (not v2.12)
* Remove sentence: Using self._pybind11_conduit_v1_() ... should keep extension compatibility.
This isn't true, because we also modernized `PYBIND11_PLATFORM_ABI_ID`
(which I believe was absolutely necessary). I think it'll be too complicated
to explain that here, and there is a mention in the Upgrade guide.
* Changelog: combine #4953 and #5439
* Trivial whitespace/formatting fixes/enhancements.
* chore: add more to deprecation page
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: update for recent additions
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: fixes and set rc1 version
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix: support rc versions
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Undo erroneous copilot change: We need to use `detail::enable_if_t`, for compatibility with C++11 and C++14.
* Empty lines cleanup.
* Rewording of "CMake support now defaults to ..." paragraph.
* Add missing backticks in upgrade guide.
* Try :ref:deprecated instead of :doc:deprecated
* docs: last bit of polish
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Piggy-back trivial whitespace cleanup that was missed in PR #5669
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-05-19 09:02:11 -04:00
Henry Schreiner
af231a6054
chore: use scikit-build-core for the build ( #5598 )
...
* chore: use scikit-build-core for the build
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix: support tests job
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* refactor: use tomlkit instead of manual parsing
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* tests: add tests for output
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: remove more unused files
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix: restore global pin
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix: test and fix pinning
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-05-15 14:39:23 -04:00
Henry Schreiner
ce42c4df48
fix(cmake): avoid message if FINDPYTHON NEW ( #5656 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-05-13 00:44:25 -04:00
Xuehai Pan
9a191c245d
Fix typos for FindPython compact mode: Python_LIRAR{Y,IES} -> Python_LIBRAR{Y,IES} ( #5653 )
2025-05-10 23:13:17 -04:00
Henry Schreiner
55b1357d8e
chore: update nox and test deps ( #5594 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-04-02 08:24:15 -04:00
Henry Schreiner
d27fdaa272
chore: update for CMake 4.0 ( #5593 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-03-31 22:50:40 -04:00
Henry Schreiner
bb504dd809
fix: FindPython by default logic error ( #5561 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-03-20 17:38:30 -04:00
Henry Schreiner
655c60d84c
docs: fix incorrect name (PYBIND11_NEWPYTHON) ( #5570 )
2025-03-19 12:45:26 -04:00
Henry Schreiner
d28904f12e
feat: FindPython by default ( #5553 )
...
* feat: FindPython by default
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update tools/pybind11Config.cmake.in
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2025-03-11 18:10:26 -04:00
Dustin Spicuzza
ded70fe605
Add pkgconf-pypi entrypoint ( #5552 )
...
- This allows `pkgconf --cflags pybind11` and similar commands to work as expected
if pkgconf is installed from pypi
2025-03-06 14:21:24 -05:00
Xuehai Pan
924261e814
chore(cmake): Add an author warning that auto-calculated PYTHON_MODULE_EXTENSION may not respect SETUPTOOLS_EXT_SUFFIX during cross-compilation ( #5495 )
2025-01-24 17:21:05 -05:00
Jochen Sprickerhof
167bb5f271
fix(cmake): don't strip with BUILD_TYPE None ( #5392 )
...
Debian builds with None by default and takes care of stripping itself.
This allows building debug symbol packages.
2025-01-24 17:08:47 -05:00
pre-commit-ci[bot]
b17555f340
chore(deps): update pre-commit hooks ( #5459 )
...
* chore(deps): update pre-commit hooks
updates:
- [github.com/pre-commit/mirrors-clang-format: v19.1.3 → v19.1.4](https://github.com/pre-commit/mirrors-clang-format/compare/v19.1.3...v19.1.4 )
- [github.com/astral-sh/ruff-pre-commit: v0.7.2 → v0.8.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.2...v0.8.1 )
- [github.com/sirosen/texthooks: 0.6.7 → 0.6.8](https://github.com/sirosen/texthooks/compare/0.6.7...0.6.8 )
- [github.com/PyCQA/pylint: v3.3.1 → v3.3.2](https://github.com/PyCQA/pylint/compare/v3.3.1...v3.3.2 )
- [github.com/python-jsonschema/check-jsonschema: 0.29.4 → 0.30.0](https://github.com/python-jsonschema/check-jsonschema/compare/0.29.4...0.30.0 )
* Resolve ruff pre-commit errors:
```
ruff.....................................................................Failed
- hook id: ruff
- exit code: 1
warning: The following rules have been removed and ignoring them has no effect:
- PT004
docs/benchmark.py:51:17: UP031 Use format specifiers instead of percent format
|
50 | for cl in range(nclasses):
51 | decl += "class cl%03i {\n" % cl
| ^^^^^^^^^^^^^^^^^^ UP031
52 | decl += "public:\n"
53 | bindings += f' py::class_<cl{cl:03}>("cl{cl:03}")\n'
|
= help: Replace with format specifiers
docs/benchmark.py:88:15: UP031 Use format specifiers instead of percent format
|
86 | elapsed = (n2 - n1).total_seconds()
87 | size = os.stat("test.so").st_size
88 | print(" {%i, %f, %i}," % (nclasses * nfns, elapsed, size))
| ^^^^^^^^^^^^^^^^^^ UP031
89 | print("}")
|
= help: Replace with format specifiers
tools/make_changelog.py:62:9: PLC0206 Extracting value from dictionary without calling `.items()`
|
61 | msg += f"\n `#{issue.number} <{issue.html_url}>`_"
62 | for cat in cats:
| _________^
63 | | if issue.title.lower().startswith(f"{cat}:"):
64 | | cats[cat].append(msg)
65 | | break
66 | | else:
67 | | cats["unknown"].append(msg)
| |_______________________________________^ PLC0206
68 |
69 | for cat, msgs in cats.items():
|
Found 3 errors.
```
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com >
2024-12-08 15:21:49 -08:00
Ralf W. Grosse-Kunstleve
a90e2af88d
Factor out pybind11/conduit/pybind11_platform_abi_id.h ( #5375 )
...
* Factor out pybind11/compat/wrap_include_python_h.h
* Fixes to resolve tests_packaging failures.
* Factor out pybind11/compat/pybind11_platform_abi_id.h
* Add pybind11/compat/README.txt and a couple source code comments.
* Minor changes to comments.
* Factor out pybind11/compat/pybind11_conduit_v1.h
* Add long comment to pybind11/compat/pybind11_conduit_v1.h
* Add pybind11/compat/README.txt to wheels.
* Add `-fno-exceptions` to compiler options for exo_planet_c_api
* 1. Move `target_compile_options()` into loop over test targets, in case the `"exo_planet_c_api"` target does not exist. 2. Add `-fno-exceptions` option also for `NVHPC`. 3. Also check for `__cpp_exceptions` in exo_planet_c_api.cpp.
* 1. Fix accident (forgot to undo temporary change). 2. Special-case __EMSCRIPTEN__ in exo_planet_c_api.cpp
* Give up on compiling exo_planet_c_api.cpp with MSVC `/EHs-c-`:
There was one trouble maker (all other jobs worked):
Visual Studio 15 2017:
```
cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [C:\projects\pybind11\tests\exo_planet_c_api.vcxproj]
...
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xlocale(319): error C2220: warning treated as error - no 'object' file generated [C:\projects\pybind11\tests\exo_planet_c_api.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xlocale(319): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
```
* Move pybind11/compat to pybind11/conduit as suggested by @henryiii:
https://github.com/pybind/pybind11/pull/5375#pullrequestreview-2329006001
2024-11-10 12:17:35 -08:00
Hintay
1f8b4a7f1a
fix(cmake): NO_EXTRAS in pybind11_add_module function partially working ( #5378 )
2024-09-19 11:24:35 -04:00
Henry Schreiner
28dbce4157
feat: require CMake 3.15+ ( #5304 )
...
* feat: require CMake 3.15+
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Apply suggestions from code review
* Update CMakeLists.txt
* fix: adapt for CMake 3.30+ (using 3.18+)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-08-14 18:21:04 -04:00
Henry Schreiner
1fe92c7b35
fix: emscripten cmake issue ( #5301 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-08-13 12:32:32 -04:00
Henry Schreiner
fc59f4e6e5
fix(cmake): add required emscripten flags ( #5298 )
...
* fix(cmake): add required emscripten flags
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update emscripten.yaml
* fix(cmake): add required emscripten flags to headers target
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix(cmake): incorrect detection of Emscripten
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix(cmake): allow pybind11::headers to be modified
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix(cmake): hide a warning when building the tests standalone
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix(cmake): use explicit variable for is config
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* fix(cmake): go back to ALIAS target
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: reduce overall diff
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: reduce overall diff
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: shorten code a bit
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-08-12 16:51:48 -04:00
Ralf W. Grosse-Kunstleve
723307283e
feat: remove Python 3.7 support ( #5191 )
...
* First pass updating misc files, informed by https://github.com/pybind/pybind11/pull/5177/commits
* Remove jobs using silkeh/clang and gcc docker containers that come with Python 3.7
* Add silkeh/clang:17-bookworm
* Add job using GCC 7
* Revert "Add job using GCC 7"
This reverts commit 518515a761 .
* Try running in ubuntu-18.04 container under ubuntu-latest (to get GCC 7)
* Fix `-` vs `:` mixup.
* This reverts commit b1c4304475 .
Revert "Try running in ubuntu:18.04 container under ubuntu-latest (to get GCC 7)"
This reverts commit b203a294bb .
* `git grep 0x03080000` cleanup.
* `git grep -I -E '3\.7'` cleanup.
Removes two changes made under pybind/pybind11#3702
* Revert "`git grep -I -E '3\.7'` cleanup."
This reverts commit bb5b9d187b .
* Remove comments that are evidently incorrect:
```
...
-- The CXX compiler identification is Clang 15.0.7
...
- Found Python: /usr/bin/python3.9 (found suitable version "3.9.2", minimum required is "3.7") found components: Interpreter Development.Module Development.Embed
...
/__w/pybind11/pybind11/include/pybind11/gil.h:150:13: error: 'auto key' can be declared as 'auto *key' [readability-qualified-auto,-warnings-as-errors]
auto key = internals.tstate;
^~~~~
auto *
/__w/pybind11/pybind11/include/pybind11/gil.h:174:13: error: 'auto key' can be declared as 'auto *key' [readability-qualified-auto,-warnings-as-errors]
auto key = detail::get_internals().tstate;
^~~~~
auto *
```
* .github/workflows/configure.yml: Change from Python 3.7 to 3.8
* Misc cleanup pass
* Miscellaneous changes based on manual review of the `git grep` matches below:
```
git_grep_37_38.sh |& sort | uniq -c
```
With git_grep_37_38.sh:
```
set -x
git grep 0x0307
git grep 0x0308
git grep PY_MINOR_VERSION
git grep PYPY_VERSION
git grep -I -E '3\.7'
git grep -I -E '3\.8'
git grep -I -E '\(3, 7'
git grep -I -E '\(3, 8'
git grep -I -E '3[^A-Za-z0-9.]+7'
git grep -I -E '3[^A-Za-z0-9.]+8'
```
Output:
```
1 .appveyor.yml: $env:CMAKE_INCLUDE_PATH = "eigen-3.3.7;$env:CMAKE_INCLUDE_PATH"
1 .appveyor.yml: 7z x eigen-3.3.7.zip -y > $null
1 .appveyor.yml: Start-FileDownload 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip '
1 CMakeLists.txt: # Bug in macOS CMake < 3.7 is unable to download catch
1 CMakeLists.txt: elseif(WINDOWS AND CMAKE_VERSION VERSION_LESS 3.8)
1 CMakeLists.txt: if(OSX AND CMAKE_VERSION VERSION_LESS 3.7)
1 CMakeLists.txt: message(WARNING "CMAKE 3.7+ needed on macOS to download catch, and newer HIGHLY recommended")
1 CMakeLists.txt: message(WARNING "CMAKE 3.8+ tested on Windows, previous versions untested")
1 CMakeLists.txt: # Only tested with 3.8+ in CI.
1 docs/advanced/functions.rst:Python 3.8 introduced a new positional-only argument syntax, using ``/`` in the
1 docs/changelog.rst:* Adapt pybind11 to a C API convention change in Python 3.8. `#1950
1 docs/changelog.rst:* Allow thread termination to be avoided during shutdown for CPython 3.7+ via
1 docs/changelog.rst: considered as conversion, consistent with Python 3.8+.
1 docs/changelog.rst: CPython 3.8 and 3.9 debug builds.
1 docs/changelog.rst:* Enum now has an ``__index__`` method on Python <3.8 too.
1 docs/changelog.rst: on Python 3.8. `#1780 <https://github.com/pybind/pybind11/pull/1780 >`_.
1 docs/changelog.rst:* PyPy 3.10 support was added, PyPy 3.7 support was dropped.
2 docs/changelog.rst:* Support PyPy 7.3.7 and the PyPy3.8 beta. Test python-3.11 on PRs with the
1 docs/changelog.rst:* Use ``macos-13`` (Intel) for CI jobs for now (will drop Python 3.7 soon).
1 docs/changelog.rst:* Use new Python 3.7 Thread Specific Storage (TSS) implementation if available.
1 docs/compiling.rst: cmake -DPYBIND11_PYTHON_VERSION=3.8 ..
1 docs/compiling.rst: find_package(Python 3.8 COMPONENTS Interpreter Development REQUIRED)
1 docs/limitations.rst:- PyPy3 7.3.1 and 7.3.2 have issues with several tests on 32-bit Windows.
1 docs/requirements.txt:idna==3.7 \
1 + git grep 0x0307
1 + git grep 0x0308
1 + git grep -I -E '\(3, 7'
1 + git grep -I -E '3\.7'
1 + git grep -I -E '\(3, 8'
1 + git grep -I -E '3\.8'
1 + git grep -I -E '3[^A-Za-z0-9.]+7'
1 + git grep -I -E '3[^A-Za-z0-9.]+8'
1 + git grep PY_MINOR_VERSION
1 + git grep PYPY_VERSION
2 .github/workflows/ci.yml: - '3.8'
1 .github/workflows/ci.yml: - 3.8
1 .github/workflows/ci.yml: - name: Add Python 3.8
1 .github/workflows/ci.yml: - 'pypy-3.8'
2 .github/workflows/ci.yml: python: '3.8'
1 .github/workflows/ci.yml: - python: '3.8'
1 .github/workflows/ci.yml: - python: 3.8
1 .github/workflows/ci.yml: python: 'pypy-3.8'
1 .github/workflows/configure.yml: cmake: "3.8"
1 .github/workflows/configure.yml: name: 🐍 3.8 • CMake ${{ matrix.cmake }} • ${{ matrix.runs-on }}
1 .github/workflows/configure.yml: - name: Setup Python 3.8
1 .github/workflows/configure.yml: python-version: 3.8
1 .github/workflows/pip.yml: name: 🐍 3.8 • 📦 & 📦 tests • ubuntu-latest
1 .github/workflows/pip.yml: name: 🐍 3.8 • 📦 tests • windows-latest
2 .github/workflows/pip.yml: - name: Setup 🐍 3.8
2 .github/workflows/pip.yml: python-version: 3.8
2 include/pybind11/cast.h:#if !defined(PYPY_VERSION)
2 include/pybind11/cast.h:#if defined(PYPY_VERSION)
2 include/pybind11/cast.h: // PyPy: 7.3.7's 3.8 does not implement PyLong_*'s __index__ calls.
5 include/pybind11/detail/class.h:#if !defined(PYPY_VERSION)
1 include/pybind11/detail/class.h:#if defined(PYPY_VERSION)
1 include/pybind11/detail/class.h: // This was not needed before Python 3.8 (Python issue 35810)
1 include/pybind11/detail/common.h: && !defined(PYPY_VERSION) && !defined(PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF)
2 include/pybind11/detail/common.h:# error "PYTHON < 3.8 IS UNSUPPORTED. pybind11 v2.13 was the last to support Python 3.7."
1 include/pybind11/detail/common.h:#if defined(PYPY_VERSION) && !defined(PYBIND11_SIMPLE_GIL_MANAGEMENT)
1 include/pybind11/detail/common.h:#if PY_VERSION_HEX < 0x03080000
1 include/pybind11/detail/common.h: = PYBIND11_TOSTRING(PY_MAJOR_VERSION) "." PYBIND11_TOSTRING(PY_MINOR_VERSION); \
1 include/pybind11/detail/internals.h: // called. PYBIND11_TLS_FREE is PyThread_tss_free on python 3.7+. On older python, it does
1 include/pybind11/detail/internals.h:#if PYBIND11_INTERNALS_VERSION <= 4 || defined(PYPY_VERSION)
1 include/pybind11/detail/internals.h:// The old Python Thread Local Storage (TLS) API is deprecated in Python 3.7 in favor of the new
1 include/pybind11/detail/type_caster_base.h:#if defined(PYPY_VERSION)
1 include/pybind11/embed.h:# define PYBIND11_PYCONFIG_SUPPORT_PY_VERSION_HEX (0x03080000)
1 include/pybind11/embed.h:#if defined(PYPY_VERSION)
1 include/pybind11/eval.h: // globals if not yet present. Python 3.8 made PyRun_String behave
2 include/pybind11/eval.h:#if defined(PYPY_VERSION)
2 include/pybind11/eval.h: // was missing from PyPy3.8 7.3.7.
2 include/pybind11/gil.h: /// allowed during shutdown. Check _Py_IsFinalizing() on Python 3.7+, and
1 include/pybind11/pybind11.h:#if !defined(PYPY_VERSION)
4 include/pybind11/pybind11.h:#if !defined(PYPY_VERSION) && PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION == 9
1 include/pybind11/pytypes.h:#endif //! defined(PYPY_VERSION)
2 include/pybind11/pytypes.h:#if !defined(PYPY_VERSION)
1 include/pybind11/pytypes.h:# if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x07030a00
1 include/pybind11/pytypes.h:#ifdef PYPY_VERSION
1 include/pybind11/stl/filesystem.h:# if !defined(PYPY_VERSION)
2 pybind11/__init__.py:if sys.version_info < (3, 8):
2 pybind11/__init__.py: msg = "pybind11 does not support Python < 3.8. v2.13 was the last release supporting Python 3.7."
1 pyproject.toml:master.py-version = "3.8"
1 pyproject.toml:python_version = "3.8"
1 README.rst:lines of code and depend on Python (3.8+, or PyPy) and the C++
2 README.rst:- Python 3.8+, and PyPy3 7.3 are supported with an implementation-agnostic
1 setup.cfg: Programming Language :: Python :: 3.8
1 setup.cfg:python_requires = >=3.8
1 setup.py:# TODO: use literals & overload (typing extensions or Python 3.8)
1 tests/CMakeLists.txt:if(NOT CMAKE_VERSION VERSION_LESS 3.8)
2 tests/constructor_stats.h:#if defined(PYPY_VERSION)
1 tests/env.py: doesn't work on CPython 3.8.0 with pytest==3.3.2 on Ubuntu 18.04 (#2922 ).
1 tests/requirements.txt:build~=1.0; python_version>="3.8"
1 tests/requirements.txt:numpy~=1.21.5; platform_python_implementation!="PyPy" and python_version>="3.8" and python_version<"3.10"
1 tests/requirements.txt:numpy~=1.23.0; python_version=="3.8" and platform_python_implementation=="PyPy"
1 tests/test_buffers.py: env.PYPY, reason="PyPy 7.3.7 doesn't clear this anymore", strict=False
1 tests/test_builtin_casters.py: # Before Python 3.8, `PyLong_AsLong` does not pick up on `obj.__index__`,
2 tests/test_builtin_casters.py: if (3, 8) <= sys.version_info < (3, 10) and env.CPYTHON:
4 tests/test_builtin_casters.py: # TODO: PyPy 3.8 does not behave like CPython 3.8 here yet (7.3.7)
1 tests/test_callbacks.py: assert m.test_callback3(z.double) == "func(43) = 86"
2 tests/test_call_policies.cpp:#if !defined(PYPY_VERSION)
1 tests/test_chrono.py: diff = m.test_chrono_float_diff(43.789012, 1.123456)
1 tests/test_constants_and_functions.py: assert m.f3(86) == 89
1 tests/test_eigen_matrix.py: a_copy3[8, 1] = 11
1 tests/test_eigen_matrix.py: assert np.all(cornersc == np.array([[1.0, 3], [7, 9]]))
1 tests/test_eigen_matrix.py: assert np.all(cornersr == np.array([[1.0, 3], [7, 9]]))
1 tests/test_eigen_matrix.py: mymat = chol(np.array([[1.0, 2, 4], [2, 13, 23], [4, 23, 77]]))
1 tests/test_exceptions.py: if hasattr(pytest, unraisable): # Python >= 3.8 and pytest >= 6
2 tests/test_exceptions.py:@pytest.mark.xfail(env.PYPY, reason="Failure on PyPy 3.8 (7.3.7)", strict=False)
1 tests/test_factory_constructors.py: assert [i.alive() for i in cstats] == [13, 7]
1 tests/test_kwargs_and_defaults.cpp:#ifdef PYPY_VERSION
1 tests/test_local_bindings.py: assert i1.get3() == 8
1 tests/test_methods_and_attributes.cpp:#if !defined(PYPY_VERSION)
1 tests/test_numpy_array.py: a = np.arange(3 * 7 * 2) + 1
1 tests/test_numpy_array.py: assert str(excinfo.value) == "cannot reshape array of size 42 into shape (3,7,1)"
2 tests/test_numpy_array.py: assert x.shape == (3, 7, 2)
2 tests/test_numpy_array.py: m.reshape_tuple(a, (3, 7, 1))
2 tests/test_numpy_array.py: x = m.reshape_tuple(a, (3, 7, 2))
1 tests/test_numpy_vectorize.py: assert np.isclose(m.vectorized_func3(np.array(3 + 7j)), [6 + 14j])
1 tests/test_pickling.cpp:#if !defined(PYPY_VERSION)
1 tests/test_pytypes.cpp:#if (defined(__APPLE__) && defined(__clang__)) || defined(PYPY_VERSION)
1 tests/test_smart_ptr.cpp: m.def("make_myobject3_1", []() { return new MyObject3(8); });
1 tests/test_smart_ptr.py: assert cstats.values() == ["MyObject3[9]", "MyObject3[8]", "MyObject3[9]"]
1 tests/test_stl_binders.py: assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88])
1 tests/test_stl_binders.py: assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88, 4])
1 tests/test_type_caster_pyobject_ptr.cpp:#if !defined(PYPY_VERSION) // It is not worth the trouble doing something special for PyPy.
1 tools/FindPythonLibsNew.cmake: set(PythonLibsNew_FIND_VERSION "3.8")
1 tools/JoinPaths.cmake:# https://docs.python.org/3.7/library/os.path.html#os.path.join
1 tools/pybind11NewTools.cmake: Python 3.8 REQUIRED COMPONENTS ${_pybind11_interp_component} ${_pybind11_dev_component}
1 tools/pybind11NewTools.cmake:# Python debug libraries expose slightly different objects before 3.8
1 tools/pybind11Tools.cmake: "3.12;3.11;3.10;3.9;3.8"
1 tools/pybind11Tools.cmake: if(NOT DEFINED PYPY_VERSION)
1 tools/pybind11Tools.cmake: message(STATUS "PYPY ${PYPY_VERSION} (Py ${PYTHON_VERSION})")
1 tools/pybind11Tools.cmake:# Python debug libraries expose slightly different objects before 3.8
1 tools/pybind11Tools.cmake: set(PYPY_VERSION
```
* Change `[tool.ruff]` `target-version` to `"py38"`, as suggested by @Skylion007
2024-07-30 09:18:35 -07:00
Varun Agrawal
e0f9e77466
fix(cmake): remove extra = in flto assignment ( #5207 )
2024-06-27 22:26:09 -04:00
Henry Schreiner
9ec64e37c3
docs: prepare for 2.13.0 ( #5187 )
...
* docs: prepare for 2.13.0
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: reword cross-compiling entry
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update changelog.rst
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-06-25 16:24:54 -04:00
Ralf W. Grosse-Kunstleve
f1a2e03d19
feat: remove Python 3.6 support ( #5177 )
...
* Change Python version guard: PYTHON < 3.7 IS UNSUPPORTED.
* Replace or remove Python 3.6 jobs.
* Move appveyor to Python 3.8
* Change `[tool.pylint]` `master.py-version` from `3.6` to `3.8`
* Change `[tool.pylint]` `master.py-version` to `3.7`
* Remove `centos:7` job; Change almalinux:8 job to use Python 3.8
* Try 🐍 3.8 • ubuntu-20.04 • x64 without `-DCMAKE_CXX_FLAGS="-D_=1"`
* Update setup.cfg as suggested by @henryiii
* Try running `cmake --build . --target cpptest` on all platforms (`standard` job).
* Disable deadsnakes jobs entirely.
* Apply PR #5179 : Add Python 3.10, 3.11, 3.12 to win32 job matrix.
* Add back `-DCMAKE_CXX_FLAGS="-D_=1"` but do not install boost in that case.
* PY_VERSION_HEX < 3.7 cleanup pass: include/pybind11
* WITH_THREAD cleanup pass: include/pybind11
* Undo incorrect change.
* Revert "Disable deadsnakes jobs entirely."
This reverts commit bbcd0087b2 .
* WITH_THREAD cleanup pass: tests/
* Change Python version guard in pybind11/__init__.py: pybind11 does not support Python < 3.7.
* Misc cleanup pass
* chore: use future imports
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update tests/test_numpy_array.py
* Update test_numpy_array.py
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-06-22 00:55:00 -04:00
Pieter P
9b3a200065
fix(cmake): improved cross-compilation support ( #5083 )
...
* fix(cmake): do not use Python::Interpreter when cross-compiling
* chore: apply cmake-format to pybind11NewTools.cmake
* fix(cmake): do not look for Python Interpreter component when cross-compiling
* feat(cmake): guess Python extension suffix
* fix: add pybind11GuessPythonExtSuffix.cmake to packaging test
* Use PYBIND11_CROSSCOMPILING instead of CMAKE_CROSSCOMPILING
* refactor: require PYBIND11_USE_CROSSCOMPILING
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-06-06 17:17:54 -04:00
Henry Schreiner
6b5674f36d
chore: prepare 2.12.0 ( #5070 )
...
* chore: prepare 2.12.0
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: more info on numpy 2
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: mention NumPy 2 in README
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: add release date
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* docs: add 4955
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update changelog.rst
* docs: address review comments
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2024-03-27 18:09:06 -04:00
Henry Schreiner
ddb8b67a8a
fix(cmake): allow forcing old FindPython ( #5042 )
2024-03-21 03:23:57 -04: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
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
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
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
Social_Mean
31b0a5d94f
fix doc typo
2023-11-03 23:51:16 -04:00
Axel Huebl
76b7f53649
Python_ADDITIONAL_VERSIONS: 3.12 ( #4909 )
...
Add 3.12 to the default `Python_ADDITIONAL_VERSIONS`.
2023-10-31 22:56:16 -04:00
Henry Schreiner
a18c10f690
fix(cmake): make library component optional ( #4805 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2023-10-27 11:02:05 -04:00
László Papp
5891867ee4
fix(cmake): support DEBUG_POSTFIX correctly ( #4761 )
...
* cmake: split extension
Into suffix and debug postfix. Pybind11 is currently treating both as
suffix, which is problematic when something else defines the
DEBUG_POSTFIX because they will be concatenated.
pybind11_extension sets SUFFIX to _d.something and if DEBUG_POSTFIX is
set to _d.
_d + _d.something = _d_d.something
The issue has been reported at:
https://github.com/pybind/pybind11/issues/4699
* style: pre-commit fixes
* fix(cmake): support postfix for old FindPythonInterp mode too
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com >
2023-09-15 18:05:43 -04:00
Henry Schreiner
4fb111bd78
fix(cmake): correctly detect FindPython policy and better warning ( #4806 )
2023-09-15 17:59:30 -04:00
Pieter P
4bf60c609a
Disable strip when build type is unset ( #4454 ) ( #4780 )
2023-08-07 20:58:30 -07:00
Henry Schreiner
2e5f5c4cf8
fix: support CMake 3.27, drop 3.4 ( #4719 )
...
* fix: support CMake 3.27, drop 3.4
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* Update upgrade.rst
* Update upgrade.rst
* Update upgrade.rst
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2023-07-12 13:10:24 -05:00
Henry Schreiner
956390a87f
fix(cmake): only define lto if CMAKE's IPO setting is unset ( #4643 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2023-04-29 10:15:45 -04:00
Henry Schreiner
438034c5b8
chore: move to Ruff and add rules ( #4483 )
2023-02-22 06:18:55 -08:00
Ralf W. Grosse-Kunstleve
08a4a47a6c
Revert "Go back to CMake 3.25.2 ( #4496 )" ( #4503 )
...
* Revert "Go back to CMake 3.25.2 (#4496 )"
This reverts commit b8f28551cc .
* Apply patch provided by @bradking (with pre-commit cmake-format auto fixes).
https://github.com/pybind/pybind11/pull/4503#issuecomment-1424768172
2023-02-16 10:54:57 -05:00
Henry Schreiner
b2d7ad72c2
chore: prepare for 2.10.3 ( #4437 )
...
* docs: update changelog for v2.10.3
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: bump versions for 2.10.3
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
* chore: fix make changelog script with entry is empty
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2023-01-03 11:34:22 -05:00
Henry Schreiner
a97c4d220e
fix(cmake): support Windows ARM cross-compilation ( #4406 )
...
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com >
2022-12-19 14:36:39 -05:00