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 is a massive experiment wherein I add a new Python native extension
ecl._native
written in C++ using pybind11.I'd like us to use something along these lines for future C++ Pythonic code. My goal also is to have a unified API for Python and C++. That is, my hopes are:
It should be possible to create pybind11 converters between libecl types such as
stringlist_type
,std::vector<std::string>
andList[str]
, so that it's easier to avoid using cwrap'sPrototype
s in favour of simply specifying the function in pybind.Eg, instead of
we can do this in C++ directly:
The difficulty here is that pybind's C++ classes specifically don't expose Python functionality like
self
. That is, they're mostly C++ class wrappers. This is fine if we can convert all the cwrap functionality out of the Python classes.In order to accomplish these things I've bumped the C++ standards version to 17 (up from 11) and CMake to 3.12 (up from 2.8). Will investigate whether we can lower the C++ standard to 14, although I don't particularly want this.
TODO:
ecl_sum_init_double_vector
ecl_sum_init_double_vector_interp
ecl_sum_init_double_frame
: Pandas DataFrame versionecl_sum_init_double_frame_interp
: Pandas DataFrame versionResolves: #797