Steve R. Sun
c774127a8b
Merge branch 'pybind:master' into master
2022-03-26 14:55:35 +08:00
Aaron Gokaslan
3a183d4b58
fix: improve str exceptions and consistency with python ( #3826 )
...
* Improve str exceptions
* Revert macro change just in case
* Make clang-tidy happy
* Fix one more clang-tidy issue
* Refactor duplicate method
2022-03-25 16:01:34 -04:00
Henry Schreiner
7742be02d9
Revert "ci: test pypy 3.9" ( #3828 )
...
* Revert "ci: test pypy 3.9 (#3789 )"
This reverts commit 461937d3e5
.
* Update ci.yml
2022-03-25 14:54:43 -04:00
Henry Schreiner
461937d3e5
ci: test pypy 3.9 ( #3789 )
...
* ci: test pypy 3.9
* ci: try a use of FindPython with PyPy
2022-03-25 12:34:32 -04:00
Aaron Gokaslan
146695a904
fix: better exception and error handling for capsules ( #3825 )
...
* Make capsule errors better match python
2022-03-25 10:55:13 -04:00
Steve R. Sun
222ec70945
Merge branch 'pybind:master' into master
2022-03-25 07:19:15 +08:00
Aaron Gokaslan
47079b9e7b
(perf): Add missing move in sp matrix caster and microopt char concats ( #3823 )
...
* Add missing move in sp matrix caster and microopt char concat
* Remove useless move
* Add a couple more std::move
* Missed one char
* Improve error_string
* Ensure no temp reallocs in errorString concat
* Remove useless move
2022-03-24 12:57:37 -04:00
Steve R. Sun
b040f4bc9f
Merge branch 'pybind:master' into master
2022-03-23 08:04:13 +08:00
Laramie Leavitt
b22ee64c73
Add type_caster<std::monostate> ( #3818 )
...
* 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>
2022-03-21 22:58:04 -07:00
Steve R. Sun
9387f3ef54
Merge branch 'pybind:master' into master
2022-03-22 08:51:03 +08:00
pre-commit-ci[bot]
67089cd3e6
[pre-commit.ci] pre-commit autoupdate ( #3817 )
...
updates:
- [github.com/pre-commit/mirrors-mypy: v0.940 → v0.941](https://github.com/pre-commit/mirrors-mypy/compare/v0.940...v0.941 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-03-21 20:47:02 -04:00
Steve R. Sun
ed8d11d3c9
Merge branch 'pybind:master' into master
2022-03-19 08:16:09 +08:00
Laramie Leavitt
b3a43d137c
Use rvalue reference for std::variant cast_op<T> ( #3811 )
...
Nearly every call site of cast_op<T> uses an r-value reference.
Except stl.h variant_caster::load_alternative for handling std::variant.
Fix that.
2022-03-18 11:10:31 -07:00
Steve R. Sun
bdc66adad4
Merge branch 'pybind:master' into master
2022-03-18 07:57:07 +08:00
JonTriebenbach
8b1944d390
Remove idioms in code comments ( #3809 )
2022-03-17 12:51:16 -07:00
Axel Huebl
a7e7a6e846
Docs: No Strip in Debug ( #3779 )
...
The docs were not 100% the same as we advertise with our
tooling function: most users do not want to strip symbols
in Debug builds.
2022-03-17 11:21:28 -07:00
Steve R. Sun
8a4259bbd2
Merge branch 'pybind:master' into master
2022-03-16 07:49:32 +08:00
pre-commit-ci[bot]
f8a532a7de
[pre-commit.ci] pre-commit autoupdate ( #3800 )
...
updates:
- [github.com/asottile/pyupgrade: v2.31.0 → v2.31.1](https://github.com/asottile/pyupgrade/compare/v2.31.0...v2.31.1 )
- [github.com/sirosen/texthooks: 0.2.2 → 0.3.1](https://github.com/sirosen/texthooks/compare/0.2.2...0.3.1 )
- [github.com/hadialqattan/pycln: v1.2.4 → v1.2.5](https://github.com/hadialqattan/pycln/compare/v1.2.4...v1.2.5 )
- [github.com/pre-commit/mirrors-mypy: v0.931 → v0.940](https://github.com/pre-commit/mirrors-mypy/compare/v0.931...v0.940 )
- [github.com/mgedmin/check-manifest: 0.47 → 0.48](https://github.com/mgedmin/check-manifest/compare/0.47...0.48 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-03-15 10:18:12 -04:00
Steve R. Sun
748a204c73
Merge branch 'pybind:master' into master
2022-03-12 07:40:47 +08:00
Oleksandr Pavlyk
91a6e129d9
PYBIND11_OBJECT_CVT should use namespace for error_already_set() ( #3797 )
...
* 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>
2022-03-11 12:18:25 -08:00
Steve R. Sun
131eda52e4
Merge branch 'pybind:master' into master
2022-03-11 09:52:56 +08:00
Axel Huebl
d75b353694
CI: MSVC Debug Build ( #3784 )
2022-03-10 10:31:16 -08:00
Steve R. Sun
842801f7cd
Merge branch 'pybind:master' into master
2022-03-03 07:41:19 +08:00
Aaron Gokaslan
2dd5254494
fix: missing move in eval.h ( #3775 )
2022-03-02 15:25:43 -05:00
Aaron Gokaslan
af08a95b56
fix: potential memory leak in pypy ( #3774 )
2022-03-02 14:14:52 -05:00
Aaron Gokaslan
42a8e31253
Improve Python 3.11 support ( #3694 )
...
* 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>
2022-03-02 13:17:52 -05:00
Steve R. Sun
d6d28dc860
Merge branch 'pybind:master' into master
2022-03-02 07:52:29 +08:00
Stefano Rivera
465b2e0bd8
Use sysconfig in Python >= 3.10 ( #3764 )
...
* 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.
2022-03-01 13:47:10 -05:00
Henry Schreiner
5f9b090a91
ci: fix PyPy ( #3768 )
...
* chore: minor fixes for newer PyPys
* ci: fix issue with PyPy
2022-03-01 12:42:52 -05:00
pre-commit-ci[bot]
061c617707
[pre-commit.ci] pre-commit autoupdate ( #3765 )
...
updates:
- [github.com/Lucas-C/pre-commit-hooks: v1.1.12 → v1.1.13](https://github.com/Lucas-C/pre-commit-hooks/compare/v1.1.12...v1.1.13 )
- [github.com/hadialqattan/pycln: v1.2.0 → v1.2.4](https://github.com/hadialqattan/pycln/compare/v1.2.0...v1.2.4 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-02-28 21:35:43 -05:00
Steve R. Sun
75f8bd1853
Merge branch 'pybind:master' into master
2022-02-26 07:48:57 +08:00
Eric Cousineau
f495dfc433
cast: Qualify symbol usage in PYBIND11_TYPE_CASTER ( #3758 )
...
* cast: Qualify symbol usage in PYBIND11_TYPE_CASTER
Permits using macro outside of pybind11::detail
* fixup! review
2022-02-25 13:25:23 -08:00
Steve R. Sun
e8821b0aac
Merge branch 'pybind:master' into master
2022-02-24 07:47:41 +08:00
kururu002
da15bb206c
Cast bytearray to string ( #3707 )
...
* Add bytearray to string cast, testcase and rename load_bytes to load_raw
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New bytearray test case and convert failure to pybind11_fail
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix merge comments
* Actually fix merge comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Assert early if AsString fails
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Porras Huang <pohuang@jackx-vm-1.nvidia.com>
2022-02-23 18:21:03 -05:00
pre-commit-ci[bot]
91f597be5a
[pre-commit.ci] pre-commit autoupdate ( #3754 )
...
* [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/hadialqattan/pycln: v1.1.0 → v1.2.0](https://github.com/hadialqattan/pycln/compare/v1.1.0...v1.2.0 )
- [github.com/pre-commit/mirrors-clang-format: v13.0.0 → v13.0.1](https://github.com/pre-commit/mirrors-clang-format/compare/v13.0.0...v13.0.1 )
* Update .pre-commit-config.yaml
* ci: specify which windows image to use
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2022-02-23 17:56:41 -05:00
Steve R. Sun
e7d7fc5760
Merge branch 'pybind:master' into master
2022-02-21 07:27:15 +08:00
StarQTius
9aa676d38d
fix: clear local internals after finalizing interpreter #2101 ( #3744 )
...
* Clear local internals after finalizing interpreter
* Add descriptive 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>
2022-02-20 08:00:29 -08:00
Steve R. Sun
8a3e11da44
Merge branch 'pybind:master' into master
2022-02-19 07:47:39 +08:00
Peter Hawkins
44596bc4ee
Fix exception handling when pybind11::weakref() fails. ( #3739 )
...
* Clear Python error state if pybind11::weakref() fails.
The weakref() constructor calls pybind11_fail() without clearing any
Python interpreter error state. If a client catches the C++ exception
thrown by pybind11_fail(), the Python interpreter will be left in an
error state.
* Add test case for failing to create weakref
* Add Debug asserts for pybind11 fail
* Make error handling more pythonic
* Does this fix PyPy?
* Adapt test to PyPy differences
* Simplify test to remove redundancy
Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2022-02-18 14:12:00 -05:00
Steve R. Sun
f1f5efd658
Merge branch 'pybind:master' into master
2022-02-17 07:34:09 +08:00
Ralf W. Grosse-Kunstleve
009ffc3362
MSVC C++20 test_eigen ( #3741 )
...
* Removing C++20 condition for MSVC is_template_base_of decltype workaround.
* `-DDOWNLOAD_EIGEN=ON` for MSVC 2022 C++20
* `-DDOWNLOAD_EIGEN=ON` for MSVC 2019 C++20
* `-DPYBIND11_WERROR=OFF` for MSVC C++20 (2019, 2020)
* Restoring `defined(PYBIND11_CPP20)` in common.h
* pragma warning(disable : 5054) in eigen.h
* Reverting `-DPYBIND11_WERROR=OFF` changes.
2022-02-16 07:07:53 -08:00
Steve R. Sun
aa4a9ff4d2
Merge branch 'pybind:master' into master
2022-02-16 07:18:54 +08:00
Henry Schreiner
4b42c37191
style: pylint ( #3720 )
...
* fix: add pylint and fix issue
* chore: add pylint to pre-commit
* fix: local variable warning surfaced mistake in intree
2022-02-15 17:48:33 -05:00
Ralf W. Grosse-Kunstleve
c14170a787
Removing // clang-format off
- on
directives from test_pickling.cpp ( #3738 )
2022-02-15 11:51:17 -08:00
pre-commit-ci[bot]
0986af6182
[pre-commit.ci] pre-commit autoupdate ( #3672 )
...
updates:
- [github.com/Lucas-C/pre-commit-hooks: v1.1.11 → v1.1.12](https://github.com/Lucas-C/pre-commit-hooks/compare/v1.1.11...v1.1.12 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-02-15 11:27:00 -05:00
Steve R. Sun
5719074476
Merge branch 'pybind:master' into master
2022-02-15 20:40:06 +08:00
Henry Schreiner
a25d40c7bc
tests: use 'build' in tests instead of running setup.py ( #3734 )
...
Co-authored-by: Anderson Bravalheri <andersonbravalheri@gmail.com>
Co-authored-by: Anderson Bravalheri <andersonbravalheri@gmail.com>
2022-02-15 00:32:58 -05:00
pre-commit-ci[bot]
2f8dbb3b06
[pre-commit.ci] auto fixes from pre-commit.com hooks
...
for more information, see https://pre-commit.ci
2022-02-14 23:53:22 +00:00
Steve R. Sun
574a47091e
Merge branch 'master' into master
2022-02-15 07:52:48 +08:00
Ralf W. Grosse-Kunstleve
a97e9d8cac
Dropping MSVC 2015 ( #3722 )
...
* Changing `_MSC_VER` guard to `< 1910` (dropping MSVC 2015).
* Removing MSVC 2015 from ci.yml, and .appveyor.yml entirely.
* Bringing back .appveyor.yml from master.
* appveyor Visual Studio 2017
* 1st manual pass, builds & tests with unix_clang, before pre-commit.
* After clang-format (via pre-commit).
* Manual pass looking for "2015", builds & tests with unix_clang, before pre-commit.
* Backtracking for include/pybind11 changes in previous commit.
git checkout d07865846c
include/pybind11/attr.h include/pybind11/detail/common.h include/pybind11/functional.h
--------------------
CI #4160 errors observed:
2a26873727
https://github.com/pybind/pybind11/runs/5168332130?check_suite_focus=true
$ grep ' error C' *.txt | sed 's/2022-02-12[^ ]*//' | sed 's/^[0-9][0-9]*//' | sed 's/^.*\.txt: //' | sort | uniqD:\a\pybind11\pybind11\include\pybind11\cast.h(1364,1): error C2752: 'pybind11::detail::type_caster<Eigen::Ref<Eigen::Vector3f,0,pybind11::EigenDStride>,void>': more than one partial specialization matches the template argument list [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\cross_module_gil_utils.vcxproj]
d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\pybind11_cross_module_tests.vcxproj]
d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\test_embed\external_module.vcxproj]
D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
$ grep ': error C2737' *.txt | sed 's/^.*MSVC//' | sed 's/___.*//' | sort | uniq
_2017
$ grep ': error C2752' *.txt
3______3.8_____MSVC_2019_____x86_-DCMAKE_CXX_STANDARD=17.txt:2022-02-12T16:12:45.9921122Z D:\a\pybind11\pybind11\include\pybind11\cast.h(1364,1): error C2752: 'pybind11::detail::type_caster<Eigen::Ref<Eigen::Vector3f,0,pybind11::EigenDStride>,void>': more than one partial specialization matches the template argument list [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
$ grep ': fatal error C1001:' *.txt
10______pypy-3.8-v7.3.7_____windows-2022_____x64.txt:2022-02-12T16:12:56.3163683Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
1______3.6_____MSVC_2019_____x86.txt:2022-02-12T16:12:47.6774625Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
16______3.6_____windows-latest_____x64_-DPYBIND11_FINDPYTHON=ON.txt:2022-02-12T16:12:27.0556151Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
17______3.9_____windows-2019_____x64.txt:2022-02-12T16:12:30.3822566Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
2______3.7_____MSVC_2019_____x86.txt:2022-02-12T16:12:38.7018911Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
6______3.6_____windows-2022_____x64.txt:2022-02-12T16:12:00.4513642Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
7______3.9_____windows-2022_____x64.txt:2022-02-12T16:11:43.6306160Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
8______3.10_____windows-2022_____x64.txt:2022-02-12T16:11:49.9589644Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
9______pypy-3.7-v7.3.7_____windows-2022_____x64.txt:2022-02-12T16:11:53.7912112Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
* common.h: is_template_base_of
* Re-applying 4 changes from 2a26873727
that work universally.
* `overload_cast = {};` only for MSVC 2017 and Clang 5
* Refining condition for using is_template_base_of workaround.
* Undoing MSVC 2015 workaround in test_constants_and_functions.cpp
* CentOS7: silence_unused_warnings
* Tweaks in response to reviews.
* Adding windows-2022 C++20
* Trying another way of adding windows-2022 C++20
2022-02-14 11:36:22 -08:00