- 02 Nov, 2017 1 commit
-
-
Unknown authored
Non-user facing. Found using `codespell -q 3`
-
- 28 Aug, 2017 1 commit
-
-
Dean Moldovan authored
[skip ci]
-
- 20 Aug, 2017 1 commit
-
-
Dean Moldovan authored
[skip ci]
-
- 19 Aug, 2017 1 commit
-
-
Patrik Huber authored
Fixes one small variable name typo, and two instances where `py::arg().nocopy()` is used, where I think it should be `py::arg().noconvert()` instead. Probably `nocopy()` was the old/original name for it and then it was changed.
-
- 12 Aug, 2017 1 commit
-
-
Dean Moldovan authored
In C++11 mode, `boost::apply_visitor` requires an explicit `result_type`. This also adds optional tests for `boost::variant` in C++11/14, if boost is available. In C++17 mode, `std::variant` is tested instead.
-
- 07 Aug, 2017 1 commit
-
-
Jason Rhinelander authored
boost::apply_visitor accepts its arguments by non-const lvalue reference, which fails to bind to an rvalue reference. Change the example to remove the argument forwarding.
-
- 04 Aug, 2017 1 commit
-
-
Jason Rhinelander authored
This commit adds a `py::module_local` attribute that lets you confine a registered type to the module (more technically, the shared object) in which it is defined, by registering it with: py::class_<C>(m, "C", py::module_local()) This will allow the same C++ class `C` to be registered in different modules with independent sets of class definitions. On the Python side, two such types will be completely distinct; on the C++ side, the C++ type resolves to a different Python type in each module. This applies `py::module_local` automatically to `stl_bind.h` bindings when the container value type looks like something global: i.e. when it is a converting type (for example, when binding a `std::vector<int>`), or when it is a registered type itself bound with `py::module_local`. This should help resolve potential future conflicts (e.g. if two completely unrelated modules both try to bind a `std::vector<int>`. Users can override the automatic selection by adding a `py::module_local()` or `py::module_local(false)`. Note that this does mildly break backwards compatibility: bound stl containers of basic types like `std::vector<int>` cannot be bound in one module and returned in a different module. (This can be re-enabled with `py::module_local(false)` as described above, but with the potential for eventual load conflicts).
-
- 27 Jun, 2017 1 commit
-
-
Dean Moldovan authored
-
- 25 Jun, 2017 1 commit
-
-
Dean Moldovan authored
[skip ci]
-
- 24 Jun, 2017 3 commits
-
-
Jason Rhinelander authored
-
Jason Rhinelander authored
-
Jason Rhinelander authored
Wrapped long lines and removed a few trailing spaces.
-
- 29 May, 2017 1 commit
-
-
Dean Moldovan authored
This commit also adds `doc()` to `object_api` as a shortcut for the `attr("__doc__")` accessor. The module macro changes from: ```c++ PYBIND11_PLUGIN(example) { pybind11::module m("example", "pybind11 example plugin"); m.def("add", [](int a, int b) { return a + b; }); return m.ptr(); } ``` to: ```c++ PYBIND11_MODULE(example, m) { m.doc() = "pybind11 example plugin"; m.def("add", [](int a, int b) { return a + b; }); } ``` Using the old macro results in a deprecation warning. The warning actually points to the `pybind11_init` function (since attributes don't bind to macros), but the message should be quite clear: "PYBIND11_PLUGIN is deprecated, use PYBIND11_MODULE".
-
- 29 Apr, 2017 1 commit
-
-
Dean Moldovan authored
-
- 24 Feb, 2017 1 commit
-
-
Jason Rhinelander authored
This commit largely rewrites the Eigen dense matrix support to avoid copying in many cases: Eigen arguments can now reference numpy data, and numpy objects can now reference Eigen data (given compatible types). Eigen::Ref<...> arguments now also make use of the new `convert` argument use (added in PR #634) to avoid conversion, allowing `py::arg().noconvert()` to be used when binding a function to prohibit copying when invoking the function. Respecting `convert` also means Eigen overloads that avoid copying will be preferred during overload resolution to ones that require copying. This commit also rewrites the Eigen documentation and test suite to explain and test the new capabilities.
-
- 17 Feb, 2017 1 commit
-
-
Wenzel Jakob authored
-
- 14 Feb, 2017 1 commit
-
-
Jason Rhinelander authored
* Propagate unicode conversion failure If returning a std::string with invalid utf-8 data, we currently fail with an uninformative TypeError instead of propagating the UnicodeDecodeError that Python sets on failure. * Add support for u16/u32strings and literals This adds support for wchar{16,32}_t character literals and the associated std::u{16,32}string types. It also folds the character/string conversion into a single type_caster template, since the type casters for string and wstring were mostly the same anyway. * Added too-long and too-big character conversion errors With this commit, when casting to a single character, as opposed to a C-style string, we make sure the input wasn't a multi-character string or a single character with codepoint too large for the character type. This also changes the character cast op to CharT instead of CharT& (we need to be able to return a temporary decoded char value, but also because there's little gained by bothering with an lvalue return here). Finally it changes the char caster to 'has-a-string-caster' instead of 'is-a-string-caster' because, with the cast_op change above, there's nothing at all gained from inheritance. This also lets us remove the `success` from the string caster (which was only there for the char caster) into the char caster itself. (I also renamed it to 'none' and inverted its value to better reflect its purpose). The None -> nullptr loading also now takes place only under a `convert = true` load pass. Although it's unlikely that a function taking a char also has overloads that can take a None, it seems marginally more correct to treat it as a conversion. This commit simplifies the size assumptions about character sizes with static_asserts to back them up.
-
- 02 Feb, 2017 1 commit
-
-
jbarlow83 authored
* Add documentation for strings and Unicode issues * More Unicode documentation on character literals and wide characters
-
- 31 Jan, 2017 1 commit
-
-
Dean Moldovan authored
* Make 'any' the default markup role for Sphinx docs * Automate generation of reference docs with doxygen and breathe * Improve reference docs coverage
-
- 13 Jan, 2017 1 commit
-
-
myd7349 authored
* [Doc] Fix several errors of examples from the doc * Add missing operator def. * Added missing `()` * Add missing `namespace`.
-
- 09 Dec, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 17 Nov, 2016 1 commit
-
-
Wenzel Jakob authored
Following commit 90d278, the object code generated by the python bindings of nanogui (github.com/wjakob/nanogui) went up by a whopping 12%. It turns out that that project has quite a few enums where we don't really care about arithmetic operators. This commit thus partially reverts the effects of #503 by introducing an additional attribute py::arithmetic() that must be specified if the arithmetic operators are desired.
-
- 04 Nov, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 03 Nov, 2016 1 commit
-
-
Ivan Smirnov authored
* Add type caster for std::experimental::optional * Add tests for std::experimental::optional * Support both <optional> / <experimental/optional> * Mention std{::experimental,}::optional in the docs
-
- 24 Oct, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 20 Oct, 2016 2 commits
-
-
Dean Moldovan authored
-
Dean Moldovan authored
-