- 22 Sep, 2021 1 commit
-
-
Aaron Gokaslan authored
* Apply blacken-docs and fix language-hints * Add blacken-docs pre-commit hook * Add pycln pre-commit hook * Enable a few builtin hooks * Black no longer ignores pyi files
-
- 21 Sep, 2021 1 commit
-
-
Bruce Merry authored
* Add make_value_iterator This is the counterpart to make_key_iterator, and will allow implementing a `value` method in `bind_map` (although doing so is left for a subsequent PR). I made a few design changes to reduce copy-and-paste boilerplate. Previously detail::iterator_state had a boolean template parameter to indicate whether it was being used for make_iterator or make_key_iterator. I replaced the boolean with a class that determines how to dereference the iterator. This allows for a generic implementation of `__next__`. I also added the ValueType and Extra... parameters to the iterator_state template args, because I think it was a bug that they were missing: if make_iterator is called twice with different values of these, only the first set has effect (because the state class is only registered once). There is still a potential issue in that the *values* of the extra arguments are latched on the first call, but since most policies are empty classes this should be even less common. * Add some remove_cv_t to appease clang-tidy * Make iterator_access and friends take reference For some reason I'd accidentally made it take a const value, which caused some issues with third-party packages. * Another attempt to remove remove_cv_t from iterators Some of the return types were const (non-reference) types because of the pecularities of decltype: `decltype((*it).first)` is the *declared* type of the member of the pair, rather than the type of the expression. So if the reference type of the iterator is `pair<const int, int> &`, then the decltype is `const int`. Wrapping an extra set of parentheses to form `decltype(((*it).first))` would instead give `const int &`. This means that the existing make_key_iterator actually returns by value from `__next__`, rather than by reference. Since for mapping types, keys are always const, this probably hasn't been noticed, but it will affect make_value_iterator if the Python code tries to mutate the returned objects. I've changed things to use double parentheses so that make_iterator, make_key_iterator and make_value_iterator should now all return the reference type of the iterator. I'll still need to add a test for that; for now I'm just checking whether I can keep Clang-Tidy happy. * Add back some NOLINTNEXTLINE to appease Clang-Tidy This is favoured over using remove_cv_t because in some cases a const value return type is deliberate (particularly for Eigen). * Add a unit test for iterator referencing Ensure that make_iterator, make_key_iterator and make_value_iterator return references to the container elements, rather than copies. The test for make_key_iterator fails to compile on master, which gives me confidence that this branch has fixed it. * Make the iterator_access etc operator() const I'm actually a little surprised it compiled at all given that the operator() is called on a temporary, but I don't claim to fully understand all the different value types in C++11. * Attempt to work around compiler bugs https://godbolt.org/ shows an example where ICC gets the wrong result for a decltype used as the default for a template argument, and CI also showed problems with PGI. This is a shot in the dark to see if it fixes things. * Make a test constructor explicit (Clang-Tidy) * Fix unit test on GCC 4.8.5 It seems to require the arguments to the std::pair constructor to be implicitly convertible to the types in the pair, rather than just requiring is_constructible. * Remove DOXYGEN_SHOULD_SKIP_THIS guards Now that a complex decltype expression has been replaced by a simpler nested type, I'm hoping Doxygen will be able to build it without issues. * Add comment to explain iterator_state template params
-
- 17 Sep, 2021 1 commit
-
-
Henry Schreiner authored
-
- 08 Sep, 2021 1 commit
-
-
Thomas Ballinger authored
-
- 26 Aug, 2021 1 commit
-
-
Jouke Witteveen authored
Co-authored-by:Jouke Witteveen <j.witteveen@cosine.nl>
-
- 24 Aug, 2021 1 commit
-
-
Ralf W. Grosse-Kunstleve authored
* Add py::raise_from to enable chaining exceptions on Python 3.3+ * Use 'raise from' in initialization * Documenting the exact base version of _PyErr_FormatVFromCause, adding back `assert`s. Co-authored-by:Dustin Spicuzza <dustin@virtualroadside.com>
-
- 13 Aug, 2021 1 commit
-
-
Aaron Gokaslan authored
* Apply isort * Tweak isort config * Add env.py as a known_first_party * Add one missing known first party * Make config compat with older isort versions * Add another comment * Revert pyproject setting
-
- 03 Aug, 2021 1 commit
-
-
Henry Schreiner authored
* chore: changelog update * Update docs/changelog.rst
-
- 21 Jul, 2021 1 commit
-
-
jesse-sony authored
* Create a module_internals struct Since we now have two things that are going to be module local, it felt correct to add a struct to manage them. * Add local exception translators These are added via the register_local_exception_translator function and are then applied before the global translators * Add unit tests to show the local exception translator works * Fix a bug in the unit test with the string value of KeyError * Fix a formatting issue * Rename registered_local_types_cpp() Rename it to get_registered_local_types_cpp() to disambiguate from the new member of module_internals * Add additional comments to new local exception code path * Add a register_local_exception function * Add additional unit tests for register_local_exception * Use get_local_internals like get_internals * Update documentation for new local exception feature * Add back a missing space * Clean-up some issues in the docs * Remove the code duplication when translating exceptions Separated out the exception processing into a standalone function in the details namespace. Clean-up some comments as per PR notes as well * Remove the code duplication in register_exception * Cleanup some formatting things caught by clang-format * Remove the templates from exception translators But I added a using declaration to alias the type. * Remove the extra local from local_internals variable names * Add an extra explanatory comment to local_internals * Fix a typo in the code
-
- 17 Jul, 2021 1 commit
-
-
Henry Schreiner authored
-
- 16 Jul, 2021 2 commits
-
-
Henry Schreiner authored
-
Henry Schreiner authored
-
- 15 Jul, 2021 2 commits
-
-
Axel Huebl authored
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.
-
Henry Schreiner authored
-
- 14 Jul, 2021 1 commit
-
-
Henry Schreiner authored
* style: disallow PyTest (should be pytest) * style: cleanup spell checking a bit * style: add a few items to the .gitignore
-
- 13 Jul, 2021 2 commits
-
-
Antony Lee authored
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>
-
Henry Schreiner authored
* docs: update changelog * docs: add one more and merge tidy
-
- 12 Jul, 2021 3 commits
-
-
Ralf W. Grosse-Kunstleve authored
* 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.
-
Henry Schreiner authored
-
Ralf W. Grosse-Kunstleve authored
* 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.
-
- 10 Jul, 2021 1 commit
-
-
Jan Iwaszkiewicz authored
* py::pickle typo * correct dots and parentheses
-
- 04 Jul, 2021 1 commit
-
-
luzpaz authored
Found via `codespell -q 3 -L nd,ot,thist`
-
- 02 Jul, 2021 1 commit
-
-
Antony Lee authored
-
- 17 Jun, 2021 2 commits
-
-
Aaron Gokaslan authored
-
Aaron Gokaslan authored
-
- 27 May, 2021 1 commit
-
-
Yichen authored
* Set visibility of exceptions to default. Co-authored-by:XZiar <czktc2007@gmail.com> * add test * update docs * Skip failed test.
-
- 06 May, 2021 1 commit
-
-
Eric Cousineau authored
test_call_policies: Explicitly check free-functions and static methods
-
- 15 Apr, 2021 1 commit
-
-
Henry Schreiner authored
-
- 02 Apr, 2021 1 commit
-
-
JYX authored
-
- 25 Feb, 2021 1 commit
-
-
Tom de Geus authored
-
- 20 Feb, 2021 1 commit
-
-
jakobjw authored
-
- 29 Jan, 2021 1 commit
-
-
Ralf W. Grosse-Kunstleve authored
* Changing pybind11::str to exclusively hold PyUnicodeObject
-
- 28 Jan, 2021 1 commit
-
-
Yannick Jadoul authored
-
- 27 Jan, 2021 2 commits
-
-
Henry Fredrick Schreiner authored
-
Henry Schreiner authored
-
- 25 Jan, 2021 1 commit
-
-
Henry Schreiner authored
* docs: prepare for 2.6.2 * chore: pre-commit autoupdate
-
- 21 Jan, 2021 1 commit
-
-
Henry Schreiner authored
-
- 17 Jan, 2021 1 commit
-
-
Henry Schreiner authored
* docs: update build description slightly * docs: missing ticks
-
- 14 Jan, 2021 2 commits
-
-
Yannick Jadoul authored
docs: the order of alternatives for variant types matters, and follows the same rules as overload resolution (#2784)
-
Andy Maloney authored
-