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

2397 Commits

Author SHA1 Message Date
Henry Schreiner
00edc3001b
fix: PYBIND11_OBJECT required pybind11 namespace (regression) ()
* fix: PYBIND11_OBJECT could only be used inside the pybind11 namespace (regression)

* docs: add changelog for conversion protection change

* ci: update to Python 3.9
2020-10-06 10:04:13 -04:00
Henry Schreiner
9a0c96dd4c
feat: py::prepend tag ()
* feat: add a priority overload with py::prepend

* doc: fix wording as suggested by rwgk

* feat: add get_pointer

* refactor: is_prepended -> prepend (internal)

* docs: suggestion from @wjakob

* tests: add test covering get_pointer/set_pointer
2020-10-05 22:36:33 -04:00
Yannick Jadoul
f537093a2f
Fail on passing py::object with wrong Python type to py::object subclass using PYBIND11_OBJECT macro ()
* Fail on passing py::object with wrong Python type to py::object subclass using PYBIND11_OBJECT macro

* Split off test_non_converting_constructors from test_constructors

* Fix test_as_type, as py::type constructor now throws an error itself if the argument is not a type

* Replace tp_name access by pybind11::detail::get_fully_qualified_tp_name

* Move forward-declaration of get_fully_qualified_tp_name to detail/common.h

* Don't add the builtins module name in get_fully_qualified_tp_name for PyPy

* Add PYBIND11_BUILTINS_MODULE macro, and use it in get_fully_qualified_tp_name
2020-10-05 22:48:54 +02:00
Henry Schreiner
2a2f52201d
fix: find_import didn't work properly for classic tools ()
* fix: find_import didn't work properly for classic tools

* ci: fix all files not being checked in style run
2020-10-05 15:31:00 -04:00
Yannick Jadoul
1411207711
chore: drop support for PyPy < 7.3.1 and clean up old PyPy workarounds ()
* Remove code inside 'PYPY_VERSION_NUM < 0x06000000' preprocessor if branch

* fix: more cleanup

* Remove more references to PyPy 5.7 and 5.9 in the docs

* Update comment on PyUnicode_UTF* in PyPy

Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
2020-10-05 10:43:27 -04:00
Yannick Jadoul
b70894df52
docs: add std::valarray to docs/advanced/cast/stl.rst () 2020-10-04 09:52:55 -04:00
Fritz Reese
e8ad33bb30
Fix buffer_info for ctypes buffers (pybind#2502) ()
* tests: New test for ctypes buffers (pybind#2502)

* fix: fix buffer_info segfault on views with no stride (pybind11#2502)

* Explicit conversions in buffer_info to make clang happy (pybind#2502)

* Another explicit cast in buffer_info constructor for clang (pybind#2502)

* Simpler implementation of buffer_info constructor from Py_buffer.

* Move test_ctypes_buffer into test_buffers

* Comment on why view->strides may be NULL (and fix some whitespace)

* Use c_strides() instead of zero when view->strides is NULL.

c_strides and f_strides are moved from numpy.h (py::array)
to buffer_info.h (py::detail) so they can be used from the
buffer_info Py_buffer constructor.

* Increase ctypes buffer test coverage in test_buffers.

* Split ctypes tests and skip one which is broken in PyPy2.
2020-10-03 23:09:14 +02:00
Henry Schreiner
6bcd220c8d
refactor: module -> module_ with typedef ()
* WIP: module -> module_ without typedef

* refactor: allow py::module to work again
2020-10-03 13:38:03 -04:00
Henry Schreiner
560ed3e34f
docs: fix odd spacing 2020-10-02 22:38:29 -04:00
Henry Schreiner
3488494a81
refactor: import check as a common function ()
* feat: import check as a common function

* docs: add cmake to docs
2020-10-02 22:34:22 -04:00
Henry Schreiner
ca4127ce07
ci: fix labeler 2020-10-02 17:09:58 -04:00
Hyrum Wright
961b2e6205
fix: ensure the GIL is held when copying a function. ()
Co-authored-by: Hyrum Wright <hwright@google.com>
2020-10-02 17:00:45 -04:00
Henry Schreiner
1bcd5f0a19
Update pr_merged.yml 2020-10-02 16:59:04 -04:00
Henry Schreiner
5f9b16672f
ci: label PRs with changelog needed () 2020-10-02 16:56:19 -04:00
Yannick Jadoul
9796fe98fc
feat: vectorize functions with void return type ()
* Allow function/functor passed to py::vectorize to return void

* Stealing @sizmailov's test and fixing unused argument warning

* Add missing std::move()

RVO doesn't work here because function return type is different from
actual returned type

* remove extra EOL

* docs: add a few details

* chore: pre-commit autoupdate

* Remove array_iterator, array_begin, and array_end (in detail namespace)

Co-authored-by: Sergei Izmailov <sergei.a.izmailov@gmail.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
2020-10-02 15:30:34 -04:00
Yannick Jadoul
56784c4f42
Add unchecked_reference::operator() and operator[] to overload resolution of unchecked_mutable_reference () 2020-10-02 19:07:04 +02:00
Riyaz Haque
2b6b98e28f
Bugfix/Check actual value when deregistering pybind11 instance ()
* Add tests demonstrating the problem with deregistering pybind11 instances

* Fix deregistering of different pybind11 instance from internals

Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
Co-authored-by: Blistic <wots_wot@hotmail.com>
2020-10-02 19:06:04 +02:00
Henry Schreiner
b9d00273ee
feat: parallel compiler () 2020-10-02 10:03:35 -04:00
Yannick Jadoul
07b069a55b
Unify Python 2 & 3 py::module constructor, and make contructor with pre-allocated PyModuleDef private () 2020-10-02 10:01:24 -04:00
Henry Schreiner
6d2d08db00
fix: conda-forge patch () 2020-10-02 09:56:54 -04:00
Boris Staletic
5ebc78164d
Allow raw unions without base classes in is_accessible_base_of ()
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2020-10-02 09:39:22 -04:00
Yannick Jadoul
c72708a746
Moving tp_class access, and consistent fully-qualified naming for PyPy, to detail::get_tp_name ()
* Moving tp_class access, and consistent fully-qualified naming for PyPy, to detail::get_tp_name

* Change get_tp_name to get_fully_qualified_tp_name
2020-10-01 22:57:25 -04:00
Wenzel Jakob
3232e59b83
Check if module file extension could be queried correctly ()
On very incomplete python installations (e.g. within Docker), it's
possible that distutils is not installed. In that case, the
``execute_command`` statement that queries distutils for the Python
module extension fails, and pybind11 uses the empty string. This commit
adds an extra check that causes a CMake failure with more actionable
information (just spent a lot of time trying to track down this problem :))
2020-09-30 17:49:11 -04:00
Henry Schreiner
01ad89209a ci: publish in two steps 2020-09-30 17:46:55 -04:00
Henry Schreiner
319b99648b fix: metadata was adding quotes to distinfo 2020-09-30 17:17:59 -04:00
Henry Schreiner
1994691a9c
ci: download artifact issue 2020-09-30 17:05:32 -04:00
Henry Schreiner
0fc5774c0c
fix: beta does not have a dot in front () 2020-09-30 16:32:19 -04:00
Henry Schreiner
2190246243 chore: bump to 2.6.0b1, beta release 2020-09-30 16:10:26 -04:00
Henry Schreiner
82dbc5b78f
ci: releases ()
* ci: releases

* docs: minor update form @wjakob

* fix: enforce reasonable version of setuptools
2020-09-30 15:48:08 -04:00
Ralf W. Grosse-Kunstleve
d159a56338
static allocation for PyModuleDef, to avoid leak check errors. ()
* Initializing PyModuleDef object with PyModuleDef_HEAD_INIT.

Python 3.8 documentation: m_base - Always initialize this member to PyModuleDef_HEAD_INIT.

Long-standing (since first github commit in 2015), inconsequential bug.

Also removing inconsequential Py_INCREF(def): PyModule_Create() resets the reference count to 1.

* git rebase master

* moving static PyModuleDef declaration to global scope, as requested by @wjakob

* renaming the two new macros, to start with PYBIND11_DETAIL_MODULE
2020-09-26 22:55:11 -07:00
Henry Schreiner
3c7ef56bb6
fix: warning on latest AppleClang ()
Fixed in  but reintroduced on one line by 
2020-09-22 23:36:25 +02:00
Eric Cousineau
d74be32109
tests: Fix test override execution () 2020-09-22 12:01:15 -04:00
Henry Schreiner
e01f492462
fix: Add a nice CMake error when Interpreter component is missing. ()
Closes , found by @rhjdjong
2020-09-21 18:34:48 -04:00
David Vo
5e6ec49652
Add enum value to enum repr ()
This changes enum reprs to look like `<Enum.name: value>` similarly to
the Python enum module.

This keeps the str of enums as `Enum.name`, like the Python enum module.
2020-09-20 01:12:19 +02:00
Rickard Hallerbäck
5a8ec8e505
Include what is used in pybind11.h ()
* Include what is used

* Separated the C++ standard library headers and the project headers

* Reordering includes
2020-09-19 20:25:46 +02:00
Henry Schreiner
d0ed035cc5
fix: AppleClang 12 warnings ()
* fix: AppleClang 12 new warning

* Fix: AppleClang X.X.0 will not trigger this warning
2020-09-19 20:23:47 +02:00
Henry Schreiner
4a288ab928
fix: Windows C++ latest () 2020-09-18 14:57:47 -04:00
Henry Schreiner
87828c7ec1
fix: typo in Windows C++17 support () 2020-09-18 11:15:36 -04:00
Henry Schreiner
8fa70e7483
ci: fix broken documenation test (works on RtD) ()
* ci: fix broken documenation test (works on RtD)

* docs: docs link incorrect
2020-09-17 21:18:15 -04:00
Henry Schreiner
d753b76999
docs: corrected link to documentation 2020-09-17 17:53:35 -04:00
Henry Schreiner
54831a9a1a fix: use svg to pdf converter instead of original solution 2020-09-17 16:07:47 -04:00
Henry Schreiner
81555ce61f
docs: Use README.rst in docs as home page () 2020-09-17 15:40:09 -04:00
Henry Schreiner
99ef2b8467
docs: read version from pybind11 file ()
* docs: read version from pybind11 file

* docs: show full PEP 440 version everywhere
2020-09-17 09:08:08 -04:00
Eric Cousineau
4e7c08daee
test_numpy_dtypes: Add test for py::vectorize() () 2020-09-17 07:19:33 -04:00
Henry Fredrick Schreiner
e3774b76ed tests: the condition was too look on xfail 2020-09-16 23:21:47 -04:00
Henry Fredrick Schreiner
11f756f5a9 fix: type bug intruduced in
This now tests the old form too, and fixes the bug introduced.
2020-09-16 23:21:47 -04:00
Henry Schreiner
dec33c29f2
docs: installing section ()
* docs: installing section

* docs: feedback from @wjakob
2020-09-16 20:00:19 -04:00
Boris Staletic
d3c999c774
fix: rename pybind11::module to pybind11::module_ ()
Support C++20. For backwards compatibility, we provide an alias for the old name.
This change is necessary to easily avoid errors when a compiler thinks
`module` is used as a keyword.
2020-09-16 17:15:42 -04:00
Henry Schreiner
e37921d761
refactor: drop mkdoc and update changelog ()
* refactor: drop mkdoc

* docs: update changelog
2020-09-16 17:14:06 -04:00
Henry Schreiner
fd61f5038e
feat: setup.py redesign and helpers ()
* feat: setup.py redesign and helpers

* refactor: simpler design with two outputs

* refactor: helper file update and Windows support

* fix: review points from @YannickJadoul

* refactor: fixes to naming and more docs

* feat: more customization points

* feat: add entry point pybind11-config

* refactor: Try Extension-focused method

* refactor: rename alt/inplace to global

* fix: allow usage with git modules, better docs

* feat: global as an extra (@YannickJadoul's suggestion)

* feat: single version location

* fix: remove the requirement that setuptools must be imported first

* fix: some review points from @wjacob

* fix: use .in, add procedure to docs

* refactor: avoid monkeypatch copy

* docs: minor typos corrected

* fix: minor points from @YannickJadoul

* fix: typo on Windows C++ mode

* fix: MSVC 15 update 3+ have c++14 flag

See <https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=vs-2019>

* docs: discuss making SDists by hand

* ci: use pep517.build instead of manual setup.py

* refactor: more comments from @YannickJadoul

* docs: updates from @ktbarrett

* fix: change to newly recommended tool instead of pep517.build

This was intended as a proof of concept; build seems to be the correct replacement.

See https://github.com/pypa/pep517/pull/83

* docs: updates from @wjakob

* refactor: dual version locations

* docs: typo spotted by @wjakob
2020-09-16 17:13:41 -04:00