Wenzel Jakob
c1fc27e2b5
use detail::enable_if_t everywhere
2016-09-19 13:45:34 +02:00
Ivan Smirnov
f2a0ad5855
array: add direct data access and indexing methods
2016-09-10 16:24:00 +01:00
Ivan Smirnov
91b3d681ad
Expose some dtype/array attributes via NumPy C API
2016-09-10 16:24:00 +01:00
Wenzel Jakob
a3906778eb
minor: renamed argument in array constructor
2016-08-28 01:55:07 +02:00
Ivan Smirnov
d8b11b8708
Fix dtype::strip_padding() on Intel compiler
2016-08-25 21:52:52 +01:00
Wenzel Jakob
9a777a263d
numpy.h: fix test suite issues on the Intel Compiler
2016-08-25 02:18:00 +02:00
Ivan Smirnov
1c8828fe8f
Fix int_ shadowing problem in detail namespace
...
If operators.h is included, int_ function in the `detail`
namespace will shadow pybind11::int_ type, so the fully qualified
name has to be used.
2016-08-25 00:33:02 +01:00
Ivan Smirnov
67b3daeea4
Always decay type param of npy_format_descriptor
2016-08-15 18:41:54 +01:00
Ivan Smirnov
edbd4cb0a7
Decay const qualifiers in is_pod_struct<>
2016-08-15 18:41:54 +01:00
Ivan Smirnov
03fb488579
format_descriptor::format() now yields std::string
...
This is required since format descriptors for string types that
were using PYBIND11_DESCR were causing problems on C++14 on Linux.
Although this is technically a breaking change, it shouldn't cause
problems since the only use of format strings is passing them to
buffer_info constructor which expects std::string.
Note: for non-structured types, the const char * value is still
accessible via ::value for compatibility purpose.
2016-08-15 00:40:29 +01:00
Ivan Smirnov
61e3b0bd15
Use builtin str type for recarray field names
2016-08-13 12:51:31 +01:00
Ivan Smirnov
ad5ca6d4e6
Added dtype from const char pointer ctor
2016-08-13 12:43:16 +01:00
Ivan Smirnov
c6257f8641
Allow nullptr in array ctors wherever possible
2016-08-13 12:43:16 +01:00
Ivan Smirnov
6636ae9d4e
Also add the new ctors to py::array_t
2016-08-13 12:43:16 +01:00
Ivan Smirnov
6bb0ee1186
Add all possible ctors for py::array
2016-08-13 12:43:16 +01:00
Ivan Smirnov
d77bc8c343
Add dtype(names, offsets, formats, itemsize) ctor
2016-08-13 12:43:16 +01:00
Ivan Smirnov
fc5620afa6
Fix a segfault where func object wasn't released
2016-08-13 12:43:16 +01:00
Ivan Smirnov
01f7409550
Initial implementation of py::dtype
2016-08-13 12:43:16 +01:00
Ivan Smirnov
05cb58ade2
Cleanup: move numpy API bindings out of py::array
2016-08-13 12:43:16 +01:00
Ivan Smirnov
afb07e7e92
Code reordering / cleanup only
2016-08-13 12:43:16 +01:00
Ivan Smirnov
f9c0defed7
Add numpy wrappers for char[] and std::array<char>
2016-08-13 12:43:16 +01:00
Ivan Smirnov
103d5eadc3
Remove redundant definition
2016-08-13 12:43:16 +01:00
Ivan Smirnov
098f9aef73
Replace 4096B format buffer with std::string
2016-08-13 12:43:16 +01:00
Ivan Smirnov
b37985ee0c
Fix a comment and wrong indentation
2016-08-13 12:43:16 +01:00
Ivan Smirnov
41c3399021
Update npy_format_descriptor::name()
2016-08-13 12:43:16 +01:00
Ivan Smirnov
076b953ccd
Restore dtype equivalence sanity check
2016-08-13 12:43:16 +01:00
Ivan Smirnov
8f2f7cd61c
Various cleanup
2016-08-13 12:43:16 +01:00
Ivan Smirnov
8fa09cb871
Strip padding fields in dtypes, update the tests
2016-08-13 12:43:16 +01:00
Ivan Smirnov
13022f1b8c
Bugfix: pass struct size as itemsize to descriptor
...
Without this, partially bound structs will have incorrect itemsize.
2016-08-13 12:43:16 +01:00
Ivan Smirnov
eeb4c043f9
Change field descriptor offset type to size_t
2016-08-13 12:43:16 +01:00
Ivan Smirnov
511401599c
Use malloc insterad of calloc for numpy arrays
2016-08-13 12:43:16 +01:00
Ivan Smirnov
5412a05cf0
Rename PYBIND11_DTYPE to PYBIND11_NUMPY_DTYPE
2016-08-13 12:43:16 +01:00
Ivan Smirnov
872bd92575
Use proper type for an int literal
2016-08-13 12:43:16 +01:00
Ivan Smirnov
4c9a160a1d
Exclude double type from is_pod_struct
2016-08-13 12:43:16 +01:00
Ivan Smirnov
3b803846d5
Add a few comments throughout numpy.h
2016-08-13 12:43:16 +01:00
Ivan Smirnov
2f01f01866
Always allocate at least one element
2016-08-13 12:43:16 +01:00
Ivan Smirnov
b38ca22e94
Add a few braces for clarity
2016-08-13 12:43:16 +01:00
Ivan Smirnov
95545e6256
Change PB11_IMPL prefix to PYBIND11, add comment
2016-08-13 12:43:16 +01:00
Ivan Smirnov
7bdd74a9fb
Fix PYBIND11_DTYPE to work with MSVC compiler
2016-08-13 12:43:16 +01:00
Ivan Smirnov
5dc6c5445d
Cosmetic: fix indentation
2016-08-13 12:43:16 +01:00
Ivan Smirnov
73f56830f8
Add detail::is_pod_struct<T> helper
2016-08-13 12:43:16 +01:00
Ivan Smirnov
a0e37f250e
npy_format_descriptor::format() - fail if unbound
2016-08-13 12:43:16 +01:00
Ivan Smirnov
5a47a16e47
Revert accidental whitespace change
2016-08-13 12:43:16 +01:00
Ivan Smirnov
40eadfeb73
Make npy_format_descriptor backwards-compat
...
The typenum for non-structured types is still accessible at ::value,
and the dtype object for all types is accessible at ::dtype().
2016-08-13 12:43:16 +01:00
Ivan Smirnov
95e9b12322
Prefix the FIELD_DESCRIPTOR macro
2016-08-13 12:43:16 +01:00
Ivan Smirnov
5e71e17bdf
Make changes to format_descriptor backwards-compat
...
The format strings that are known at compile time are now accessible
via both ::value and ::format(), and format strings for everything
else is accessible via ::format(). This makes it backwards compatible.
2016-08-13 12:43:16 +01:00
Ivan Smirnov
4f164217e4
Add dtype_of<T>() function, update the tests
2016-08-13 12:43:16 +01:00
Ivan Smirnov
036e8cd32f
Remove erroneous py:: prefix in numpy.h
2016-08-13 12:43:16 +01:00
Ivan Smirnov
873d267471
Prefix all macros in numpy.h to avoid name clashes
2016-08-13 12:43:16 +01:00
Ivan Smirnov
1f54cd9209
Use object instead of ptrs in numpy descriptors
2016-08-13 12:43:16 +01:00
Ivan Smirnov
2a7acb6d55
Incref descriptors properly when creating arrays
2016-08-13 12:43:16 +01:00
Ivan Smirnov
f5b166d042
Simplify npy_format_descriptor slightly
2016-08-13 12:43:16 +01:00
Ivan Smirnov
80a3785a66
Borrow field descriptors for recarray dtype
2016-08-13 12:43:16 +01:00
Ivan Smirnov
2e1565e414
Add empty recarray test, check for calloc fail
2016-08-13 12:43:16 +01:00
Ivan Smirnov
f10c84eb9b
Release format descriptor args before converting
2016-08-13 12:43:16 +01:00
Ivan Smirnov
2488b32066
Add PYBIND11_DTYPE macro for registering dtypes
2016-08-13 12:43:16 +01:00
Ivan Smirnov
fab02efb10
Switch away from typenums for numpy descriptors
2016-08-13 12:43:16 +01:00
Ivan Smirnov
a67c2b52e4
Use memoryview for constructing array from buffer
2016-08-13 12:43:16 +01:00
Ivan Smirnov
ea2755ccdc
Use a macro for numpy API definitions
2016-08-13 12:43:16 +01:00
Ivan Smirnov
42ad328481
Change format_descriptor::value to a static func
2016-08-13 12:43:16 +01:00
Ivan Smirnov
3dd325b772
Change npy_format_descriptor typenum to static fn
2016-08-13 12:43:16 +01:00
Dean Moldovan
ed23dda93b
Adopt PEP 484 type hints for C++ types exported to Python
2016-08-04 23:47:07 +02:00
Wenzel Jakob
0a07805ab6
fixed many conversion warnings on clang
2016-05-29 13:40:40 +02:00
Wenzel Jakob
b47a9de035
ability to prevent force casts in numpy arguments
2016-05-19 16:02:09 +02:00
Johan Mabille
a63d93ba44
constructor fix
2016-05-11 15:03:16 +02:00
Johan Mabille
a580ed8c47
Compilation issue fixed
2016-05-11 14:45:01 +02:00
Wenzel Jakob
9e0a0568fe
transparent conversion of dense and sparse Eigen types
2016-05-05 21:44:29 +02:00
Wenzel Jakob
f1032df891
only do numpy contiguous C/Fortran array conversion when explicitly requested
2016-05-05 10:00:00 +02:00
Wenzel Jakob
876eeab4ca
redesigned format_descriptor<> and npy_format_descriptor<>
...
This somewhat heavyweight solution will avoid size_t/long long/long/int
mismatches on various platforms once and for all. The previous template
overloads could e.g. not handle size_t on Darwin.
One gotcha: the 'format_descriptor<T>::value()' syntax changed to just
'format_descriptor<T>::value'
2016-05-04 22:36:57 +02:00
Wenzel Jakob
8cb6cb33ef
minor cleanups in common.h; updated author info and copyright year
2016-04-18 10:53:38 +02:00
Wenzel Jakob
d6e4cef65f
minor formatting changes, removed missing header files referenced in setup.py
2016-02-20 12:17:17 +01:00
Johan Mabille
1dc960c37f
NumPy-style broadcasting support in pybind11::vectorize
2016-02-20 12:14:52 +01:00
Wenzel Jakob
48548ea4a5
general cleanup of the codebase
...
- 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
2016-01-17 22:31:15 +01:00
Wenzel Jakob
e45b29047a
numpy.h: fixed a leak, added some comments to buffer_info
2016-01-17 22:31:15 +01:00
Wenzel Jakob
d33361a6d7
moved lifetime management of Py_buffer to pybind11::buffer_info, renamed count->size to match NumPy naming ( fixes #34 )
2016-01-17 22:31:15 +01:00
Wenzel Jakob
87187afe91
switch NumPy array to object API, avoid unnecessary copy operation in vectorize
2016-01-17 22:31:15 +01:00
Wenzel Jakob
87dfad6544
avoid naming clashes with numpy ( fixes #36 )
2016-01-17 22:31:15 +01:00
Wenzel Jakob
56e9f4942b
improved signature names for subclasses of pybind11::handle
2016-01-17 22:31:15 +01:00
Wenzel Jakob
4c1a6be4bd
minor cleanups in numpy.h, updated gitignore file for ninja
2016-01-17 22:31:15 +01:00
Tomasz Miąsko
875df5528d
Make handle and related classes const correct.
...
This gives handle classes a typical pointer semantics with respects to
constness.
2015-12-28 08:11:16 +01:00
Wenzel Jakob
d1a24823bc
considerable simplifications to the Python type casters
2015-12-16 12:17:46 +01:00
Jan Dohl
ab92eb3765
Fixed py:array constructor from failing for complex types
...
The array(const buffer_info &info) constructor fails when given
complex types since their format string is 'Zd' or 'Zf' which has
a length of two and causes an error here:
if (info.format.size() != 1)
throw std::runtime_error("Unsupported buffer format!");
Fixed by allowing format sizes of one and two.
2015-12-15 04:16:49 +01:00
Wenzel Jakob
b1b714023a
consistent macro naming throughout the project
2015-10-18 16:48:30 +02:00
Wenzel Jakob
8f4eb00690
last breaking change: be consistent about the project name
2015-10-15 18:23:56 +02:00