From 30a0decb47aff80ee8909c918eb89b75ff422643 Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 17:29:50 -0400 Subject: [PATCH] [Bot] Update dependencies (#1812) Update dependencies Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> --- cibuildwheel/resources/build-platforms.toml | 12 ++--- .../resources/constraints-python310.txt | 12 ++--- .../resources/constraints-python311.txt | 8 +-- .../resources/constraints-python312.txt | 8 +-- .../resources/constraints-python37.txt | 8 ++- .../resources/constraints-python38.txt | 12 ++--- .../resources/constraints-python39.txt | 12 ++--- cibuildwheel/resources/constraints.txt | 8 +-- .../resources/pinned_docker_images.cfg | 52 +++++++++---------- docs/working-examples.md | 12 ++--- 10 files changed, 68 insertions(+), 76 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index c0a3f65c..a102fac1 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -106,10 +106,10 @@ python_configurations = [ { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-osx64.tar.bz2" }, { identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_x86_64.tar.bz2" }, { identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" }, - { identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.15-macos_x86_64.tar.bz2" }, - { identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.15-macos_arm64.tar.bz2" }, - { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.15-macos_x86_64.tar.bz2" }, - { identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.15-macos_arm64.tar.bz2" }, + { identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.bz2" }, + { identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_arm64.tar.bz2" }, + { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.16-macos_x86_64.tar.bz2" }, + { identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.16-macos_arm64.tar.bz2" }, ] [windows] @@ -134,6 +134,6 @@ python_configurations = [ { identifier = "cp312-win_arm64", version = "3.12.3", arch = "ARM64" }, { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" }, { identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" }, - { identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.15-win64.zip" }, - { identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.15-win64.zip" }, + { identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" }, + { identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.16-win64.zip" }, ] diff --git a/cibuildwheel/resources/constraints-python310.txt b/cibuildwheel/resources/constraints-python310.txt index 1bdd7a27..b2ecb397 100644 --- a/cibuildwheel/resources/constraints-python310.txt +++ b/cibuildwheel/resources/constraints-python310.txt @@ -6,7 +6,7 @@ build==1.2.1 delocate==0.11.0 distlib==0.3.8 # via virtualenv -filelock==3.13.4 +filelock==3.14.0 # via virtualenv importlib-metadata==7.1.0 # via build @@ -17,16 +17,14 @@ packaging==24.0 # build # delocate pip==24.0 -platformdirs==4.2.0 +platformdirs==4.2.1 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build tomli==2.0.1 - # via - # build - # pyproject-hooks + # via build typing-extensions==4.11.0 # via delocate -virtualenv==20.25.3 +virtualenv==20.26.1 zipp==3.18.1 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints-python311.txt b/cibuildwheel/resources/constraints-python311.txt index cbcc429f..f9325ba0 100644 --- a/cibuildwheel/resources/constraints-python311.txt +++ b/cibuildwheel/resources/constraints-python311.txt @@ -6,7 +6,7 @@ build==1.2.1 delocate==0.11.0 distlib==0.3.8 # via virtualenv -filelock==3.13.4 +filelock==3.14.0 # via virtualenv macholib==1.16.3 # via delocate @@ -15,10 +15,10 @@ packaging==24.0 # build # delocate pip==24.0 -platformdirs==4.2.0 +platformdirs==4.2.1 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build typing-extensions==4.11.0 # via delocate -virtualenv==20.25.3 +virtualenv==20.26.1 diff --git a/cibuildwheel/resources/constraints-python312.txt b/cibuildwheel/resources/constraints-python312.txt index cbcc429f..f9325ba0 100644 --- a/cibuildwheel/resources/constraints-python312.txt +++ b/cibuildwheel/resources/constraints-python312.txt @@ -6,7 +6,7 @@ build==1.2.1 delocate==0.11.0 distlib==0.3.8 # via virtualenv -filelock==3.13.4 +filelock==3.14.0 # via virtualenv macholib==1.16.3 # via delocate @@ -15,10 +15,10 @@ packaging==24.0 # build # delocate pip==24.0 -platformdirs==4.2.0 +platformdirs==4.2.1 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build typing-extensions==4.11.0 # via delocate -virtualenv==20.25.3 +virtualenv==20.26.1 diff --git a/cibuildwheel/resources/constraints-python37.txt b/cibuildwheel/resources/constraints-python37.txt index 94601229..a675ef13 100644 --- a/cibuildwheel/resources/constraints-python37.txt +++ b/cibuildwheel/resources/constraints-python37.txt @@ -21,17 +21,15 @@ packaging==24.0 pip==24.0 platformdirs==4.0.0 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build tomli==2.0.1 - # via - # build - # pyproject-hooks + # via build typing-extensions==4.7.1 # via # delocate # importlib-metadata # platformdirs -virtualenv==20.25.3 +virtualenv==20.26.1 zipp==3.15.0 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index 1bdd7a27..b2ecb397 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -6,7 +6,7 @@ build==1.2.1 delocate==0.11.0 distlib==0.3.8 # via virtualenv -filelock==3.13.4 +filelock==3.14.0 # via virtualenv importlib-metadata==7.1.0 # via build @@ -17,16 +17,14 @@ packaging==24.0 # build # delocate pip==24.0 -platformdirs==4.2.0 +platformdirs==4.2.1 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build tomli==2.0.1 - # via - # build - # pyproject-hooks + # via build typing-extensions==4.11.0 # via delocate -virtualenv==20.25.3 +virtualenv==20.26.1 zipp==3.18.1 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index 1bdd7a27..b2ecb397 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -6,7 +6,7 @@ build==1.2.1 delocate==0.11.0 distlib==0.3.8 # via virtualenv -filelock==3.13.4 +filelock==3.14.0 # via virtualenv importlib-metadata==7.1.0 # via build @@ -17,16 +17,14 @@ packaging==24.0 # build # delocate pip==24.0 -platformdirs==4.2.0 +platformdirs==4.2.1 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build tomli==2.0.1 - # via - # build - # pyproject-hooks + # via build typing-extensions==4.11.0 # via delocate -virtualenv==20.25.3 +virtualenv==20.26.1 zipp==3.18.1 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index cbcc429f..f9325ba0 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -6,7 +6,7 @@ build==1.2.1 delocate==0.11.0 distlib==0.3.8 # via virtualenv -filelock==3.13.4 +filelock==3.14.0 # via virtualenv macholib==1.16.3 # via delocate @@ -15,10 +15,10 @@ packaging==24.0 # build # delocate pip==24.0 -platformdirs==4.2.0 +platformdirs==4.2.1 # via virtualenv -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build typing-extensions==4.11.0 # via delocate -virtualenv==20.25.3 +virtualenv==20.26.1 diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 44523c74..afccc87d 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,54 +1,54 @@ [x86_64] -manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-14-979f9bc +manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-04-21-6ae659e -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-04-21-6ae659e -musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024-04-21-6ae659e +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-04-29-07d05a0 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-04-29-07d05a0 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024-04-29-07d05a0 [i686] -manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-14-979f9bc +manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024-04-21-6ae659e -musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024-04-21-6ae659e +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024-04-29-07d05a0 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024-04-29-07d05a0 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-04-21-6ae659e +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-04-29-07d05a0 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-04-21-6ae659e -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-04-21-6ae659e -musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024-04-21-6ae659e +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-04-29-07d05a0 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-04-29-07d05a0 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024-04-29-07d05a0 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024-04-21-6ae659e -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-04-21-6ae659e -musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024-04-21-6ae659e +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024-04-29-07d05a0 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-04-29-07d05a0 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024-04-29-07d05a0 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024-04-21-6ae659e -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-04-21-6ae659e -musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024-04-21-6ae659e +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024-04-29-07d05a0 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-04-29-07d05a0 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024-04-29-07d05a0 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-04-21-6ae659e +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-04-29-07d05a0 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-04-21-6ae659e +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-04-29-07d05a0 diff --git a/docs/working-examples.md b/docs/working-examples.md index 0994da65..6460c605 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -74,8 +74,8 @@ title: Working examples | [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS | | [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | | [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | -| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub | +| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. | | [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library | | [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system | @@ -101,8 +101,8 @@ title: Working examples | [Arbor][] | ![github icon][] | ![apple icon][] ![linux icon][] | Arbor is a multi-compartment neuron simulation library; compatible with next-generation accelerators; best-practices applied to research software; focused on community-driven development. Includes a [small script](https://github.com/arbor-sim/arbor/blob/master/scripts/patchwheel.py) patching `rpath` in bundled libraries. | | [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 | | [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. | -| [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. | | [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. | +| [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. | | [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions | | [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. | | [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy | @@ -111,8 +111,8 @@ title: Working examples | [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. | | [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. | | [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. | -| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. | | [aalink][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Async Python interface for Ableton Link. | +| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. | | [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies | | [werpy][] | ![github icon][] | ![windows icon][] ![linux icon][] ![apple icon][] | An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER). | | [pybind11 cross build example][] | ![github icon][] ![gitlab icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Same as pybind11 cmake_example but used to demo Linux ARM + Windows + macOS builds on GitLab | @@ -183,8 +183,8 @@ title: Working examples [Rtree]: https://github.com/Toblerity/rtree [pybind11 cmake_example]: https://github.com/pybind/cmake_example [KDEpy]: https://github.com/tommyod/KDEpy -[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [dd-trace-py]: https://github.com/DataDog/dd-trace-py +[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [tgcalls]: https://github.com/MarshalX/tgcalls [python-snappy]: https://github.com/andrix/python-snappy [pybind11 python_example]: https://github.com/pybind/python_example @@ -210,8 +210,8 @@ title: Working examples [Arbor]: https://github.com/arbor-sim/arbor [pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example [polaroid]: https://github.com/daggy1234/polaroid -[etebase-py]: https://github.com/etesync/etebase-py [clang-format]: https://github.com/ssciwr/clang-format-wheel +[etebase-py]: https://github.com/etesync/etebase-py [cf-units]: https://github.com/SciTools/cf-units [ninja]: https://github.com/scikit-build/ninja-python-distributions [numpythia]: https://github.com/scikit-hep/numpythia @@ -220,8 +220,8 @@ title: Working examples [GSD]: https://github.com/glotzerlab/gsd [SiPM]: https://github.com/EdoPro98/SimSiPM [CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib -[xmlstarlet]: https://github.com/dimitern/xmlstarlet [aalink]: https://github.com/artfwo/aalink +[xmlstarlet]: https://github.com/dimitern/xmlstarlet [pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext [werpy]: https://github.com/analyticsinmotion/werpy [pybind11 cross build example]: https://github.com/wbarnha/pybind_cmake_example_crossbuild