pybind11/tests
Ralf W. Grosse-Kunstleve 0d44d720cb
Make stl.h list|set|map_caster more user friendly. (#4686)
* Add `test_pass_std_vector_int()`, `test_pass_std_set_int()` in test_stl

* Change `list_caster` to also accept generator objects (`PyGen_Check(src.ptr()`).

Note for completeness: This is a more conservative change than https://github.com/google/pywrapcc/pull/30042

* Drop in (currently unpublished) PyCLIF code, use in `list_caster`, adjust tests.

* Use `PyObjectTypeIsConvertibleToStdSet()` in `set_caster`, adjust tests.

* Use `PyObjectTypeIsConvertibleToStdMap()` in `map_caster`, add tests.

* Simplify `list_caster` `load()` implementation, push str/bytes check into `PyObjectTypeIsConvertibleToStdVector()`.

* clang-tidy cleanup with a few extra `(... != 0)` to be more consistent.

* Also use `PyObjectTypeIsConvertibleToStdVector()` in `array_caster`.

* Update comment pointing to clif/python/runtime.cc (code is unchanged).

* Comprehensive test coverage, enhanced set_caster load implementation.

* Resolve clang-tidy eror.

* Add a long C++ comment explaining what led to the `PyObjectTypeIsConvertibleTo*()` implementations.

* Minor function name change in test.

* strcmp -> std::strcmp (thanks @Skylion007 for catching this)

* Add `PyCallable_Check(items)` in `PyObjectTypeIsConvertibleToStdMap()`

* Resolve clang-tidy error

* Use `PyMapping_Items()` instead of `src.attr("items")()`, to be internally consistent with `PyMapping_Check()`

* Update link to PyCLIF sources.

* Fix typo (thanks @wangxf123456 for catching this)

* Add `test_pass_std_vector_int()`, `test_pass_std_set_int()` in test_stl

* Change `list_caster` to also accept generator objects (`PyGen_Check(src.ptr()`).

Note for completeness: This is a more conservative change than https://github.com/google/pywrapcc/pull/30042

* Drop in (currently unpublished) PyCLIF code, use in `list_caster`, adjust tests.

* Use `PyObjectTypeIsConvertibleToStdSet()` in `set_caster`, adjust tests.

* Use `PyObjectTypeIsConvertibleToStdMap()` in `map_caster`, add tests.

* Simplify `list_caster` `load()` implementation, push str/bytes check into `PyObjectTypeIsConvertibleToStdVector()`.

* clang-tidy cleanup with a few extra `(... != 0)` to be more consistent.

* Also use `PyObjectTypeIsConvertibleToStdVector()` in `array_caster`.

* Update comment pointing to clif/python/runtime.cc (code is unchanged).

* Comprehensive test coverage, enhanced set_caster load implementation.

* Resolve clang-tidy eror.

* Add a long C++ comment explaining what led to the `PyObjectTypeIsConvertibleTo*()` implementations.

* Minor function name change in test.

* strcmp -> std::strcmp (thanks @Skylion007 for catching this)

* Add `PyCallable_Check(items)` in `PyObjectTypeIsConvertibleToStdMap()`

* Resolve clang-tidy error

* Use `PyMapping_Items()` instead of `src.attr("items")()`, to be internally consistent with `PyMapping_Check()`

* Update link to PyCLIF sources.

* Fix typo (thanks @wangxf123456 for catching this)

* Fix typo discovered by new version of codespell.
2024-08-13 11:42:51 -07:00
..
extra_python_package Small cleanup/refactoring in support of PR #5213 (#5251) 2024-07-18 17:34:06 -07:00
extra_setuptools feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_cmake_build feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_embed feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
CMakeLists.txt Add type_caster_std_function_specializations feature. (#4597) 2024-08-09 13:28:12 -07:00
conftest.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
constructor_stats.h clang-tidy upgrade (to version 18) (#5272) 2024-07-29 11:10:03 -07:00
cross_module_gil_utils.cpp fix: support free-threaded CPython with GIL disabled (#5148) 2024-06-18 13:54:38 -07:00
cross_module_interleaved_error_already_set.cpp fix: support free-threaded CPython with GIL disabled (#5148) 2024-06-18 13:54:38 -07:00
eigen_tensor_avoid_stl_array.cpp fix: support free-threaded CPython with GIL disabled (#5148) 2024-06-18 13:54:38 -07:00
env.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
local_bindings.h Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
object.h Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
pybind11_cross_module_tests.cpp fix: support free-threaded CPython with GIL disabled (#5148) 2024-06-18 13:54:38 -07:00
pybind11_tests.cpp fix: support free-threaded CPython with GIL disabled (#5148) 2024-06-18 13:54:38 -07:00
pybind11_tests.h fix: use std::addressof in type_caster_base.h (#5189) 2024-06-24 08:59:55 -07:00
pyproject.toml fix(cmake): add required emscripten flags (#5298) 2024-08-12 16:51:48 -04:00
pytest.ini chore: some cleanup (#5137) 2024-05-24 12:26:40 -04:00
requirements.txt feat: remove Python 3.7 support (#5191) 2024-07-30 09:18:35 -07:00
test_async.cpp Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
test_async.py tests: run on pyodide (#4745) 2024-07-18 14:50:38 -04:00
test_buffers.cpp Add format_descriptor<> & npy_format_descriptor<> PyObject * specializations. (#4674) 2023-05-23 10:49:32 -07:00
test_buffers.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_builtin_casters.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_builtin_casters.py feat: remove Python 3.7 support (#5191) 2024-07-30 09:18:35 -07:00
test_call_policies.cpp feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_call_policies.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_callbacks.cpp Fix functional.h bug + introduce test to verify that it is fixed (#4254) 2022-11-02 11:32:53 -07:00
test_callbacks.py tests: run on pyodide (#4745) 2024-07-18 14:50:38 -04:00
test_chrono.cpp Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
test_chrono.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_class.cpp chore(deps): update pre-commit hooks (#5123) 2024-05-10 17:03:51 -04:00
test_class.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_const_name.cpp Dropping MSVC 2015 (#3722) 2022-02-14 11:36:22 -08:00
test_const_name.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_constants_and_functions.cpp tests: hide warning on clang (#5069) 2024-03-26 13:57:05 -04:00
test_constants_and_functions.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_copy_move.cpp fix: use std::addressof in type_caster_base.h (#5189) 2024-06-24 08:59:55 -07:00
test_copy_move.py fix: use std::addressof in type_caster_base.h (#5189) 2024-06-24 08:59:55 -07:00
test_custom_type_casters.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_custom_type_casters.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_custom_type_setup.cpp Add custom_type_setup attribute (#3287) 2021-09-24 12:08:22 -07:00
test_custom_type_setup.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_docstring_options.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_docstring_options.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_eigen_matrix.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_eigen_matrix.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_eigen_tensor.cpp Fix ODR violations in our Eigen Tensor tests (#4412) 2022-12-20 05:34:00 -08:00
test_eigen_tensor.inl clang-tidy upgrade (to version 18) (#5272) 2024-07-29 11:10:03 -07:00
test_eigen_tensor.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_enum.cpp Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
test_enum.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_eval_call.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_eval.cpp Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
test_eval.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_exceptions.cpp Bug fixes: Add missing handle_type_name specializations. (#5073) 2024-03-27 12:39:05 -07:00
test_exceptions.h Add py::set_error(), use in updated py::exception<> documentation (#4772) 2023-08-07 20:48:20 -07:00
test_exceptions.py feat: remove Python 3.7 support (#5191) 2024-07-30 09:18:35 -07:00
test_factory_constructors.cpp Dropping MSVC 2015 (#3722) 2022-02-14 11:36:22 -08:00
test_factory_constructors.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_gil_scoped.cpp Add PYBIND11_SIMPLE_GIL_MANAGEMENT option (cmake, C++ define) (#4216) 2022-10-30 08:57:23 -07:00
test_gil_scoped.py tests: run on pyodide (#4745) 2024-07-18 14:50:38 -04:00
test_iostream.cpp Dropping MSVC 2015 (#3722) 2022-02-14 11:36:22 -08:00
test_iostream.py tests: run on pyodide (#4745) 2024-07-18 14:50:38 -04:00
test_kwargs_and_defaults.cpp fix: Python 3.13t with GIL (#5139) 2024-05-28 09:07:59 -04:00
test_kwargs_and_defaults.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_local_bindings.cpp Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
test_local_bindings.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_methods_and_attributes.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_methods_and_attributes.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_modules.cpp clang-tidy upgrade (to version 18) (#5272) 2024-07-29 11:10:03 -07:00
test_modules.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_multiple_inheritance.cpp Fully-automatic clang-format with include reordering (#3713) 2022-02-10 12:17:07 -08:00
test_multiple_inheritance.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_numpy_array.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_numpy_array.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_numpy_dtypes.cpp clang-tidy upgrade (to version 18) (#5272) 2024-07-29 11:10:03 -07:00
test_numpy_dtypes.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_numpy_vectorize.cpp fix: avoid catch (...) for expected import numpy failures (#3974) 2022-05-26 11:07:40 -04:00
test_numpy_vectorize.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_opaque_types.cpp clang-tidy upgrade (to version 18) (#5272) 2024-07-29 11:10:03 -07:00
test_opaque_types.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_operator_overloading.cpp Introduce a new style of warning suppression based on push/pop (#4285) 2022-11-28 07:39:38 -08:00
test_operator_overloading.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_pickling.cpp Test pickling a simple callable (does not work). (#3906) 2022-05-02 12:39:36 -07:00
test_pickling.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_python_multiple_inheritance.cpp Fix a long-standing bug in the handling of Python multiple inheritance (#4762) 2023-11-08 12:44:04 -08:00
test_python_multiple_inheritance.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_pytypes.cpp fix: add guard for GCC <10.3 on C++20 (#5205) 2024-06-27 22:20:28 -07:00
test_pytypes.py fix: add guard for GCC <10.3 on C++20 (#5205) 2024-06-27 22:20:28 -07:00
test_sequences_and_iterators.cpp feature: Support move-only iterators in py::make_*iterator (#4834) 2023-09-07 05:57:39 -07:00
test_sequences_and_iterators.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_smart_ptr.cpp Fix Clazy warnings (#4988) 2023-12-29 21:59:47 -08:00
test_smart_ptr.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_stl_binders.cpp chore(deps): update pre-commit hooks (#5084) 2024-04-02 11:14:08 -04:00
test_stl_binders.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_stl.cpp Make stl.h list|set|map_caster more user friendly. (#4686) 2024-08-13 11:42:51 -07:00
test_stl.py Make stl.h list|set|map_caster more user friendly. (#4686) 2024-08-13 11:42:51 -07:00
test_tagbased_polymorphic.cpp clang-tidy upgrade (to version 18) (#5272) 2024-07-29 11:10:03 -07:00
test_tagbased_polymorphic.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_thread.cpp chore(deps): update pre-commit hooks (#5123) 2024-05-10 17:03:51 -04:00
test_thread.py tests: run on pyodide (#4745) 2024-07-18 14:50:38 -04:00
test_type_caster_pyobject_ptr.cpp Fix refcount bug involving trampoline functions with PyObject * return type. (#5156) 2024-06-11 14:00:52 -07:00
test_type_caster_pyobject_ptr.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_type_caster_std_function_specializations.cpp Add type_caster_std_function_specializations feature. (#4597) 2024-08-09 13:28:12 -07:00
test_type_caster_std_function_specializations.py Add type_caster_std_function_specializations feature. (#4597) 2024-08-09 13:28:12 -07:00
test_union.cpp Fix assertion failure for unions (#1685) (#1709) 2019-06-11 23:28:58 +02:00
test_union.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_unnamed_namespace_a.cpp Use std::hash<std::type_index>, std::equal_to<std::type_index> everywhere **except when libc++ is in use** (#4319) 2023-04-25 14:03:24 -07:00
test_unnamed_namespace_a.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_unnamed_namespace_b.cpp Use std::hash<std::type_index>, std::equal_to<std::type_index> everywhere **except when libc++ is in use** (#4319) 2023-04-25 14:03:24 -07:00
test_unnamed_namespace_b.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_vector_unique_ptr_member.cpp Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4641) 2023-04-27 07:24:48 -07:00
test_vector_unique_ptr_member.py feat: remove Python 3.6 support (#5177) 2024-06-22 00:55:00 -04:00
test_virtual_functions.cpp chore(deps): update pre-commit hooks (#4386) 2022-12-06 10:10:48 -08:00
test_virtual_functions.py tests: run on pyodide (#4745) 2024-07-18 14:50:38 -04:00
valgrind-numpy-scipy.supp docs: fix various typos (#3075) 2021-07-04 19:58:35 -04:00
valgrind-python.supp chore: get PyPy 3.7 wheels using NumPy 1.20 (#2837) 2021-01-31 17:29:09 -05:00