Skip to content

deps: widen pandas pin to <4 (pandas 3.0 compatible)#21

Merged
druvus merged 1 commit into
mainfrom
pandas3-migration
Jun 22, 2026
Merged

deps: widen pandas pin to <4 (pandas 3.0 compatible)#21
druvus merged 1 commit into
mainfrom
pandas3-migration

Conversation

@druvus

@druvus druvus commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

The pandas>=1.5,<3 ceiling was the last blocking version pin (the same class as the sklearn <1.9 pin removed earlier). pandas 3.0.3 is available.

Finding: no code changes needed

The codebase is already pandas-3 compatible. Static scan + runtime verification:

  • No applymap / df.append/Series.append (removed in 3.0).
  • One inplace=True, on a freshly-built local frame (results.sort_values) — not a Copy-on-Write footgun.
  • No object-dtype assumptions; no breakage from the new default string dtype.
  • Heaviest df path (filter/step2) runs clean with FutureWarning/DeprecationWarning treated as errors.

Verification under pandas 3.0.3

  • Fast suite 2177 passed; integration incl. golden-snapshot 34 passed; full clean-state 2219 passed, 0 failed, coverage 58.21%.

Change

  • pandas>=1.5,<3pandas>=1.5,<4 (conservative <major+1 ceiling, matching scikit-learn<2). CI installs the latest 3.x via the range, so pandas 3 is now exercised on every run — the durable regression guard, no extra test needed.

🤖 Generated with Claude Code

The pandas>=1.5,<3 ceiling was the last blocking version pin (mirrors the old
sklearn <1.9). The code is already pandas-3 compatible -- no changes needed:
no applymap/df.append (removed in 3.0), a single inplace=True on a fresh frame
(not a Copy-on-Write footgun), no object-dtype assumptions, and no new string-
dtype breakage. Verified under pandas 3.0.3: fast suite 2177, integration incl.
golden snapshot 34, filter path clean with Future/DeprecationWarning as errors,
full clean-state 2219 passed.

Widen to pandas>=1.5,<4 (keep a conservative major-version ceiling, as with
scikit-learn<2). CI now installs the latest 3.x via the range, so pandas 3 is
exercised on every run -- the durable regression guard.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@druvus druvus merged commit e386e3f into main Jun 22, 2026
8 checks passed
@druvus druvus deleted the pandas3-migration branch June 22, 2026 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant