Casters for strided_views, array_adaptor, and tensor_adaptor #243
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR partly solves #130 by adding pybind11 type casters for
strided_viewsandarray/tensor_adapters.As for
xarraysandxtensors, those objects are casted tondarrayand do not use any proxy object (such aspyarrayorpytensor): I did a bit of refactoring to put all those casters in a dedicated file.Memory management becomes of course trickier with such objects. I have the impression that what is done in
xtensor_type_caster_baseto handle return value policies is generic enough to fit these cases but I am not totally sure. I tried to demonstrate critical cases in the test file (cpp main). The tests validating the correctness of the memory management (keep alive policies) are perhaps not very interesting for regression detection has they focus on pybind11 mechanism rather than xtensor_python and could probably be removed.