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
bf2510ee86
Make buffer_info::as_pybuffer a memoryview ctor
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
7709d6b77d
Add memoryview type
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
a7e62e1ca6
Add buffer_info::as_pybuffer() method
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
Jason Rhinelander
5aa85be26e
Added pybind11::make_key_iterator for map iteration
...
This allows exposing a dict-like interface to python code, allowing
iteration over keys via:
for k in custommapping:
...
while still allowing iteration over pairs, so that you can also
implement 'dict.items()' functionality which returns a pair iterator,
allowing:
for k, v in custommapping.items():
...
example-sequences-and-iterators is updated with a custom class providing
both types of iteration.
2016-08-11 21:22:05 -04:00
Jason Rhinelander
e20fc61a33
Silence MSVC warning
...
PR #329 generates the following warning under MSVC:
...\cast.h(202): warning C4456: declaration of 'it' hides previous local declaration
This renames the second iterator to silence it.
2016-08-11 16:23:23 -04:00
Jason Rhinelander
f2ecd8927e
Implement reference_internal with a keep_alive
...
reference_internal requires an `instance` field to track the returned
reference's parent, but that's just a duplication of what
keep_alive<0,1> does, so use a keep alive to do this to eliminate the
duplication.
2016-08-10 12:08:04 -04:00