-
Notifications
You must be signed in to change notification settings - Fork 124
deps: pandas-gbq is currently incompatible with pandas 3.0.0 #996
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
Conversation
Summary of ChangesHello @tswast, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses a known incompatibility between the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request correctly pins the maximum pandas version to <3.0.0 in setup.py to prevent installation with the incompatible pandas 3.0.0 release. This is a good and necessary change. I have added one suggestion to also include a runtime check for the pandas version. This would improve robustness by providing a clear error message to users who might bypass pip's dependency checks, following a pattern already established in this repository for other dependencies.
| "db-dtypes >=1.0.4,<2.0.0", | ||
| "numpy >=1.18.1", | ||
| "pandas >=1.1.4", | ||
| "pandas >=1.1.4, <3.0.0", |
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.
While pinning the dependency here is correct, for added robustness it's good practice to also add a runtime check. This prevents issues if dependency constraints are bypassed during installation (e.g., with pip install --no-deps).
This project already has a pattern for this for the google-cloud-bigquery dependency (see lines 37-39 and the implementation in pandas_gbq/features.py).
I recommend adding a similar check for the pandas version. You could add a check in pandas_gbq/features.py to raise an ImportError if pandas>=3.0.0 is detected.
For example, you could add something like this to pandas_gbq/features.py and call it on package import:
PANDAS_MAXIMUM_VERSION = "3.0.0"
# ... in Features class ...
def pandas_check_version_is_compatible(self):
import packaging.version
max_version = packaging.version.parse(PANDAS_MAXIMUM_VERSION)
if self.pandas_installed_version >= max_version:
raise ImportError(
f"pandas-gbq is not compatible with pandas>={PANDAS_MAXIMUM_VERSION}. "
f"Installed version: {self.pandas_installed_version}"
)A corresponding unit test in tests/unit/test_features.py would also be needed.
Needs testing with the prerelease.
🦕