1
0
mirror of https://github.com/pybind/pybind11.git synced 2025-03-04 13:33:20 +00:00
Commit Graph

2210 Commits

Author SHA1 Message Date
Aaron Gokaslan
9f204a1857 fix: func_handle for rule of two ()
* Fix func_handle for rule of two

* Apply reviewer suggestion
2021-08-03 13:17:03 -04:00
pre-commit-ci[bot]
ada6b79104 [pre-commit.ci] pre-commit autoupdate ()
updates:
- [github.com/asottile/pyupgrade: v2.23.0 → v2.23.1](https://github.com/asottile/pyupgrade/compare/v2.23.0...v2.23.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-08-03 13:16:54 -04:00
Ralf W. Grosse-Kunstleve
b961ac644f Moving pragma for MSVC warning C4505 from pybind11.h to existing list in detail/common.h ()
* Moving pragma for C4505 from pybind11.h to existing list in detail/common.h.

* Removing 4 existing suppressions to 1. see what is still needed and 2. capture the MSVC messages.

* It turns out none of the 4 pragmas are needed anymore.
2021-07-30 13:58:24 -04:00
Jerome Robert
c80e059345 fix: Mingw64 corrected and add a CI job to test it ()
* mingw64 platform string is like mingw_xxx not "mingw"

See https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-python/0099-Change-the-get_platform-method-in-sysconfig-and-dist.patch

* Mingw: Do not dllexport exceptions

This is a fix for errors like:

D:/a/pybind11/pybind11/include/pybind11/detail/common.h:735:23: error: 'dllexport' implies default visibility, but 'class pybind11::builtin_exception' has already been declared with a different visibility
  735 | class PYBIND11_EXPORT builtin_exception : public std::runtime_error {
      |                       ^~~~~~~~~~~~~~~~~

* GHA: Test Mingw64 build

* fix: avoid thin binaries on mingw

* fix: drop lto on MinGW

* Mingw64: disable PYBIND11_DEPRECATED

It trigger many warnings for unknown reasons

Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
2021-07-30 13:58:16 -04:00
Ralf W. Grosse-Kunstleve
46c51fc03b Limiting pragma for ignoring GCC 7 -Wnoexcept-type to the scope of pybind11.h. ()
* Moving pragma for ignoring -Wnoexcept-type to the one location where it is needed.

* Trying a second location.

* The previous commit worked (GitHub Actions green), but see the added comment about the dicy nature of -Wnoexcept-type ("if and only if").

* Applying reviewer suggestion.
2021-07-30 13:58:04 -04:00
Ralf W. Grosse-Kunstleve
05852fb6bc
Accommodating environments that define __STDC_WANT_LIB_EXT1__ even if __STDC_LIB_EXT1__ is not defined by the implementation. ()
Follow-on to PR .
2021-07-28 21:49:10 -04:00
Ralf W. Grosse-Kunstleve
ed5fb66bd7
Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h ()
* Fixing `pragma warning pop` for `__INTEL_COMPILER`.

* Adding push/pop to 3 tests. Removing  from top of pybind11.h (it was/is only needed for 1 test).

* Trying again after CI failure, moving the push to the top of 2 tests.

* Trying more after CI failure, adding push/pop to pybind11_tests.h, constructor_stats.h.

* Moving ICC  suppression to CMakeLists.txt

* Fixing condition for `pragma GCC diagnostic push` in pybind11.h

* Moving `pragma warning disable 2196` to common.h

* Revising #ifdef to be more conservative.

* Undoing insertion of notes that will hopefully soon be completely obsolete anyway.
2021-07-28 21:49:10 -04:00
Aaron Gokaslan
0ac4c8afd6
maint(clang-tidy): Improve code readability with explicit boolean casts ()
* maint(clang-tidy) Improve code readability

* Fix minor typos

* Revert optimization that removed test case

* Fix comment formatting

* Revert another optimization to repro an issue

* Remove make_unique since it C++14 and newer only

* eformat comments

* Fix unsignedness of comparison

* Update comment
2021-07-28 21:49:09 -04:00
Henry Schreiner
5c6bdb7215
fix: the CMake config in Python package had a hard coded path () 2021-07-28 21:49:09 -04:00
David Hewitt
fd71bd486d
Allow python builtins to be used as callbacks ()
* Allow python builtins to be used as callbacks

* Try to fix pypy segfault

* Add expected fail for PyPy

* Fix typo

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

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

* Add more info to xfail

* Add env

* Try returning false

* Try removing the move for pypy

* Fix bugs

* Try removing move

* Just keep ignoring for PyPy

* Add back xfail

* Fix ctors

* Revert change of std::move

* Change to skip

* Fix bug and edit comments

* Remove clang-tidy bugprone fix skip bug

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-07-28 21:49:09 -04:00
Ralf W. Grosse-Kunstleve
e93d94594b
Removing MSVC C4800 from pragma block at the top of pybind11.h ()
* Adding PYBIND11_COMPAT_BOOL_CAST to appease MSVC 2015 warning C4800.

* Replacing PYBIND11_COMPAT_BOOL_CAST with simpler != 0

* Extra parentheses (almost all compilers failed without these).
2021-07-28 21:49:09 -04:00
pre-commit-ci[bot]
c973660d6c
[pre-commit.ci] pre-commit autoupdate ()
updates:
- [github.com/asottile/pyupgrade: v2.21.2 → v2.23.0](https://github.com/asottile/pyupgrade/compare/v2.21.2...v2.23.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-07-28 21:49:09 -04:00
Ralf W. Grosse-Kunstleve
85b38c69de
Adding pragma warning(disable: 4522) for MSVC <= 2017. () 2021-07-28 21:49:09 -04:00
Ralf W. Grosse-Kunstleve
b193d42c32
Removing MSVC C4996 from pragma block at the top of pybind11.h ()
* Removing MSVC C4996 from pragma block at the top of pybind11.h

* localtime_thread_safe, PYBIND11_COMPAT_STRDUP

* Adding #include <ctime> (attempt to fix MSVC 2015, 2017 errors).
2021-07-28 21:49:06 -04:00
ka-bo
ee3ecb8ae2
Specified encoding in setup.py calls of open() ()
* Specified encoding in setup.py calls of open()

* Fix for Python2

Co-authored-by: Karsten Bock <karsten.bock@dlr.de>
2021-07-28 21:48:08 -04:00
blacktea
6d5d4e738c
Move object in pop method of List. ()
* Move item instead of copy.

* Make Clang 3.6 happy.

Co-authored-by: c99 <email@dummy.com>
2021-07-20 11:48:09 -04:00
pre-commit-ci[bot]
9626483cdf
[pre-commit.ci] pre-commit autoupdate ()
updates:
- [github.com/asottile/pyupgrade: v2.21.0 → v2.21.2](https://github.com/asottile/pyupgrade/compare/v2.21.0...v2.21.2)
- [github.com/psf/black: 21.6b0 → 21.7b0](https://github.com/psf/black/compare/21.6b0...21.7b0)
- https://gitlab.com/pycqa/flake8https://github.com/PyCQA/flake8
2021-07-20 11:29:42 -04:00
Ralf W. Grosse-Kunstleve
34f587dd23
Removing all warning pragmas that have not effect. () 2021-07-17 08:54:31 -07:00
Henry Schreiner
74935f8d67
chore: post-release () 2021-07-17 11:50:42 -04:00
Henry Schreiner
65e95ea867
chore: bump to 2.7.0 () 2021-07-16 09:27:47 -04:00
Henry Schreiner
6642f389dc
docs: update changelog () 2021-07-15 20:00:07 -04:00
Ralf W. Grosse-Kunstleve
4359e00b97
Introducing PYBIND11_VERSION_HEX ()
* Introducing PYBIND11_VERSION_HEX (better late than never!)

* PYBIND11_VERSION_HEX consistency check in setup.py
2021-07-15 15:00:57 -07:00
Henry Schreiner
1b10292c05
chore: support PDF from nox () 2021-07-15 16:54:40 -04:00
Axel Huebl
55f6f6e9bf
Fix: RTD Docutils Build ()
The docutils 0.17+ release uses more semantic HTML5 tags, which
the RTD theme does not (yet) know.

This breaks side bar, lists and other elements.
2021-07-15 15:41:36 -04:00
Henry Schreiner
2415c09459
feat(package): support pipx run () 2021-07-15 15:01:29 -04:00
Henry Schreiner
31843d455d
docs: reduce visibility of 3.9.0 warning () 2021-07-15 15:01:13 -04:00
Boris Staletic
5cd3750757
Enable -Wstrict-aliasing warning ()
* Enable -Wstrict-aliasing warning

* Narrow down the scope of -Wstrict-aliasing

* Go home, MSVC, you're drunk

* Make sure "pragma GCC" is not executed on ICC

Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
2021-07-15 12:38:52 -04:00
Aaron Gokaslan
c4b0dc7cdd
Add shellcheck style checking () 2021-07-14 16:52:13 -04:00
Henry Schreiner
cd061aeef1
style: pre-commit cleanup ()
* style: disallow PyTest (should be pytest)

* style: cleanup spell checking a bit

* style: add a few items to the .gitignore
2021-07-14 16:49:13 -04:00
Shane Loretz
7331d381af
Raise codec errors when casting to std::string ()
* Raise codec errors when casting to std::string

Allow the codec's exception to be raised instead of RuntimeError when
casting from py::str to std::string.

PY2 allows ucs surrogates in UTF-8 conversion

Signed-off-by: Shane Loretz <sloretz@openrobotics.org>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>

* Attempt to fix py2 error

* Revert all unicode literals

* Fixed

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2021-07-13 21:21:55 -07:00
Ralf W. Grosse-Kunstleve
aca6c3ba37
* Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). ()
* Manually moving `// NOLINT` comments so that clang-format does not move them to the wrong places.

* Manually reformatting comments related to `static_assert`s so that clang-format does not need two passes.

* Empty lines between #includes, to prevent clang-format from shuffling the order and thereby confusing MSVC 2015.

* git diff -U0 --no-color HEAD^ | python3 $HOME/clone/llvm-project/clang/tools/clang-format/clang-format-diff.py -p1 -style=file -i
2021-07-13 18:14:58 -07:00
Antony Lee
1be0a0a610
Add helper to build in-tree extensions. ()
For single-file extensions, a convenient pattern offered by cython
is to place the source files directly in the python source tree
(`foo/__init__.py`, `foo/ext.pyx`), deriving the package names from
their filesystem location.  Adapt this pattern for pybind11, using an
`intree_extensions` helper, which should be thought of as the moral
equivalent to `cythonize`.

Differences with cythonize: I chose not to include globbing support
(`intree_extensions(glob.glob("**/*.cpp"))` seems sufficient), nor to
provide extension-customization kwargs (directly setting the attributes
on the resulting Pybind11Extension objects seems sufficient).

We could choose to have `intree_extension` (singular instead) and make
users write `[*map(intree_extension, glob.glob("**/*.cpp"))]`; no strong
opinion here.

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2021-07-13 17:21:55 -04:00
jbarlow83
2b7985e548
Improve documentation of discard_as_unraisable() API ()
* Improve documentation of discard_as_unraisable() API

* Update pytypes.h

Remove "the above"

* Update pytypes.h

Fix precommit error

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2021-07-13 15:32:56 -04:00
Aaron Gokaslan
25e470c57d
fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks ()
* clang-tidy: guard against more UB behavior

* Remove slicing check for now
2021-07-13 09:54:32 -04:00
Henry Schreiner
6a644c8f04
docs: update changelog ()
* docs: update changelog

* docs: add one more and merge tidy
2021-07-13 00:08:29 -04:00
Henry Schreiner
0e2e003508 style: add pyupgrade check, 2.7+ 2021-07-12 21:46:24 -04:00
Henry Schreiner
11e12fe455 chore: move some config to pyproject.toml 2021-07-12 21:46:24 -04:00
Henry Schreiner
84fdadfbcc chore: update pre-commit hooks 2021-07-12 21:46:24 -04:00
Ralf W. Grosse-Kunstleve
75090647ce
More precise return_value_policy::automatic documentation. ()
* Adding test_return_vector_bool_raw_ptr to test_stl.py.

* First attempt to make the documentation more accurate, but not trying to be comprehensive, to not bloat the reference table with too many details.

* Fixing minor oversights.

* Applying reviewer suggestion.
2021-07-12 16:56:10 -07:00
Henry Schreiner
ddf0efb990
chore: add nox support ()
* chore: add nox support

* chore: add more lines to CODEOWNERS
2021-07-12 17:45:40 -04:00
Ralf W. Grosse-Kunstleve
9f11951b5b
Fixing spelling errors that went undetected because the pre-commit spell check was added after the CI for PR last ran. () 2021-07-12 17:00:48 -04:00
Henry Schreiner
f0a65c899c
docs(fix): spelling mistake in recent commit 2021-07-12 16:57:28 -04:00
Ralf W. Grosse-Kunstleve
7472d37a93
Adding iostream.h thread-safety documentation. ()
* Adding iostream.h thread-safety documentation.

* Restoring `TestThread` code with added `std::lock_guard<std::mutex>`.

* Updating new comments to reflect new information.

* Fixing up `git rebase -X theirs` accidents.
2021-07-12 13:39:06 -07:00
Ralf W. Grosse-Kunstleve
2d468697d9
NOLINT reduction ()
* Copying from prework_no_rst branch (PR ): test_numpy_array.cpp, test_stl.cpp

* Manual changes reducing NOLINTs.

* clang-format-diff.py

* Minor adjustment to avoid MSVC warning C4702: unreachable code
2021-07-12 13:10:28 -07:00
Henry Schreiner
7a64b8adcc
docs: fix script issues for changelog compilation ()
[skip ci]
2021-07-12 14:10:46 -04:00
Ralf W. Grosse-Kunstleve
0f4761b44a
Rollback of DOWNLOAD_CATCH=OFF change merged via PR . () 2021-07-11 00:40:38 -07:00
Jan Iwaszkiewicz
cf006af2f0
Fix typos and docs style ()
* py::pickle typo

* correct dots and parentheses
2021-07-10 11:16:07 -07:00
Ralf W. Grosse-Kunstleve
bac5a0c370
Go all the way fixing clang-tidy issues to avoid the NOLINTNEXTLINE clutter and clang-format issues. This was really meant to be part of PR but was held back either out of an abundance of caution, or because of confusion caused by stray semicolons. () 2021-07-09 14:09:56 -07:00
Aaron Gokaslan
b5357d1fa8
fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks ()
* Enable clang-tidy else-after-return and redundant void checks

* Fix remaining else-after

* Address reviewer comments

* Fix indentation

* Rerun clang-tidy post merge
2021-07-09 06:45:53 -07:00
Ralf W. Grosse-Kunstleve
6d1b197b46
Splitting out pybind11/stl/filesystem.h. ()
* Splitting out pybind11/stl/filesystem.h.

To solve breakages like: https://github.com/deepmind/open_spiel/runs/2999582108

Mostly following the suggestion here: https://github.com/pybind/pybind11/pull/2730#issuecomment-750507575

Except using pybind11/stl/filesystem.h instead of pybind11/stlfs.h, as decided via chat.

stl.h restored to the exact state before merging PR  via:
```
git checkout 733f8de24f stl.h
```

* Properly including new stl subdirectory in pip wheel config.

This now passes interactively:
```
pytest tests/extra_python_package/
```

* iwyu cleanup.

iwyuh.py -c -std=c++17 -DPYBIND11_TEST_BOOST -Ipybind11/include -I/usr/include/python3.9 -I/usr/include/eigen3 include/pybind11/stl/filesystem.h

* Adding PYBIND11_HAS_FILESYSTEM_IS_OPTIONAL.

* Eliminating else after return.
2021-07-08 09:02:48 -07:00