Commit Graph

2976 Commits

Author SHA1 Message Date
Aaron Gokaslan 68f8010500
chore: add err guard to capsule destructor and add a move to iostream (#3958)
* Add err guard to capsule destructor

* only uses ostream currently

* can these be noexcept

* Add back header

* fix for older compilers

* This should at least be noexcept

* Add missing move

* Apparently not noexcept for old llvm
2022-05-27 14:32:57 -04:00
Ralf W. Grosse-Kunstleve 8d14e666e3
fix: avoid `catch (...)` for expected `import numpy` failures (#3974)
* Replace import numpy catch (...) with catch (error_already_set)

* Add missing const (not sure how those got lost).
2022-05-26 11:07:40 -04:00
Ralf W. Grosse-Kunstleve 2c549eb7aa
Move `PyErr_NormalizeException()` up a few lines (#3971)
* Add error_already_set_what what tests, asserting the status quo.

* Move PyErr_NormalizeException() up a few lines.

* @pytest.mark.skipif("env.PYPY") from PR #1895 is required even for this much simpler PR

* Move PyException_SetTraceback() with PyErr_NormalizeException() as suggested by @skylion007

* Insert a std::move() as suggested by @skylion007
2022-05-25 21:44:55 -07:00
Aaron Gokaslan 2d4a20c8cb
chore: add missing moves for buffer_func and staticmethod in pybind11.h (#3969)
* Use move converting ctor when making class staticmethod

* Add missing caster move in buffer func

* fix use after move

* add back move to staticmethod

* avoid shadowing with varname
2022-05-25 12:14:07 -04:00
Maarten Baert 4624e8e164
Don't return pointers to static objects with return_value_policy::take_ownership. (#3946)
* Don't return pointers to static objects with return_value_policy::take_ownership.

This fixes -Wfree-nonheap-object warnings produced by GCC.

* Use return value policy fix instead

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2022-05-24 13:46:31 -04:00
Aaron Gokaslan c42414db86
(perf): use a rvalue cast in func_wrapper (#3966)
* (perf): use an rvalue cast in func_wrapper

* Try to clarify comment

* Fix comment typo
2022-05-23 12:26:53 -04:00
Henry Schreiner 918d4481a4
fix(cmake): support cross-compiles with classic Python (#3959)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2022-05-20 09:38:29 -04:00
Henry Schreiner 1e4bd22bdc
fix(cmake): support release and debug at the same time (#3948) 2022-05-18 23:19:33 -04:00
Ralf W. Grosse-Kunstleve 50220aeb09 Tracking ci.yml changes from master. 2022-05-17 16:39:11 -07:00
Ralf W. Grosse-Kunstleve bdf22c8ee7 Merge branch 'master' into sh_merge_master 2022-05-17 16:37:59 -07:00
Ralf W. Grosse-Kunstleve d28c3a5da7
[smart_holder] .def_readonly, .def_readwrite adaptors (continuation of PR #3581). (#3844)
* Transferred net diff from PR #3581, as-is.

* Automatic `pre-commit run --all-files` fixes. NO manual changes.

* Removing trailing `//` (originally added to manipulate clang-format), as suggested by @charlesbeattie back in Jan/Feb under PR #3581.

* Renaming `xetter_cpp_function` to `property_cpp_function` as suggested by @rainwoodman

* Fully explain the terse variable naming scheme in test_class_sh_property (as suggested by @rainwoodman)

* Also use parametrize for readonly, readwrite (as suggested by @rainwoodman)

* Apply change suggested by @skylion007 (with clang-format).
2022-05-17 16:35:43 -07:00
Aaron Gokaslan a8b3ff30f9
chore: add a couple of moves in pybind11.h (#3941)
* Add missing std::moves in enum_base methods

* Remove useless move

* Add one more std::move in print

* Further optimize print

* Some more misc optimizations
2022-05-17 11:29:49 -04:00
Henry Schreiner dff6fa0554
fix(cmake): avoid issue with NVCC + Windows (#3947) 2022-05-16 23:45:54 -04:00
Henry Schreiner 1a7b12983e
ci: fix cuda issue & MSVC spurious warning (#3950)
* ci: fix cuda issue

* ci: cuda 11.3-11.4 produce warnings -> errors

* tests: ignore unused warning for MSVC

* Update tests/CMakeLists.txt
2022-05-16 17:27:19 -04:00
Maarten Baert 72eea20afd
Fix py::cast from pytype rvalue to pytype (#3949)
* Fix py::cast from pytype rvalue to pytype

Previously, py::cast blindly assumed that the destination type was a C++
type rather than a python type when the source type was an rvalue.

* [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-05-16 13:51:01 -07:00
Ralf W. Grosse-Kunstleve 48c7be4a56 Undoing previous accidental commit. Sorry I forgot to git branch. 2022-05-16 04:31:01 -07:00
Ralf W. Grosse-Kunstleve 5621ab853a Do we have a unit test for the traceback code in error_string()? 2022-05-16 04:26:35 -07:00
pre-commit-ci[bot] ad146b2a18
[pre-commit.ci] pre-commit autoupdate (#3933)
updates:
- [github.com/asottile/pyupgrade: v2.32.0 → v2.32.1](https://github.com/asottile/pyupgrade/compare/v2.32.0...v2.32.1)
- [github.com/pre-commit/mirrors-clang-format: v14.0.1 → v14.0.3](https://github.com/pre-commit/mirrors-clang-format/compare/v14.0.1...v14.0.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-05-09 18:44:21 -04:00
Tomi Valkeinen aebdf00cd0
Fix "extra ';' outside of a function" warning (#3929)
Fix the following warning seen with clang:

include/pybind11/detail/smart_holder_poc.h:109:2: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2022-05-07 02:18:13 -07:00
Aaron Gokaslan 2e331308d3
chore: remove unused include from stl.h (#3928)
* change iostream include to ostream include
2022-05-06 16:57:39 -04:00
Ralf W. Grosse-Kunstleve 72f51e1d89 Use PYBIND11_DETAILED_ERROR_MESSAGES in smart_holder_type_casters.h (follow-on to https://github.com/pybind/pybind11/pull/3913) 2022-05-05 16:47:29 -07:00
Ralf W. Grosse-Kunstleve 0157cb4296 Tracking ci.yml changes from master. 2022-05-05 16:13:53 -07:00
Ralf W. Grosse-Kunstleve d5125eaf1e Merge branch 'master' into sh_merge_master 2022-05-05 16:12:58 -07:00
Ed Catmur 68a0b2dfd8
Add anyset & frozenset, enable copying (cast) to std::set (#3901)
* Add frozenset, and allow it cast to std::set

For the reverse direction, std::set still casts to set. This is in concordance with the behavior for sequence containers, where e.g. tuple casts to std::vector but std::vector casts to list.

Extracted from #3886.

* Rename set_base to any_set to match Python C API

since this will be part of pybind11 public API

* PR: static_cast, anyset

* Add tests for frozenset

and rename anyset methods

* Remove frozenset default ctor, add tests

Making frozenset non-default constructible means that we need to adjust pyobject_caster to not require that its value is default constructible, by initializing value to a nil handle.  This also allows writing C++ functions taking anyset, and is arguably a performance improvement, since there is no need to allocate an object that will just be replaced by load.

Add some more tests, including anyset::empty, anyset::size, set::add and set::clear.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add rationale to `pyobject_caster` default ctor

* Remove ineffectual protected: access control

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-05-05 12:09:56 -07:00
pre-commit-ci[bot] 9a16e55ad2
[pre-commit.ci] pre-commit autoupdate (#3903)
updates:
- [github.com/hadialqattan/pycln: v1.3.1 → v1.3.2](https://github.com/hadialqattan/pycln/compare/v1.3.1...v1.3.2)
- [github.com/PyCQA/pylint: v2.13.5 → v2.13.8](https://github.com/PyCQA/pylint/compare/v2.13.5...v2.13.8)
- [github.com/pre-commit/mirrors-mypy: v0.942 → v0.950](https://github.com/pre-commit/mirrors-mypy/compare/v0.942...v0.950)
2022-05-05 15:02:16 -04:00
HaarigerHarald f306012b55
fix: file extension on windows with cp36 and cp37 (#3919) 2022-05-04 13:12:33 -04:00
Aaron Gokaslan bdc7dd8c31
chore: update NVIDIA-PGI CI workflow (#3922)
* Update PGI workflow

* Remove copy paste typo

* ci: fix debian image

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2022-05-04 13:02:07 -04:00
Ralf W. Grosse-Kunstleve 82734801f2 Tracking ci.yml changes from master. 2022-05-02 12:43:22 -07:00
Ralf W. Grosse-Kunstleve 2ee1e6445d Merge branch 'master' into sh_merge_master 2022-05-02 12:41:48 -07:00
Ralf W. Grosse-Kunstleve 287e4f233d
Test pickling a simple callable (does not work). (#3906)
* Test pickling a simple callable (does not work).

Currently only documents that it does not work. Starting point for future fix.

* Use re.search to accommodate variations of the TypeError message.

* PyPy: exercise full dumps/loads cycle.

* Adding explicit "broken" comment.
2022-05-02 12:39:36 -07:00
Michael Voznesensky f0b9f755e4
Replace error printing code gated by NDEBUG with a new flag: PYBIND11_DETAILED_ERROR_MESSAGES (#3913)
* Update cast.h

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move definition to detail/common, change name, apply everywhere

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Rename debug_enabled in tests to detailed_error_messages_enabled
2022-05-02 15:30:19 -04:00
Aaron Gokaslan 75007dda72
chore: rule of 3 for strdup guard (#3905) 2022-04-26 15:49:24 -04:00
Ed Catmur 9bc2704430
Add tests for cast from tuple to sequence containers (#3900)
We already test that tuple can cast to std::vector and std::deque; add tests for std::vector<bool>, std::list and
std::valarray.

Extracted from #3886.
2022-04-24 14:39:47 -07:00
dependabot[bot] 03252067db
chore(deps): bump actions/upload-artifact from 2 to 3 (#3899)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-24 16:49:41 -04:00
dependabot[bot] be4a634c67
chore(deps): bump actions/checkout from 2 to 3 (#3896)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-24 16:49:13 -04:00
Aaron Gokaslan 82455a41fd
Minor opt to cache tuple casting (#3894) 2022-04-24 14:46:39 -04:00
dependabot[bot] 2a7cb008ac
chore(deps): bump actions/download-artifact from 2 to 3 (#3897)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-24 14:41:23 -04:00
dependabot[bot] e79293cf2f
chore(deps): bump actions/cache from 2 to 3 (#3898)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-24 14:41:09 -04:00
dependabot[bot] b58b772b46
chore(deps): bump actions/setup-python from 2 to 3 (#3895)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-24 14:40:58 -04:00
Henry Schreiner 1a8603e479
ci: dependabot major versions for official actions (#3888)
* ci: dependabot major versions for official actions

* style: use extend-select for flake8
2022-04-24 13:50:29 -04:00
pre-commit-ci[bot] e8e229fa0b
[pre-commit.ci] pre-commit autoupdate (#3885)
updates:
- [github.com/hadialqattan/pycln: v1.2.5 → v1.3.1](https://github.com/hadialqattan/pycln/compare/v1.2.5...v1.3.1)
- [github.com/pre-commit/mirrors-clang-format: v13.0.1 → v14.0.1](https://github.com/pre-commit/mirrors-clang-format/compare/v13.0.1...v14.0.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-04-18 17:44:01 -04:00
Aaron Gokaslan 1c636f4dce
chore: Change numpy dtype from_args call sig to const ref (#3878)
* Change numpy from_args call signature to avoid copy

* Reorder ctors

* Rename arg

* Fix unnecessary move

* Fix clang-tidy and Add a few missing moves to memory_view pytype
2022-04-18 11:11:24 -04:00
Aaron Gokaslan fbcde3f0af
chore: enable clang-tidy check modernize-use-nullptr (#3881)
* Enable clang-tidy check modernize-use-nullptr

* Sort clang-tidy

* Sorted again
2022-04-18 11:09:45 -04:00
Ralf W. Grosse-Kunstleve d6d3fe857b Merge branch 'master' into sh_merge_master 2022-04-17 22:20:02 -07:00
Ralf W. Grosse-Kunstleve 3d1cb7be83 Merge branch 'master' into sh_merge_master 2022-04-17 22:16:08 -07:00
Ralf W. Grosse-Kunstleve 30716c67a1
Also add error_scope assignment operator to complete the rule-of-3 (follow-on to PR #3870). (#3872) 2022-04-15 14:44:48 -04:00
Xiaofei Wang 7064d43bc9
[smart_holder] Add a new return value policy `return_as_bytes` (#3838)
* 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>
2022-04-15 10:17:34 -07:00
Aaron Gokaslan 3829b7624c
chore: simplify numpy dtype ctor (#3869)
* Simplify numpy dtype ctor

* Simplify c_str ctor

* Remove compat macro for str in numpy
2022-04-14 14:12:44 -07:00
Oleksandr Pavlyk 45164c1fcb
Added deleted copy constructor for error_scope to comply with rule of 3. (#3870)
* Added deleted copy constructor for error_scope to comply with rule of 3.
2022-04-14 12:16:58 -04:00
Oleksandr Pavlyk ba7a0fac73
Expand dtype accessors (#3868)
* Added constructor based on typenum, based on PyArray_DescrFromType

Added accessors for typenum, alignment, byteorder and flags fields of
PyArray_Descr struct.

* Added tests for new py::dtype constructor, and for accessors

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed the comment for alignment method

* Update include/pybind11/numpy.h

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>

* [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>
Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2022-04-14 10:53:16 -04:00