- 19 Mar, 2017 2 commits
-
-
py::arg() doesn't only specify named arguments anymore, so the error message was misleading (e.g. when using `py::arg().noconvert()` and forgetting `py::arg()` for a second positional argument).
Jason Rhinelander committed -
We now require (and enforce at compile time): - GCC 4.8+ - clang 3.3+ (5.0+ for Apple's renumbered clang) - MSVC 2015u3+ - ICC 15+ This also updates the versions listed in the README, and removes a now-redundant MSVC version check.
Jason Rhinelander committed
-
- 18 Mar, 2017 1 commit
-
-
This adds brief API documentation for make_iterator/make_key_iterator, specifically mentioning that it requires InputIterators. Closes #734. [skip ci] (no code change here)
Jason Rhinelander committed
-
- 17 Mar, 2017 5 commits
-
-
We can't support this for classes from imported modules (which is the primary purpose of a ctor argument base class) because we *have* to have both parent and derived to properly extract a multiple-inheritance base class pointer from a derived class pointer. We could support this for actual `class_<Base, ...> instances, but since in that case the `Base` is already present in the code, it seems more consistent to simply always require MI to go via template options.
Jason Rhinelander committed -
This puts the fold expressions behind the feature macro instead of a general C++17 macro. It also adds a fold expression optimization to constexpr_sum (guarded by the same feature macro).
Jason Rhinelander committed -
Fixes #738 The current check for conformability fails when given a 2D, 1xN or Nx1 input to a row-major or column-major, respectively, Eigen::Ref, leading to a copy-required state in the type_caster, but this later failed because the copy was also non-conformable because it had the same shape and strides (because a 1xN or Nx1 is both F and C contiguous). In such cases we can safely ignore the stride on the "1" dimension since it'll never be used: only the "N" dimension stride needs to match the Eigen::Ref stride, which both fixes the non-conformable copy problem, but also avoids a copy entirely as long as the "N" dimension has a compatible stride.
Jason Rhinelander committed -
Instead of relying on sometimes missing C++17 definitions
Jean-Michaël Celerier committed -
This adds VS 2017 to the build matrix, plus various other small appveyor build changes: - conda version bumped from 3.5 to 3.6 - build newer versions/architectures/python first (i.e. VS2017/x64/3.6 is the first build, VS2015/x86/2.7 is the last) - stop building after a job failure: often a build failure in one occurs everywhere; this just stops processing jobs (freeing them up for other PRs) if an error is hit. Annoyingly, appveyor doesn't allow excluding tests: i.e. the test matrix is always dense (appveyor issue 386), so for now we'll just run everything. (Once appveyor issue 386 is resolved, we can come back and cut this down to 4-5 builds).
Jason Rhinelander committed
-
- 16 Mar, 2017 2 commits
-
-
Fixes #731. Generally, this applies to any caster made with PYBIND11_TYPE_CASTER().
Dean Moldovan committed -
Wenzel Jakob committed
-
- 15 Mar, 2017 1 commit
-
-
Fixes #728.
Dean Moldovan committed
-
- 14 Mar, 2017 3 commits
-
-
Wenzel Jakob committed
-
Allows equivalent integral types and numpy dtypes
Patrick Stewart committed -
Allows use of vectors as python buffers, so for example they can be adopted without a copy by numpy.asarray Allows faster conversion of buffers to vectors by copying instead of individually casting the elements
Patrick Stewart committed
-
- 13 Mar, 2017 3 commits
-
-
* Add value_type member alias to py::array_t (resolve #632) * Use numpy scalar name in py::array_t function signatures (e.g. float32/64 instead of just float)
Dean Moldovan committed -
This won't affect much, but makes the code consistent with the non-copying branch.
Jason Rhinelander committed -
Fixes #697
Jason Rhinelander committed
-
- 12 Mar, 2017 4 commits
-
-
The `decltype(...)` in the template parameter that gives us SFINAE matching for a lambda makes MSVC 2017 ICE; this works around if by changing the test to an explicit not-a-function-or-pointer test, which seems to work everywhere.
Jason Rhinelander committed -
RTD updated their build environment which broke the 1.8.14.dev build of doxygen that we were using. The update also breaks the conda-forge build of 1.8.13 (but that version has other issues). Luckily, the RTD update did bring their doxygen version up to 1.8.11 which is enough to parse the C++11 code we need (ref qualifiers) and it also avoids the segfault found in 1.8.13. Since we're using the native doxygen, conda isn't required anymore and we can simplify the RTD configuration. [skip ci]
Dean Moldovan committed -
Some versions of Python 2.7 reportedly (#713) have issues with PyUnicode_Decode being passed the encoding string, so just skip it entirely by calling the PyUnicode_DecodeUTF* function directly. This will also be slightly more efficient by avoiding having to check the encoding string, and (for python 2) going through the unicode class's decode (python 3 fast-tracks this for all utf-{8,16,32} encodings; python 2 only fast-tracked for the exact string "utf-8", which we weren't passing anyway (we had "utf8")). This doesn't work for PyPy, however: its `PyUnicode_DecodeUTF{8,16,32}` appear rather broken: the UTF8 one segfaults, while the 16/32 require recasting into a non-const `char *` (and might segfault; I didn't get far enough to find out). Just avoid the whole thing by keeping the encoding-passed-as-string version for PyPy, which seems to work reliably.Jason Rhinelander committed -
The duration calculation was using %, but that's only supported on duration objects when the arithmetic type supports %, and hence fails for floats. Fixed by subtracting off the calculated values instead.
Jason Rhinelander committed
-
- 10 Mar, 2017 3 commits
-
-
This adds a linux docker clang 4.0 with libc++ and c++1z build.
Jason Rhinelander committed -
* Add `pytest.ini` config file and set default options there instead of in `CMakeLists.txt` (command line arguments). * Change all output capture from `capfd` (filedescriptors) to `capsys` (Python's `sys.stdout` and `sys.stderr`). This avoids capturing low-level C errors, e.g. from the debug build of Python. * Set pytest minimum version to 3.0 to make it easier to use new features. Removed conditional use of `excinfo.match()`. * Clean up some leftover function-level `@pytest.requires_numpy`.
Dean Moldovan committed -
Nightlies for pypy no longer run on Ubuntu 12.04; change the pypy build distribution to the travis-ci trusty (i.e. 14.04) beta container. The pypy build was also installing numpy and scipy for the *system* python version, which was pointless; this also adds a guard to the eigen/numpy/scipy install code with a !PYPY check.
Jason Rhinelander committed
-
- 08 Mar, 2017 1 commit
-
-
When using pybind::options to disable function signatures, user-defined docstrings only get appended if they exist, but newlines were getting appended unconditionally, so the docstring could end up with blank lines (depending on which overloads, in particular, provided docstrings). This commit suppresses the empty lines by only adding newlines for overloads when needed.
Jason Rhinelander committed
-
- 06 Mar, 2017 1 commit
-
-
This makes array_t respect overload resolution and noconvert by failing to load when `convert = false` if the src isn't already an array of the correct type.
Jason Rhinelander committed
-
- 04 Mar, 2017 2 commits
-
-
Remove extraneous `enum_` python constructor
Jason Rhinelander committed -
Added in 6fb48490 The second constructor can't be doing anything--the signatures are exactly the same, and so the first is always going to be the one invoked by the dispatcher.
Jason Rhinelander committed
-
- 03 Mar, 2017 2 commits
-
-
Expose enum_ entries as new "__members__" attribute
Jason Rhinelander committed -
Matthieu Bec committed
-
- 01 Mar, 2017 1 commit
-
-
Commit 11a337f1 added major and minor python version checking to cast.h but does not use the macros defined via the Python.h inclusion. This may be due to an intention to use the variables defined by the cmake module FindPythonInterpreter, but nothing in the pybind11 repo does anything to convert the cmake variables to preprocessor defines.
eirrgang committed
-
- 28 Feb, 2017 1 commit
-
-
Dean Moldovan committed
-
- 27 Feb, 2017 2 commits
-
-
Dean Moldovan committed
-
Dean Moldovan committed
-
- 26 Feb, 2017 6 commits
-
-
* The definition of `PySequence_Fast` is more restrictive on PyPy, so use the slow path instead. * `PyDict_Next` has been fixed in PyPy -> remove workaround.
Dean Moldovan committed -
Slightly reduces binary size (range for loops over tuple/list benefit a lot). The iterators are compatible with std algorithms.
Dean Moldovan committed -
The added type aliases are required by `std::iterator_traits`. Python iterators satisfy the `InputIterator` concept in C++.
Dean Moldovan committed -
Before this, `py::iterator` didn't do any error handling, so code like: ```c++ for (auto item : py::int_(1)) { // ... } ``` would just silently skip the loop. The above now throws `TypeError` as expected. This is a breaking behavior change, but any code which relied on the silent skip was probably broken anyway. Also, errors returned by `PyIter_Next()` are now properly handled.Dean Moldovan committed -
Wenzel Jakob committed
-
Fixes test failure on Fedora 25.
Jason Rhinelander committed
-