-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
refactor: Split py-polars
crate
#18204
Conversation
ba9327b
to
9d1bdc8
Compare
In the |
Can we put them in a separate folder and feature gate them? As a consumer of the |
CodSpeed Performance ReportMerging #18204 will degrade performances by 31.95%Comparing Summary
Benchmarks breakdown
|
Will do! |
b31d64e
to
25640ab
Compare
@ritchie46 Updated to keep the allocator logic in CI failures unrelated (see #18211) |
Ai.. conflicts are already happening. :( Can you rebase? |
405050b
to
7f71c77
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #18204 +/- ##
==========================================
- Coverage 80.29% 80.27% -0.02%
==========================================
Files 1497 1499 +2
Lines 198741 198741
Branches 2837 2837
==========================================
- Hits 159570 159549 -21
- Misses 38644 38665 +21
Partials 527 527 ☔ View full report in Codecov by Sentry. |
@ritchie46 Done! I also have the feature gates done, will make a PR after this one. |
Nice! Then I can remove a lot of code in |
This PR splits the
py-polars
crate into two crates:cdylib
crate for exporting the dynamic library which enables Python PolarsThe motivation behind this split is that we will need to re-use some of the Python functionality for use on Polars Cloud workers, e.g. executing Python UDFs.
In practice, almost all functionality has moved to the 'regular' crate under
crates/polars-python
. Thepy-polars
crate is just the#[pymodule]
definition. We initially wanted to define the classes (e.g.PyDataFrame
) in the reusable crate and implement their methods in the library crate, but this does not seem possible due to how the PyO3 proc macro interacts with the Rust orphan rule.So we're just going to have pretty much everything under
crates/polars-python
.Open question:
crates/polars-python
crate but I'm not sure that will work correctly now for the Python Polars wheels.