Skip to content

Add support for Python 3.13 #1377

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

john-sandall
Copy link

What does this PR do?

This PR adds support for Python 3.13 to TPOT and updates the CI workflow to test against Python 3.10, 3.11, 3.12, and 3.13.

Note: While basic checks (i.e. installing ConfigSpace into a 3.13 environment + running the examples listed on their docs page) for the core dependency ConfigSpace do work without error under Python 3.13, it has not yet officially declared Python 3.13 support via PyPI classifiers. I will see if I can put in a PR on their side to fix that.

Specifically, this PR modifies:

  • setup.py: Updates python_requires to allow Python 3.13 (<3.14) and adds the 3.13 classifier.
  • .github/workflows/tests.yml: Adds Python 3.13 to the CI test matrix.
  • tox.ini: Adds py313 to the default envlist and [gh-actions] mapping for consistency.
  • README.md: Updates the listed supported Python version range.
  • docs/installation.md: Updates the example conda environment command to use Python 3.13.

Where should the reviewer start?

  1. setup.py for the python_requires and classifier changes.
  2. .github/workflows/tests.yml for the added CI test matrix entry.
  3. Other documentation/config files (tox.ini, README.md, docs/installation.md) for consistency updates.

How should this PR be tested?

The primary testing is handled by the updated GitHub Actions CI workflow, which now runs tox (executing pytest) across Python 3.10, 3.11, 3.12, and 3.13 on Ubuntu.

Local testing was performed in a Python 3.13 conda environment on macOS arm64. All tests passed, with one test skipped (test_loop_through_groupnames) due to unavailable optional dependencies (sklearnex) on this platform. CI results should be monitored closely for any new failures specific to the Python 3.13 environment.

Any background context you want to provide?

  • This follows my PR Update package for Python 3.12 #1374 which added Python 3.12 support.
  • Basic local checks suggest ConfigSpace installs and runs simple examples on Python 3.13, but full compatibility is not guaranteed until officially declared by the ConfigSpace project.

What are the relevant issues?

#1376

Questions:

  • Do the docs need to be updated? Yes, README.md and docs/installation.md were updated.
  • Does this PR add new (Python) dependencies? No.

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