-
Notifications
You must be signed in to change notification settings - Fork 118
feat: python based catalog and schema provider #1156
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
feat: python based catalog and schema provider #1156
Conversation
FYI @renato2099 getting the python based providers ended up being a blocking issue for some of my work so I took a stab at implementing it. Please tell me what you think if you have some time. |
dc715fe
to
2584075
Compare
Hi @timsaucer , I am sorry I wasn't able to complete this in time, but I had it still on my radar. I pushed my version yesterday after the holidays :) #1137 and after a quick look at your PR, it seems they are relatively similar. |
Hi @timsaucer , thanks for pushing on this, I think the main difference is that you are extending the That said I don't have a feel what datafusion-python users might find better, i.e., more rigid+"clearer" APIs vs more fluid+a bit less clearer API by accepting different object types (catalogs and catalog_providers when registering providers). Maybe it is more pythonic to accept different object types? PR looks good to me overall though, thanks again! and sorry for the delay on my side :( |
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.
Thank you @timsaucer and @renato2099 🚀
ca3cb36
to
a6baba1
Compare
Which issue does this PR close?
Closes #1091
Rationale for this change
This PR builds on top of #1137 and adds python based schema and catalog providers.
What changes are included in this PR?
Creates wrapper types around python based schema and catalog providers.
Adds checks for when we are going python->rust->python and short circuit to return the python original object rather than wrapper.
Adds unit test
Are there any user-facing changes?
No
Status
Leaving as draft until the following are complete: