mirror of
https://github.com/pybind/pybind11.git
synced 2026-03-14 20:27:47 +00:00
* Fix ambiguous `str(handle)` constructor for object-derived types Templatize `str(handle h)` with SFINAE to exclude types derived from `object`, resolving ambiguity with `str(const object&)` when calling `py::str()` on types like `kwargs`, `dict`, etc. The template now only accepts `handle` or `PyObject*`, while all `object`-derived types use the `str(const object&)` overload. * fix(tests): CIBW test fixes from b-pass→vectorcall branch - Install multiple-interpreter test modules into wheel (CMakeLists.txt) The mod_per_interpreter_gil, mod_shared_interpreter_gil, and mod_per_interpreter_gil_with_singleton modules were being built but not installed into the wheel when using scikit-build-core. - Pin numpy 2.4.0 for Python 3.14 CI tests (requirements.txt) NumPy 2.4.0 is the first version with official Python 3.14 wheels. - Add IOS platform constant to tests/env.py - Skip subinterpreter tests on iOS (test_multiple_interpreters.py) Subinterpreters are not supported in the iOS simulator environment. - Enable pytest timeout of 120s for CIBW tests (pyproject.toml) Provides a safety net to catch hanging tests before CI job timeout. - Disable pytest-timeout for Pyodide (no signal.setitimer) Pyodide runs in WebAssembly without POSIX signals. - Add -v flag for verbose pytest output in CIBW tests
41 lines
1.2 KiB
TOML
41 lines
1.2 KiB
TOML
# Warning: this is currently used to test cross-compilation, and is not a general
|
|
# out-of-tree builder for the tests (yet). Specifically, wheels can't be built from
|
|
# SDists.
|
|
|
|
[build-system]
|
|
requires = ["scikit-build-core"]
|
|
build-backend = "scikit_build_core.build"
|
|
|
|
[project]
|
|
name = "pybind11_tests"
|
|
version = "0.0.1"
|
|
dependencies = ["pytest", "pytest-timeout"]
|
|
|
|
|
|
[dependency-groups]
|
|
numpy = ["numpy"]
|
|
scipy = ["scipy"]
|
|
|
|
|
|
[tool.scikit-build]
|
|
build.verbose = true
|
|
logging.level = "INFO"
|
|
|
|
[tool.scikit-build.cmake.define]
|
|
PYBIND11_FINDPYTHON = true
|
|
|
|
|
|
[tool.cibuildwheel]
|
|
test-sources = ["tests", "pyproject.toml"]
|
|
test-command = "python -m pytest -v -o timeout=120 -p no:cacheprovider tests"
|
|
# Pyodide doesn't have signal.setitimer, so pytest-timeout can't work with timeout > 0
|
|
pyodide.test-command = "python -m pytest -v -o timeout=0 -p no:cacheprovider tests"
|
|
environment.PIP_ONLY_BINARY = "numpy"
|
|
environment.PIP_PREFER_BINARY = "1"
|
|
|
|
android.environment.ANDROID_API_LEVEL = "24" # Needed to include libc++ in the wheel.
|
|
pyodide.test-groups = ["numpy", "scipy"]
|
|
ios.test-groups = ["numpy"]
|
|
ios.xbuild-tools = ["cmake", "ninja"]
|
|
ios.environment.PIP_EXTRA_INDEX_URL = "https://pypi.anaconda.org/beeware/simple"
|