Skip to content

Add Python 3.14 support#623

Closed
laughingman7743 wants to merge 3 commits intomasterfrom
feature/add-python-3.14-support
Closed

Add Python 3.14 support#623
laughingman7743 wants to merge 3 commits intomasterfrom
feature/add-python-3.14-support

Conversation

@laughingman7743
Copy link
Member

Summary

Add official support for Python 3.14, which was released on October 7, 2025.

This PR builds on top of #622 (Drop Python 3.9 support) which was merged.

Changes

  • Add Programming Language :: Python :: 3.14 classifier in pyproject.toml
  • Add py314 to tox envlist and gh-actions mapping
  • Add Python 3.14 to CI test matrix
  • Apply setup-python workaround for Python 3.14 (similar to Python 3.13)
  • Update PyArrow minimum version from >=10.0.0 to >=22.0.0
    • PyArrow 22.0.0 (released October 24, 2025) is the first version to support Python 3.14
    • PyArrow 22.0.0 requires Python >=3.10, which aligns with our support after dropping Python 3.9
  • Update README.rst and docs/introduction.rst to reflect Python 3.10-3.14 support
  • Update uv.lock with PyArrow 22.0.0 and compatible dependencies

Python 3.14 Major Features

  • Free-threaded Python official support (PEP 779)
  • Deferred evaluation of annotations (PEP 649)
  • Template string literals/t-strings (PEP 750)
  • Multiple interpreters in the standard library (PEP 734)
  • Experimental JIT compiler

Test Plan

  • CI tests pass on Python 3.10-3.14
  • PyArrow 22.0.0 installs successfully on Python 3.14
  • All dependencies compatible with Python 3.14

References

🤖 Generated with Claude Code

Python 3.14 was released on October 7, 2025 and is now officially supported.

Changes:
- Add Python 3.14 classifier to pyproject.toml
- Add py314 to tox envlist and gh-actions mapping
- Add Python 3.14 to CI test matrix
- Apply setup-python workaround for Python 3.14 (similar to Python 3.13)
- Add conditional PyArrow dependency:
  - Python 3.10-3.13: pyarrow>=10.0.0
  - Python 3.14+: pyarrow>=22.0.0 (required for Python 3.14 support)
- Update README.rst and docs/introduction.rst to reflect Python 3.10-3.14 support
- Update uv.lock with conditional dependencies

Closes #615

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@laughingman7743 laughingman7743 force-pushed the feature/add-python-3.14-support branch from b3b4ee8 to cd24978 Compare November 9, 2025 09:02
laughingman7743 and others added 2 commits November 9, 2025 18:13
fastparquet 2024.11.0 depends on cramjam 2.9.1, which doesn't support
Python 3.14. While cramjam 2.11.0 added Python 3.14 support, fastparquet
hasn't released a version using it yet.

Since fastparquet is only used in dev dependencies (not core PyAthena
functionality), exclude it for Python 3.14 until fastparquet releases
Python 3.14 compatible wheels.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
For Python 3.13 and 3.14, older versions of numpy and pandas don't have
pre-built wheel files, causing slow source builds during installation.

Changes:
- numpy: Use >=2.3.0 for Python 3.13+ (has wheels for cp313/cp314)
- pandas: Use >=2.3.0 for Python 3.13+ (has wheels for cp313/cp314)
- Keep older minimum versions for Python 3.10-3.12 for compatibility

This ensures fast installation with binary wheels on all supported
Python versions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@laughingman7743
Copy link
Member Author

Closing this PR. Will create a new Python 3.14 support PR after #624 (fastparquet removal) is merged.

@laughingman7743 laughingman7743 deleted the feature/add-python-3.14-support branch November 9, 2025 10: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.

Add Python 3.14 support

1 participant