* Add return_as_bytes policy
* Fix format
* Fix test failures
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix std::variant
* Resolve comments
* Note this policy experimental
* Add tests for `return_as_bytes` with `def_property`.
* Change comment for the new return_as_bytes enum to note that the policy is not available on master.
* Applying pr3838_sh.patch (exactly as used Google-internally since 2022-03-31).
* Add `case return_as_bytes` to `switch`es in detail/type_caster_base.h and eigen.h
Based on systematic review under https://github.com/pybind/pybind11/pull/3838#issuecomment-1094390333
* Add missing break (clang-tidy).
* More clang-tidy fixes (this time around clang-tidy was run interactively to pre-empt repeat trips through the CI).
* Underscore prefix: _return_as_bytes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
* ci: drop dead windows CI jobs
* chore: touch up pre-commit
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* Update configure.yml
* Update configure.yml
* Cleanup cast_safe<void> specialization
Replace explicit specialization of cast_safe<void> with SFINAE.
It's better for SFINAE cases to cover all type-sets rather than mixing SFINAE and explicit specialization.
Extracted from #3674
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update cast.h
Use detail::none_of<> as suggested
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update cast.h
Reorder:
If TEMP_REF
If VOID
if (!VOID && !TEMP_REF)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Make slice constructor consistent
* Add more missing std::move for ref steals
* Add missing perfect forwarding for arg_v ctor
* Add missing move in arg_v constructor
* Revert "Add missing move in arg_v constructor"
This reverts commit 126fc7c524.
* Add another missing move in cast.h
* Optimize object move ctor
* Don't do useless move
* Make move ctor same as nb
* Make obj move ctor same as nb
* Revert changes which break MSVC
* feature: support compilers that use std::experimental::filesystem such as gcc7
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* only use this feature if cpp17
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more specific namespace alias + style
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* move to pybind11 namespace
* no namespace alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: Lonnie Souder II <lonnie.souder@g6labs.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add type_caster<std::monostate> for std::variant
Add type_caster<std::monostate>, allowing std::variant<std::monostate, ...>
* Add variant<std::monostate, ...> test methods
* Add std::monostate tests
* Update test_stl.py
Remove erroneous extra tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update test fn name
* And update the doc() test
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* PYBIND11_OBJECT_CVT should use namespace for error_already_set()
This change makes the macro usable outside of pybind11 namespace.
* added test for use of PYBIND11_OBJECT_CVT for classes in external to pybind11 namespaces
* Extended test_pytypes.cpp and test_pytest.py
The added test defines a dummy function that takes a custom-defined class external::float_
that uses PYBIND11_OBJECT_CVT
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fixed issues pointed out by CI
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fixed memory leak in default constructor
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fixes issue
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix lint error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix flake8
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix test
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix clang tidy
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix again
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix test
* Add comments
* Try fix Valgrind
* Resolve comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* PYBIND11_OBJECT_CVT should use namespace for error_already_set()
This change makes the macro usable outside of pybind11 namespace.
* added test for use of PYBIND11_OBJECT_CVT for classes in external to pybind11 namespaces
* Extended test_pytypes.cpp and test_pytest.py
The added test defines a dummy function that takes a custom-defined class external::float_
that uses PYBIND11_OBJECT_CVT
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fixed issues pointed out by CI
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fixed memory leak in default constructor
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Reproducer for https://github.com/pybind/pybind11/issues/3788
Expected to build & run as-is. Uncommenting reproduces the infinite recursion.
* Moving try_as_void_ptr_capsule() to the end of load_impl()
* Moving new test into the existing test_class_sh_void_ptr_capsule
* Experiment
* Remove comments and simplify the test cases.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Test out Python 3.11 migration
* Clean up a bit
* Remove todo
* Test workaround
* Fix potential bug uncovered in 3.11
* Try to fix it more
* last ditch fix
* Revert. Tp-traverse isn't the problem
* Test workaround
* Try this hack
* Revert MRO changes
* Use f_back properly
* Qualify auto
* Update include/pybind11/pybind11.h
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Simplify code slightly
* Ensure co_varnames decref if dict_getitem throws
* Eager decref f_code
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Use sysconfig in Python >= 3.10
Rely on sysconfig for installation paths for Python >= 3.10. distutils
has been deprecated and will be removed.
Fixes: #3677
* Explicitly select the posix_prefix scheme for platinclude on Debian
Debian's default scheme is posix_local, for installing locally-built
packages to /usr/local/. We want to find the Python headers in /usr/,
so search posix_prefix.