apache / datafusion-python

Apache DataFusion Python Bindings
https://datafusion.apache.org/python
Apache License 2.0
321 stars 64 forks source link

Draft: Add pyi stubs for type hinting #709

Closed timsaucer closed 1 month ago

timsaucer commented 1 month ago

Which issue does this PR close?

This PR does not close an issue, but it aims to address part of the discussion in https://github.com/apache/datafusion-python/issues/440 . This takes the excellent work in https://github.com/3ok/datafusion-stubs and imports two of the stubs they have written, context and dataframe. By adding these stubs we get much better user documentation for SessionConfig, SessionContext, and DataFrame. You can see the hover text for an IDE below.

Rationale for this change

Getting into DataFusion as a new user can be difficult when using the python interface because we do not have good type hinting from function calls. This PR adds these features for a couple of the major uses.

What changes are included in this PR?

This PR adds two pyi files and updates the associated init.py file to include them.

Are there any user-facing changes?

Users can now get useful hover text in IDEs. There are no API changes.

Screenshot 2024-05-18 at 9 57 52 PM