-
Notifications
You must be signed in to change notification settings - Fork 175
feat: Support pandas 3.0 upcoming changes #2133
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
base: main
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is ❌ Your project check has failed because the head coverage (79.72%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.
Additional details and impacted files@@ Coverage Diff @@
## main #2133 +/- ##
==========================================
- Coverage 85.42% 79.72% -5.70%
==========================================
Files 46 46
Lines 7081 7098 +17
==========================================
- Hits 6049 5659 -390
- Misses 1032 1439 +407
|
aaa5cc7
to
f816c29
Compare
TODO:
storage
in data as well?0.13
milestonepd.options.future.infer_string=True
/pandas>=3
by adding tests for everything that might break withfuture.infer_string=True
together with (implicitly or explicitly)allow_write_nullable_strings
set, and augmenting the error message that’s shown if the latter isFalse
pandas
’ version >=3, changeallow_write_nullable_strings=False
to mean “try writing them as non-nullable and fail only if we can’t”allow_write_nullable_strings
’ default to TrueThis activates the following settings as described in https://pandas.pydata.org/docs/whatsnew/v2.3.0.html
future.infer_string = True
This one causes many test failures we need to fix.
Mostly because
ArrowStringArrayNumpySemantics
isn’t apd.arrays.StringArray
mode.copy_on_write = True
Weirdly, this doesn’t cause any test failures! According to the docs it implies
mode.chained_assignment = "raise"
, but the warning we suppressed in #545 doesn’t get elevated to an exception. And tests liketest_base.py::test_slicing_*
still pass. Maybe everything is fine?We could also do
pd.options.mode.copy_on_write = "warn"
as the docs say …