Skip to content

Commit 74e583c

Browse files
authored
Python 3.13, pybind11 2.13.0+ (#1675)
* pybind11: 2.13.0+ * Python 3.13
1 parent 8e67c1d commit 74e583c

File tree

9 files changed

+33
-16
lines changed

9 files changed

+33
-16
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Changes to "0.15.0"
1717
Features
1818
""""""""
1919

20-
- pybind11: require version 2.12.0+ #1220 #1322 #1637
20+
- pybind11: require version 2.13.0+ #1220 #1322 #1637 #1671
2121

2222
Bug Fixes
2323
"""""""""

Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,21 @@ RUN python3.12 -c "import openpmd_api as io; print(io.__version__); print
187187
RUN python3.12 -m openpmd_api.ls --help
188188
RUN openpmd-ls --help
189189

190+
# test in fresh env: Debian:Bullseye + Python 3.13
191+
FROM debian:bullseye
192+
ENV DEBIAN_FRONTEND noninteractive
193+
COPY --from=build-env /wheelhouse/openPMD_api-*-cp313-cp313-manylinux2010_x86_64.whl .
194+
RUN apt-get update \
195+
&& apt-get install -y --no-install-recommends python3.13 python3-distutils ca-certificates curl \
196+
&& rm -rf /var/lib/apt/lists/*
197+
RUN python3.13 --version \
198+
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
199+
&& python3.13 get-pip.py \
200+
&& python3.13 -m pip install openPMD_api-*-cp313-cp313-manylinux2010_x86_64.whl
201+
RUN python3.13 -c "import openpmd_api as io; print(io.__version__); print(io.variants)"
202+
RUN python3.13 -m openpmd_api.ls --help
203+
RUN openpmd-ls --help
204+
190205
# copy binary artifacts (wheels)
191206
FROM quay.io/pypa/manylinux2010_x86_64
192207
MAINTAINER Axel Huebl <[email protected]>

NEWS.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ For reading legacy ADIOS1 BP3 files, either use an older version of openPMD-api
1414
Note that ADIOS2 does not support compression in BP3 files.
1515

1616
CMake 3.22.0 is now the minimally supported version for CMake.
17-
pybind11 2.12.0 is now the minimally supported version for Python support.
17+
pybind11 2.13.0 is now the minimally supported version for Python support.
18+
Python 3.12 & 3.13 are now supported, Python 3.7 is removed.
1819

1920
The ``len(...)`` of many classes has been reworked for consistency and returns now the number of entries (iterations, record components, etc.).
2021
Previously, this sporadically returned the number of attributes, which is better queried via ``len(<object>.attributes)``.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ Required:
101101

102102
Shipped internally in `share/openPMD/thirdParty/`:
103103
* [Catch2](https://github.com/catchorg/Catch2) 2.13.10+ ([BSL-1.0](https://github.com/catchorg/Catch2/blob/master/LICENSE.txt))
104-
* [pybind11](https://github.com/pybind/pybind11) 2.12.0+ ([new BSD](https://github.com/pybind/pybind11/blob/master/LICENSE))
104+
* [pybind11](https://github.com/pybind/pybind11) 2.13.0+ ([new BSD](https://github.com/pybind/pybind11/blob/master/LICENSE))
105105
* [NLohmann-JSON](https://github.com/nlohmann/json) 3.9.1+ ([MIT](https://github.com/nlohmann/json/blob/develop/LICENSE.MIT))
106106
* [toml11](https://github.com/ToruNiina/toml11) 3.7.1+ ([MIT](https://github.com/ToruNiina/toml11/blob/master/LICENSE))
107107

@@ -115,8 +115,8 @@ while those can be built either with or without:
115115

116116
Optional language bindings:
117117
* Python:
118-
* Python 3.8 - 3.12
119-
* pybind11 2.12.0+
118+
* Python 3.8 - 3.13
119+
* pybind11 2.13.0+
120120
* numpy 1.15+
121121
* mpi4py 2.1+ (optional, for MPI)
122122
* pandas 1.0+ (optional, for dataframes)
@@ -265,7 +265,7 @@ CMake controls options with prefixed `-D`, e.g. `-DopenPMD_USE_MPI=OFF`:
265265
Additionally, the following libraries are downloaded via [FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html)
266266
during the configuration of the project or, if the corresponding `<PACKAGENAME>_ROOT` variable is provided, can be provided externally:
267267
* [Catch2](https://github.com/catchorg/Catch2) (2.13.10+)
268-
* [PyBind11](https://github.com/pybind/pybind11) (2.12.0+)
268+
* [PyBind11](https://github.com/pybind/pybind11) (2.13.0+)
269269
* [NLohmann-JSON](https://github.com/nlohmann/json) (3.9.1+)
270270
* [toml11](https://github.com/ToruNiina/toml11) (3.7.1+)
271271

cmake/dependencies/pybind11.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ function(find_pybind11)
4646
endif()
4747
elseif(NOT openPMD_USE_INTERNAL_PYBIND11)
4848
if(openPMD_USE_PYTHON STREQUAL AUTO)
49-
find_package(pybind11 2.12.0 CONFIG)
49+
find_package(pybind11 2.13.0 CONFIG)
5050
elseif(openPMD_USE_PYTHON)
51-
find_package(pybind11 2.12.0 CONFIG REQUIRED)
51+
find_package(pybind11 2.13.0 CONFIG REQUIRED)
5252
endif()
5353
if(TARGET pybind11::module)
5454
message(STATUS "pybind11: Found version '${pybind11_VERSION}'")
@@ -62,18 +62,18 @@ set(openPMD_pybind11_src ""
6262
"Local path to pybind11 source directory (preferred if set)")
6363

6464
# tarball fetcher
65-
set(openPMD_pybind11_tar "https://github.com/pybind/pybind11/archive/refs/tags/v2.12.0.tar.gz"
65+
set(openPMD_pybind11_tar "https://github.com/pybind/pybind11/archive/refs/tags/v2.13.6.tar.gz"
6666
CACHE STRING
6767
"Remote tarball link to pull and build pybind11 from if(openPMD_USE_INTERNAL_PYBIND11)")
68-
set(openPMD_pybind11_tar_hash "SHA256=bf8f242abd1abcd375d516a7067490fb71abd79519a282d22b6e4d19282185a7"
68+
set(openPMD_pybind11_tar_hash "SHA256=e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20"
6969
CACHE STRING
7070
"Hash checksum of the tarball of pybind11 if(openPMD_USE_INTERNAL_PYBIND11)")
7171

7272
# Git fetcher
7373
set(openPMD_pybind11_repo "https://github.com/pybind/pybind11.git"
7474
CACHE STRING
7575
"Repository URI to pull and build pybind11 from if(openPMD_USE_INTERNAL_PYBIND11)")
76-
set(openPMD_pybind11_branch "v2.12.0"
76+
set(openPMD_pybind11_branch "v2.13.6"
7777
CACHE STRING
7878
"Repository branch for openPMD_pybind11_repo if(openPMD_USE_INTERNAL_PYBIND11)")
7979

docs/source/dev/buildoptions.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ CMake Option Values Installs Library Version
6969
================================= =========== ======== ============= ========
7070
``openPMD_SUPERBUILD`` **ON**/OFF
7171
``openPMD_USE_INTERNAL_CATCH`` ON/OFF No Catch2 2.13.10+
72-
``openPMD_USE_INTERNAL_PYBIND11`` ON/OFF No pybind11 2.12.0+
72+
``openPMD_USE_INTERNAL_PYBIND11`` ON/OFF No pybind11 2.13.0+
7373
``openPMD_USE_INTERNAL_JSON`` ON/OFF No NLohmann-JSON 3.9.1+
7474
``openPMD_USE_INTERNAL_TOML11`` ON/OFF No toml11 3.7.1+
7575
================================= =========== ======== ============= ========

docs/source/dev/dependencies.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Shipped internally
1818
The following libraries are shipped internally in ``share/openPMD/thirdParty/`` for convenience:
1919

2020
* `Catch2 <https://github.com/catchorg/Catch2>`_ 2.13.10+ (`BSL-1.0 <https://github.com/catchorg/Catch2/blob/master/LICENSE.txt>`__)
21-
* `pybind11 <https://github.com/pybind/pybind11>`_ 2.12.0+ (`new BSD <https://github.com/pybind/pybind11/blob/master/LICENSE>`_)
21+
* `pybind11 <https://github.com/pybind/pybind11>`_ 2.13.0+ (`new BSD <https://github.com/pybind/pybind11/blob/master/LICENSE>`_)
2222
* `NLohmann-JSON <https://github.com/nlohmann/json>`_ 3.9.1+ (`MIT <https://github.com/nlohmann/json/blob/develop/LICENSE.MIT>`_)
2323
* `toml11 <https://github.com/ToruNiina/toml11>`_ 3.7.1+ (`MIT <https://github.com/ToruNiina/toml11/blob/master/LICENSE>`__)
2424

@@ -38,8 +38,8 @@ Optional: language bindings
3838

3939
* Python:
4040

41-
* Python 3.8 - 3.12
42-
* pybind11 2.12.0+
41+
* Python 3.8 - 3.13
42+
* pybind11 2.13.0+
4343
* numpy 1.15+
4444
* mpi4py 2.1+ (optional, for MPI)
4545
* pandas 1.0+ (optional, for dataframes)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ requires = [
44
"wheel",
55
"cmake>=3.22.0,<4.0.0",
66
"packaging>=23",
7-
"pybind11>=2.12.0,<3.0.0"
7+
"pybind11>=2.13.0,<3.0.0"
88
]
99
build-backend = "setuptools.build_meta"

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ def build_extension(self, ext):
230230
'Programming Language :: Python :: 3.10',
231231
'Programming Language :: Python :: 3.11',
232232
'Programming Language :: Python :: 3.12',
233+
'Programming Language :: Python :: 3.13',
233234
('License :: OSI Approved :: '
234235
'GNU Lesser General Public License v3 or later (LGPLv3+)'),
235236
],

0 commit comments

Comments
 (0)