-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extract simple features-like interface into a C++ only API #165
Conversation
Codecov Report
@@ Coverage Diff @@
## main #165 +/- ##
==========================================
- Coverage 94.75% 93.71% -1.04%
==========================================
Files 42 50 +8
Lines 3220 3471 +251
==========================================
+ Hits 3051 3253 +202
- Misses 169 218 +49
Continue to review full report at Codecov.
|
@edzer This is a pretty big change! The gist of it is that everything in the R package is now R-specific, and anything that didn't need R is now separated out (into something that will eventually live in its own repo). We had excellent test coverage before (and I added a bit of test coverage as I went and noticed that some cases weren't tested), but there's still a chance that some wires got crossed. Would you prefer to check this before I merge into |
This is a bit ambitious, but was inspired by Python folks interested in having some of these operations accessible from Python (see geopandas/community#10). The approach here is to use C++ rather than define a C API, although a C API could probably be wrapped around it if C linking were ever needed.
In addition to potentially benefiting the Python community, I'm hoping that having a wider community interested in helping to maintain the C++ that interfaces with S2 since I am admittedly a self-taught plumber in the world of compiled code.
I think I found a good way to do this piecemeal while keeping the tests passing (define a
NewGeography()
method and use it on a growing number of functions). I'm pleasantly surprised at how well this went for the accessors, which are the hardest because they often require access to the underlying data (and the new API obscures the underlying data and relies mostly on the Shape and Region interfaces).