- 15 Feb, 2021 6 commits
-
-
Ralf W. Grosse-Kunstleve committed
-
Ralf W. Grosse-Kunstleve committed
-
moving prototype code to pybind11/vptr_holder.h, adding type_caster specialization to make the bindings involving unique_ptr passing compile, but load and cast implementations are missing
Ralf W. Grosse-Kunstleve committed -
Ralf W. Grosse-Kunstleve committed
-
Ralf W. Grosse-Kunstleve committed
-
See also: https://github.com/pybind/pybind11/issues/2583 Does not build with upstream master or https://github.com/pybind/pybind11/pull/2047, but builds with https://github.com/RobotLocomotion/pybind11 and almost runs: ``` Running tests in directory "/usr/local/google/home/rwgk/forked/EricCousineau-TRI/pybind11/tests": ================================================================================= test session starts ================================================================================= platform linux -- Python 3.8.5, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 rootdir: /usr/local/google/home/rwgk/forked/EricCousineau-TRI/pybind11/tests, inifile: pytest.ini collected 2 items test_unique_ptr_member.py .F [100%] ====================================================================================== FAILURES ======================================================================================= _____________________________________________________________________________ test_pointee_and_ptr_owner ______________________________________________________________________________ def test_pointee_and_ptr_owner(): obj = m.pointee() assert obj.get_int() == 213 m.ptr_owner(obj) with pytest.raises(ValueError) as exc_info: > obj.get_int() E Failed: DID NOT RAISE <class 'ValueError'> test_unique_ptr_member.py:17: Failed ============================================================================= 1 failed, 1 passed in 0.06s ============================================================================= ```
Ralf W. Grosse-Kunstleve committed
-
- 14 Feb, 2021 1 commit
-
-
* Add initial implementation * Add few more methods * Add tests * Fix a typo * Use std::string constructor which takes size * Fix implicit sign conversion error * Add size method and test * Remove implicit conversion * Fix bytearray constructors and operator std::string() * Make implicit bytearray constructor explicit * Rerun tests * Add null check * Rerun tests * Rerun tests - 2 * Remove NULL check
Vikram Pal committed
-
- 12 Feb, 2021 1 commit
-
-
Co-authored-by: OnlineCop <onlinecop@gmail.com>
OnlineCop committed
-
- 09 Feb, 2021 1 commit
-
-
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from v1.4.1 to v1.4.2. - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.4.1...27b31702a0e7fc50959f5ad993c78deac1bdfc29) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] committed
-
- 08 Feb, 2021 3 commits
-
-
On Windows, clang-cl does not understand /MP. ``` clang-cl: warning: argument unused during compilation: '/MP' [-Wunused-command-line-argument] ``` with Clang 10.0.0
Axel Huebl committed -
Karthik Nishanth committed
-
Kumar Aditya committed
-
- 01 Feb, 2021 1 commit
-
-
* Make sure all warnings in pytest get turned into errors * Suppress DeprecationWarnings in test_int_convert and test_numpy_int_convert * PyLong_AsLong only shouts "Deprecated!" on Python>=3.8 * Fix remaining warnings on PyPy and CPython 3.10-dev
Yannick Jadoul committed
-
- 31 Jan, 2021 2 commits
-
-
* chore: get PyPy 3.7 wheels using NumPy 1.20 * Add Valgrind suppressions after NumPy update Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
Henry Schreiner committed -
* Demonstrate issue with weakref constructor overloads * Fix weakref constructor to convert on being passed a non-weakref object * Improve on nonlocal-scoped variable in test_weakref * Keep backwards-compatibility by introducing PYBIND11_OBJECT_CVT_DEFAULT macro * Simplify test_weakref
Yannick Jadoul committed
-
- 30 Jan, 2021 2 commits
-
-
Adding holder_caster `typename SFINAE = void` hooks to help work around the current lack of smart-pointer interoperability (#2833) * Adding move_only_holder_caster `typename SFINAE = void` to enable external specializations. * Adding SFINAE hook also to copyable_holder_caster, for uniformity, with comment to explain the purpose.
Ralf W. Grosse-Kunstleve committed -
* When determining if a shared_ptr already exists, use a test on the weak_ptr instead of a try/catch block. * When determining if a shared_ptr already exists, use a test on the weak_ptr instead of a try/catch block. * weak_from_this is only available in C++17 and later * Switch to use feature flag instead of C++ version flag. * Add Microsoft-specific check. * Avoid undefined preprocessor macro warning treated as error. * Simplify shared_from_this in init_holder * Include <version> in detail/common.h (~stolen~ borrowed from @bstaletic's #2816) * Move class_::get_shared_from_this to detail::try_get_shared_from_this * Simplify try_get_shared_from_this by using weak_ptr::lock() Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
Edward Lockhart committed
-
- 29 Jan, 2021 1 commit
-
-
* Changing pybind11::str to exclusively hold PyUnicodeObject
Ralf W. Grosse-Kunstleve committed
-
- 28 Jan, 2021 1 commit
-
-
Yannick Jadoul committed
-
- 27 Jan, 2021 6 commits
-
-
Factoring out find_registered_python_instance() from type_caster_generic::cast.
Ralf W. Grosse-Kunstleve committed -
Henry Fredrick Schreiner committed
-
Henry Fredrick Schreiner committed
-
Henry Schreiner committed
-
Henry Fredrick Schreiner committed
-
Henry Fredrick Schreiner committed
-
- 25 Jan, 2021 3 commits
-
-
* docs: prepare for 2.6.2 * chore: pre-commit autoupdate
Henry Schreiner committed -
Bumps [jwlawson/actions-setup-cmake](https://github.com/jwlawson/actions-setup-cmake) from v1.6 to v1.7. - [Release notes](https://github.com/jwlawson/actions-setup-cmake/releases) - [Commits](https://github.com/jwlawson/actions-setup-cmake/compare/v1.6...821902fd0e0da89b13fd3161d358e96bf7550883) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] committed -
* Always call PyNumber_Index when casting from Python to a C++ integral type, also pre-3.8 * Fixed on PyPy * Simplify use of PyNumber_Index, following @rwgk's idea, and ignore warnings in >=3.8 * Reproduce mismatch between pre-3.8 and post-3.8 behavior on __index__ throwing TypeError * Fix tests on 3.6 <= Python < 3.8 * No, I don't have an uninitialized variable * Fix use of __index__ on Python 2 * Make types in test_int_convert more ~boring~ descriptive
Yannick Jadoul committed
-
- 24 Jan, 2021 1 commit
-
-
* Force the builtin module key to be the correct type. Previously it was always going to be a std::string which converted into unicode. Python 2 appears to want module keys to be normal str types, so this was breaking code that expected plain string types in the builtins.keys() data structure * Add a simple unit test to ensure all built-in keys are str * Update the unit test so it will also run on pypy * Run pre-commit. Co-authored-by: Jesse Clemens <jesse.clemens@sony.com>
crimsoncor committed
-
- 21 Jan, 2021 1 commit
-
-
Henry Schreiner committed
-
- 20 Jan, 2021 3 commits
-
-
Henry Schreiner committed
-
Henry Fredrick Schreiner committed
-
* style: adding clang-format as manual hook * docs: adding a Clang-Format section. (#2803) Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
Henry Schreiner committed
-
- 19 Jan, 2021 4 commits
-
-
Henry Schreiner committed
-
* style: avoid using unintialized variables Tested with cmake --warn-unintialized -S . -B build * refactor: use function for possibly uninit vars
Henry Schreiner committed -
Henry Schreiner committed
-
This allows users to set e.g. `extra_compile_args=["-g"]` (temporarily, for debugging purposes) and not have that get overridden by Pybind11Extension's default `-g0`. In order to minimize "order inversion" (not that it really matters, though) I chose to collect all flags and add them at once (hence the dropping of `*args`). I also dropped flag deduplication, which seems unneeded.
Antony Lee committed
-
- 18 Jan, 2021 1 commit
-
-
* CI: Intel icc/icpc via oneAPI Add testing for Intel icc/icpc via the oneAPI images. Intel oneAPI is in a late beta stage, currently shipping oneAPI beta09 with ICC 20.2. CI: Skip Interpreter Tests for Intel Cannot find how to add this, neiter the package `libc6-dev` nor `intel-oneapi-mkl-devel` help when installed to solve this: ``` -- Looking for C++ include pthread.h -- Looking for C++ include pthread.h - not found CMake Error at /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message): Could NOT find Threads (missing: Threads_FOUND) Call Stack (most recent call first): /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE) /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindThreads.cmake:234 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) tests/test_embed/CMakeLists.txt:17 (find_package) ``` CI: libc6-dev from GCC for ICC CI: Run bare metal for oneAPI CI: Ubuntu 18.04 for oneAPI CI: Intel +Catch -Eigen CI: CMake from Apt (ICC tests) CI: Replace Intel Py with GCC Py CI: Intel w/o GCC's Eigen CI: ICC with verbose make [Debug] Find core dump tests: use arg{} instead of arg() for Intel tests: adding a few more missing {} fix: sync with @tobiasleibner's branch fix: try ubuntu 20-04 fix: drop exit 1 docs: Apply suggestions from code review Co-authored-by: Tobias Leibner <tobias.leibner@googlemail.com> Workaround for ICC enable_if issues Another workaround for ICC's enable_if issues fix error in previous commit Disable one test for the Intel compiler in C++17 mode Add back one instance of py::arg().noconvert() Add NOLINT to fix clang-tidy check Work around for ICC internal error in PYBIND11_EXPAND_SIDE_EFFECTS in C++17 mode CI: Intel ICC with C++17 docs: pybind11/numpy.h does not require numpy at build time. (#2720) This is nice enough to be mentioned explicitly in the docs. docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719) Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705) * Allow type_caster of std::reference_wrapper<T> to be the same as a native reference. Before, both std::reference_wrapper<T> and std::reference_wrapper<const T> would invoke cast_op<type>. This doesn't allow the type_caster<> specialization for T to distinguish reference_wrapper types from value types. After, the type_caster<> specialization invokes cast_op<type&>, which allows reference_wrapper to behave in the same way as a native reference type. * Add tests/examples for std::reference_wrapper<const T> * Add tests which use mutable/immutable variants This test is a chimera; it blends the pybind11 casters with a custom pytype implementation that supports immutable and mutable calls. In order to detect the immutable/mutable state, the cast_op needs to propagate it, even through e.g. std::reference<const T> Note: This is still a work in progress; some things are crashing, which likely means that I have a refcounting bug or something else missing. * Add/finish tests that distinguish const& from & Fixes the bugs in my custom python type implementation, demonstrate test that requires const& and reference_wrapper<const T> being treated differently from Non-const. * Add passing a const to non-const method. * Demonstrate non-const conversion of reference_wrapper in tests. Apply formatting presubmit check. * Fix build errors from presubmit checks. * Try and fix a few more CI errors * More CI fixes. * More CI fixups. * Try and get PyPy to work. * Additional minor fixups. Getting close to CI green. * More ci fixes? * fix clang-tidy warnings from presubmit * fix more clang-tidy warnings * minor comment and consistency cleanups * PyDECREF -> Py_DECREF * copy/move constructors * Resolve codereview comments * more review comment fixes * review comments: remove spurious & * Make the test fail even when the static_assert is commented out. This expands the test_freezable_type_caster a bit by: 1/ adding accessors .is_immutable and .addr to compare identity from python. 2/ Changing the default cast_op of the type_caster<> specialization to return a non-const value. In normal codepaths this is a reasonable default. 3/ adding roundtrip variants to exercise the by reference, by pointer and by reference_wrapper in all call paths. In conjunction with 2/, this demonstrates the failure case of the existing std::reference_wrpper conversion, which now loses const in a similar way that happens when using the default cast_op_type<>. * apply presubmit formatting * Revert inclusion of test_freezable_type_caster There's some concern that this test is a bit unwieldly because of the use of the raw <Python.h> functions. Removing for now. * Add a test that validates const references propagation. This test verifies that cast_op may be used to correctly detect const reference types when used with std::reference_wrapper. * mend * Review comments based changes. 1. std::add_lvalue_reference<type> -> type& 2. Simplify the test a little more; we're never returning the ConstRefCaster type so the class_ definition can be removed. * formatted files again. * Move const_ref_caster test to builtin_casters * Review comments: use cast_op and adjust some comments. * Simplify ConstRefCasted test I like this version better as it moves the assertion that matters back into python. ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724) * ci: drop pypy2 linux, add Python 10 dev * ci: fix mistake * ci: commented-out PGI 20.11, drop 20.7 fix: regression with installed pybind11 overriding local one (#2716) * fix: regression with installed pybind11 overriding discovered one Closes #2709 * docs: wording incorrect style: remove redundant instance->owned = true (#2723) which was just before set to True in instance->allocate_layout() fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701) Make args_are_all_* ICC workarounds unconditional Disable test_aligned on Intel ICC Fix test_aligned on Intel ICC Skip test_python_alreadyset_in_destructor on Intel ICC Fix test_aligned again ICC CI: Downgrade pytest pytest 6 does not capture the `discard_as_unraisable` stderr and just writes a warning with its content instead. * refactor: simpler Intel workaround, suggested by @laramiel * fix: try version with impl to see if it is easier to compile * docs: update README for ICC Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>Michael Kuron committed
-
- 17 Jan, 2021 2 commits
-
-
fix: only allow integer type_caster to call __int__ method when conversion is allowed; always call __index__ (#2698) * Only allow integer type_caster to call __int__ or __index__ method when conversion is allowed * Remove tests for __index__ as this seems to only be used to convert to int in 3.8+ * Take both `int` and `long` types into account for Python 2 * Add test_numpy_int_convert to assert tests currently fail, even though np.intc has an __index__ method * Also consider __index__ as noconvert to a C++ integer * New-style classes for Python 2.7; sigh * Add some tests on types with custom __index__ method * Ignore some tests in Python <3.8 * Update comment about conversion from np.float32 to C++ int * Workaround difference between CPython and PyPy's different PyIndex_Check (unnoticed because we currently don't have PyPy >= 3.8) * Avoid ICC segfault with py::arg()
Yannick Jadoul committed -
* docs: update build description slightly * docs: missing ticks
Henry Schreiner committed
-