Expose the correct namespaces for Python modules #751
+119
−75
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.
Currently, in the
datafusion
module there is no match between whatdir()
returns, and what's actually inside the module. For example:With this PR, I basically show what is part of the module, and I hide what's being displayed now as a side effect:
Personally, instead of exposing just the
_internal
module from PyO3, I would create all these modules and submodules directly from PyO3. I'd use_datafusion
as the main module, but instead of having acommon.py
file, the_datafusion.common
submodule would be created directly from PyO3. So, all this magic of__getattr__
and__dir__
is not needed. @andygrove is there a reason why this wasn't implemented like this?Also, I don't think it's a good practice to have everything in the main namespace. I think it's fine that for examples users have to use
datafusion.expr.IsTrue
instead ofdatafusion.IsTrue
.