- 18 Jan, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 17 Jan, 2016 29 commits
-
-
Wenzel Jakob authored
- new pybind11::base<> attribute to indicate a subclass relationship - unified infrastructure for parsing variadic arguments in class_ and cpp_function - use 'handle' and 'object' more consistently everywhere
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
fixed a terrible bug in def_property_static and switched to the faster PyObject_CallFunctionObjArgs API call
-
Wenzel Jakob authored
-
Wenzel Jakob authored
fully moved __pybind11__ Python attributes to the C++ side, cleanup & documentation pass over the main header file
-
Wenzel Jakob authored
-
Wenzel Jakob authored
moved lifetime management of Py_buffer to pybind11::buffer_info, renamed count->size to match NumPy naming (fixes #34)
-
Wenzel Jakob authored
-
Wenzel Jakob authored
Previously, pybind11 required classes using std::shared_ptr<> to derive from std::enable_shared_from_this<> (or compilation failures would ensue). Everything now also works for classes that don't do this, assuming that some basic rules are followed (e.g. never passing "raw" pointers of instances manged by shared pointers). The safer std::enable_shared_from_this<> approach continues to be supported.
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
This modification taps into some newer C++14 features (if present) to generate function signatures considerably more efficiently at compile time rather than at run time. With this change, pybind11 binaries are now *2.1 times* smaller compared to the Boost.Python baseline in the benchmark. Compilation times get a nice improvement as well. Visual Studio 2015 unfortunately doesn't implement 'constexpr' well enough yet to support this change and uses a runtime fallback.
-
Wenzel Jakob authored
The cpp_function class accepts a variadic argument, which was formerly processed twice -- once at registration time, and once in the dispatch lambda function. This is not only unnecessarily slow but also leads to code bloat since it adds to the object code generated for every bound function. This change removes the second pass at dispatch time. One noteworthy change of this commit is that default arguments are now constructed (and converted to Python objects) right at declaration time. Consider the following example: py::class_<MyClass>("MyClass") .def("myFunction", py::arg("arg") = SomeType(123)); In this case, the change means that pybind11 must already be set up to deal with values of the type 'SomeType', or an exception will be thrown. Another change is that the "preview" of the default argument in the function signature is generated using the __repr__ special method. If it is not available in this type, the signature may not be very helpful, i.e.: | myFunction(...) | Signature : (MyClass, arg : SomeType = <SomeType object at 0x101b7b080>) -> None One workaround (other than defining SomeType.__repr__) is to specify the human-readable preview of the default argument manually using the more cumbersome arg_t notation: py::class_<MyClass>("MyClass") .def("myFunction", py::arg_t<SomeType>("arg", SomeType(123), "SomeType(123)"));
-
Wenzel Jakob authored
-
Wenzel Jakob authored
Add an include in cmake.rst
-
Ivan Smirnov authored
-
- 10 Jan, 2016 1 commit
-
-
Wenzel Jakob authored
Make handle and related classes const correct.
-
- 06 Jan, 2016 1 commit
-
-
Wenzel Jakob authored
Use object class to hold partially converted python objects.
-
- 02 Jan, 2016 1 commit
-
-
Tomasz Miąsko authored
Using object class to hold converted object automatically deallocates object if an exception is thrown or scope is left before constructing complete Python object. Additionally added method object::release() that allows to release ownership of python object without decreasing its reference count.
-
- 30 Dec, 2015 1 commit
-
-
Wenzel Jakob authored
-
- 28 Dec, 2015 3 commits
-
-
Wenzel Jakob authored
Clean the type name alone, not the whole message.
-
Tomasz Miąsko authored
-
Tomasz Miąsko authored
This gives handle classes a typical pointer semantics with respects to constness.
-
- 27 Dec, 2015 3 commits
-
-
Wenzel Jakob authored
Add const modifier to handle::cast.
-
Wenzel Jakob authored
Create an empty python tuple in pybind::tuple default constructor.
-
Tomasz Miąsko authored
Follow the same semantics as constructors of dict, list, and set by creating valid Python object in default constructor of a tuple class.
-