Skip to content
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(dependencies): pandas and numpy are now optional for non-backend installs #9564

Merged
merged 21 commits into from
Aug 7, 2024

Conversation

cpcloud
Copy link
Member

@cpcloud cpcloud commented Jul 13, 2024

Attempt to make pandas and numpy optional dependencies for installs that do not require a backend. Depends on #9552.

Closes #8430.

@cpcloud cpcloud added the dependencies Issues or PRs related to dependencies label Jul 13, 2024
@cpcloud cpcloud changed the title optional numpy and pandas refactor(dependencies): optional numpy and pandas Jul 13, 2024
Copy link
Contributor

ACTION NEEDED

Ibis follows the Conventional Commits specification for release automation.

The PR title and description are used as the merge commit message.

Please update your PR title and description to match the specification.

@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch 7 times, most recently from ff0ce67 to 13f24be Compare July 14, 2024 01:23
@cpcloud
Copy link
Member Author

cpcloud commented Jul 14, 2024

cc @jonmmease

After this PR, you should be able to get an Ibis installation with none of the heavier dependencies, resulting in an install size of less than 30 MB.

@jonmmease
Copy link

Very cool! What features will work with the minimal dependencies with this PR?

Will it be possible to perform sql generation for dialects (like BigQuery) without installing the execution dependencies?

@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch from aa67c58 to d9f4479 Compare July 14, 2024 15:58
@cpcloud
Copy link
Member Author

cpcloud commented Jul 14, 2024

Will it be possible to perform sql generation for dialects (like BigQuery) without installing > the execution dependencies?

Not yet :)

But that's the next step, just need to move the compilers out of the individual backends.

@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch 2 times, most recently from 2108d85 to ed72a0f Compare July 15, 2024 13:54
@cpcloud cpcloud marked this pull request as ready for review July 15, 2024 16:22
gforsyth pushed a commit that referenced this pull request Jul 16, 2024
…e burden of pytest collection hook (#9606)

Increase the lower bound of pyspark to avoid a big hack in test
collection. Also reduces hacking around numpy imports when making those
optional in #9564.
@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch 3 times, most recently from 1e3f35d to 81d4d14 Compare July 16, 2024 14:50
@MarcoGorelli MarcoGorelli mentioned this pull request Jul 18, 2024
1 task
@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch from 81d4d14 to 7aaab09 Compare July 23, 2024 12:22
@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch 2 times, most recently from ae4ecb7 to 7d0c00a Compare August 2, 2024 15:18
@cpcloud
Copy link
Member Author

cpcloud commented Aug 2, 2024

Is anyone opposed to this?

To be clear, if you install a backend you still get pyarrow, numpy, and pandas.

This PR makes it possible for pip install ibis-framework without extras to be super light, so that people can use just the expression system and compilers.

@cpcloud cpcloud requested review from gforsyth and jcrist August 2, 2024 16:08
@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch from 7d0c00a to 5029b22 Compare August 4, 2024 13:01
ibis/backends/sqlite/__init__.py Outdated Show resolved Hide resolved
@cpcloud cpcloud force-pushed the optional-numpy-and-pandas branch from 5fa2705 to 6c6a748 Compare August 7, 2024 16:17
@cpcloud cpcloud added the ci-run-cloud Add this label to trigger a run of BigQuery, Snowflake, and Databricks backends in CI label Aug 7, 2024
@ibis-docs-bot ibis-docs-bot bot removed the ci-run-cloud Add this label to trigger a run of BigQuery, Snowflake, and Databricks backends in CI label Aug 7, 2024
@cpcloud cpcloud changed the title refactor(dependencies): optional numpy and pandas refactor(dependencies): pandas and numpy are now optional for non-backend installs Aug 7, 2024
@cpcloud cpcloud merged commit cff210a into ibis-project:main Aug 7, 2024
89 checks passed
@cpcloud cpcloud deleted the optional-numpy-and-pandas branch August 7, 2024 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Issues or PRs related to dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: make pandas/pyarrow/numpy optional dependencies
5 participants