-
Notifications
You must be signed in to change notification settings - Fork 150
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
Updated binpred architecture #1009
Updated binpred architecture #1009
Conversation
…/cuspatial into feature/new_binpred_architecture
I'd love to get this approved ASAP as my intersection work will all depend on it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool, pretty nice cleanup from current code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of design / naming considerations only, for now. Overall I like the direction, just think one layer could be collapsed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using double dispatch is a big improvement. Thanks for simplifying the class hierarchy.
/merge |
Closes #1015 Depends on #1009 This PR implements `intersects` and all of the feature combinations that depend exclusively on intersects, as listed in #1015. Authors: - H. Thomson Comer (https://github.com/thomcom) Approvers: - Michael Wang (https://github.com/isVoid) URL: #1016
Description
The last couple of PRs were very brittle w.r.t updating their functionality. This PR eliminates some of that brittleness by adding object inheritance for every combination of features for every binary predicate. Class choice is handled by type dispatching on the input columns.
The operation stack (
_preprocess
,_op
, and_postprocess
) is now chained to make debugging easier. Instead of calling the operations in sequence, they call one another.Refactoring the existing modules to use the new architecture was trivial. I'm still interested in modifying the architecture so that the set operations that determine the final result are identifiable, and possibly composable.
Checklist