- 19 Sep, 2016 5 commits
-
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
- 16 Sep, 2016 1 commit
-
-
The custom exception handling added in PR #273 is robust, but is overly complex for declaring the most common simple C++ -> Python exception mapping that needs only to copy `what()`. This add a simpler `py::register_exception<CppExp>(module, "PyExp");` function that greatly simplifies the common basic case of translation of a simple CppException into a simple PythonException, while not removing the more advanced capabilities of defining custom exception handlers.
Jason Rhinelander committed
-
- 13 Sep, 2016 1 commit
-
-
Debug build and fix
Wenzel Jakob committed
-
- 12 Sep, 2016 2 commits
-
-
Take load_type by nested type_caster template arguments instead of by full type_caster type.
Jason Rhinelander committed -
Jason Rhinelander committed
-
- 11 Sep, 2016 10 commits
-
-
Added a test to detect invalid RTTI caching
Wenzel Jakob committed -
The current inheritance testing isn't sufficient to detect a cache failure; the test added here breaks PR #390, which caches the run-time-determined return type the first time a function is called, then reuses that cached type even though the run-time type could be different for a future call.
Jason Rhinelander committed -
Add a way to deal with copied value references
Wenzel Jakob committed -
Jason Rhinelander committed
-
Jason Rhinelander committed
-
Fix Python C API calls in desctuctors triggered by error_already_set
Wenzel Jakob committed -
parameterize iterators by return value policy (fixes #388)
Wenzel Jakob committed -
This adds a static local variable (in dead code unless actually needed) in the overload code that is used for storage if the overload is for some convert-by-value type (such as numeric values or std::string). This has limitations (as written up in the advanced doc), but is better than simply not being able to overload reference or pointer methods.
Jason Rhinelander committed -
Minor change that makes this example more compliant with the C++ Core Guidelines.
Jason Rhinelander committed -
"trampoline" is doubled in the first sentence.
Jason Rhinelander committed
-
- 10 Sep, 2016 13 commits
-
-
Add array methods via C API
Wenzel Jakob committed -
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Dean Moldovan committed
-
This clears the Python error at the error_already_set throw site, thus allowing Python calls to be made in destructors which are triggered by the exception. This is preferable to the alternative, which would be guarding every Python API call with an error_scope. This effectively flips the behavior of error_already_set. Previously, it was assumed that the error stays in Python, so handling the exception in C++ would require explicitly calling PyErr_Clear(), but nothing was needed to propagate the error to Python. With this change, handling the error in C++ does not require a PyErr_Clear() call, but propagating the error to Python requires an explicit error_already_set::restore(). The change does not break old code which explicitly calls PyErr_Clear() for cleanup, which should be the majority of user code. The need for an explicit restore() call does break old code, but this should be mostly confined to the library and not user code.
Dean Moldovan committed -
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Implement py::init_alias<>() constructors
Wenzel Jakob committed -
operators should return NotImplemented given unsupported input (fixes #393)
Wenzel Jakob committed -
Wenzel Jakob committed
-
apt-get tweaks for the docker/debian builds
Wenzel Jakob committed -
- Try to update and upgrade twice (with a brief pause between attempts) to deal with occassional spurious server failures or repository race conditions. Do the same for the main package install. - Use dist-upgrade instead of upgrade for updating the image - Add -q to the upgrade and install commands to make apt less verbose.
Jason Rhinelander committed
-
- 09 Sep, 2016 1 commit
-
-
This commit adds support for forcing alias type initialization by defining constructors with `py::init_alias<arg1, arg2>()` instead of `py::init<arg1, arg2>()`. Currently py::init<> only results in Alias initialization if the type is extended in python, or the given arguments can't be used to construct the base type, but can be used to construct the alias. py::init_alias<>, in contrast, always invokes the constructor of the alias type. It looks like this was already the intention of `py::detail::init_alias`, which was forward-declared in 86d825f3, but was apparently never finished: despite the existance of a .def method accepting it, the `detail::init_alias` class isn't actually defined anywhere. This commit completes the feature (or possibly repurposes it), allowing declaration of classes that will always initialize the trampoline which is (as I argued in #397) sometimes useful.
Jason Rhinelander committed
-
- 08 Sep, 2016 7 commits
-
-
Small template simplifications
Wenzel Jakob committed -
Switch count_t to use constexpr_sum (under non-MSVC), and then make all_of_t/any_of_t use it instead of doing the sum itself. For MSVC, count_t is still done using template recursion, but all_of_t/any_of_t can also make use of it.
Jason Rhinelander committed -
Fix type alias initialization
Wenzel Jakob committed -
Type alias for alias classes with members didn't work properly: space was only allocated for sizeof(type), but if we want to be able to put a type_alias instance there, we need sizeof(type_alias), but sizeof(type_alias) > sizeof(type) whenever type_alias has members.
Jason Rhinelander committed -
Wenzel Jakob committed
-
Fix ref heap casts
Wenzel Jakob committed -
error_already_set improvements
Wenzel Jakob committed
-