[WIP] No subclasses refactor#435
Closed
cgarciae wants to merge 6 commits into
Closed
Conversation
Contributor
Author
|
@dorisjlee Current status:
|
Member
|
Thanks for the update, that sounds great @cgarciae! Glad to hear that we don't need to patch up Let me know when you want me to take a look at this patch, happy to go through and play around with this if it would be helpful! |
Contributor
Author
|
Closed in favor of #437 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The idea of this PR is to:
LuxDataFrame,LuxSeries, etcpandas.DataFrameclass (and all other internal references to it) with their Lux counterpart e.g.:Current behaviour can be surprising to the user and it makes supporting new versions harder as you might have to deal with more edge cases because the impact of the modifications is so large. Instead the idea is to some lightweight monkey patching of fiew core methods (which mostly do bookkeeping) and move the rest to out of the DataFrame class to avoid possible conflicts. A lot of discussion and possible iteration is needed. These are the current efforts:
Ongoing changes
LuxDataFrameas a class is removed, instead key methods of interest formpandas.DataFrameare patched.LuxDataFrameis now aProtocolthat is there only for possible validation and type inference purposes.@patch(cls)decorator, this replaces the method on the class but the original method is still available as._super_{method_name}, e.g:.luxproperty that includes all lux extension methods is created. Its very similar to the existing.strand.dtfunctionality already present in pandas, here is an example usage: