Modernise to pandas 3, Python 3.14, and kaleido 1.3#68
Open
hmgaudecker wants to merge 3 commits into
Open
Conversation
…nts. Bump pandas to >=3, python to ~=3.14.0 (and requires-python to >=3.14), and replace the plain pypi kaleido with conda-forge python-kaleido>=1.3.0, which drops the old per-platform pin for the broken Windows kaleido 0.1.0.post1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Since pandas 3.0, Copy-on-Write and the pyarrow-backed default string dtype are enabled automatically, so the copy_on_write and infer_string options are removed from example notebooks, scripts, and slides (the plotly plotting backend stays). Cast to object before inserting the "..." ellipsis row in the dataframe display examples, which pandas 3.0 no longer accepts on numeric columns. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
This was referenced Jul 3, 2026
Add the .ai-instructions submodule over HTTPS and wire it in through AGENTS.md (tier-b-course profile plus the pytask module) with CLAUDE.md pointing at it. Run ty as a prek hook resolving imports from the pixi env, migrate the hook runner from pre-commit to prek, refresh the pinned hook revisions, and add a GitHub Actions workflow that builds the pages and runs ty, both on pixi 0.72.0. ty currently reports 17 pre-existing diagnostics; the hook is added now and the findings are left for a separate triage pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Modernises all environments and removes the pandas option boilerplate that pandas 3.0 makes obsolete.
Dependencies
Across the root
pyproject.toml, the toy-examplepyproject.tomlfiles underpython_installation_execution/, and the two condaenvironment.ymlfiles:pandas >= 3(lifts the old>=2.3,<3cap)python ~= 3.14.0/requires-python >= 3.14plotly >= 6.1.1,pyarrow >= 13kaleidoreplaced by condapython-kaleido >= 1.3.0Boilerplate removal
pandas 3.0 enables Copy-on-Write and a pyarrow-backed default string dtype automatically, so
pd.options.mode.copy_on_write = Trueandpd.options.future.infer_stringare removed from every example notebook,clean_data.py, and thewhat_is_pandasslide deck (pd.options.plotting.backend = "plotly"is kept). Thewhat_is_pandasandinspecting_and_summarizingdoc blocks are rewritten to state the 3.0 defaults. One genuine pandas 3.0 fix:dataframe_examples.ipynbcasts to object before assigning a string ellipsis row to numeric columns, which 3.0 now rejects.Verification
pixi installsolves cleanly on Python 3.14 (pandas 3.0.3, pyarrow 24.0.0, plotly 6.4.0, python-kaleido 1.3.0); the default string dtype is confirmed pyarrow-backed. All 152 example notebooks were executed directly via nbconvert and 151 pass (the one exception is a standalone authoring utility that copies to the clipboard and cannot run headless on any pandas version). Thenpx slidev exportPDF tasks fail in this sandbox because it blocks the npm registry; that is environmental and unrelated to these changes.Recorded screencasts affected
Source slides were corrected where possible, but four recorded decks show now-stale content and are tracked in separate re-record issues:
pandas/what_is_pandas(teaches enabling the removed options),plotting/why_plotly_prerequisites(kaleido "ships a browser" framing), andpython_installation_execution/pixi_and_conda_forge+pixi_modifying_environments(show Python 3.13).pandas/imperative_data_cleaningis a deletion candidate pending the maintainers' decision (still wired intopandas/config.py).🤖 Generated with Claude Code
Follow-up: boilerplate + tooling
.ai-instructionssubmodule added (HTTPS), wired viaAGENTS.md(tier-b-course + pytask) withCLAUDE.mdas a pointer.prek autoupdatebumped hook revs; theforbid-submoduleshook removed so the submodule is allowed.[tool.ty]keeps the existing rules, gainsenvironment.python) plus arun-tyCI job. It is red on 17 pre-existing diagnostics (11 innumerical_optimization/task_plots.py, the rest intask_create_book.py/config.py), left for triage.main.yml, build + run-ty) pinned topixi-version: v0.72.0;pixi.lockrefreshed;[tool.ruff] target-versionbumped to py314.