Skip to content

Support Python 3.13#15

Open
Dominic-DallOsto wants to merge 2 commits intoTuragaLab:mainfrom
Dominic-DallOsto:python-3.13
Open

Support Python 3.13#15
Dominic-DallOsto wants to merge 2 commits intoTuragaLab:mainfrom
Dominic-DallOsto:python-3.13

Conversation

@Dominic-DallOsto
Copy link

I had to upgrade numba to the latest version to support python 3.13.

Everything seems to work, but I haven't been able to fully run the slow tests.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds support for Python 3.13 by updating the Python version constraint and upgrading numba from version 0.55.2 to 0.61.2. The numba upgrade is necessary because older versions do not support Python 3.13. Numba is a transitive dependency of umap-learn, which is used for ensemble clustering analysis in the project.

Changes:

  • Updated Python version constraint from <3.13 to <3.14 in pyproject.toml
  • Upgraded numba from version 0.55.2 to 0.61.2 in the pretrained optional dependencies
  • Added Python 3.13 to the GitHub Actions test matrix

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
pyproject.toml Updated Python version constraint to support 3.13 and upgraded numba to 0.61.2
.github/workflows/auto_test.yml Added Python 3.13 to the test matrix

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description mentions that "slow tests" could not be fully run. Before merging Python 3.13 support, it's important to verify that the slow tests (marked with the "slow" marker as seen in pyproject.toml line 153) pass with the new numba version. These tests may exercise numba-JIT compiled code paths that could have compatibility issues with the version upgrade from 0.55.2 to 0.61.2. Consider running the full test suite including slow tests, or document any known limitations with Python 3.13 support.

Copilot uses AI. Check for mistakes.
name = "flyvis"
readme = "readme.md"
requires-python = ">=3.9,<3.13"
requires-python = ">=3.9,<3.14"
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation at docs/docs/install.md line 13 needs to be updated to include Python 3.13 in the list of tested versions. Currently it states "flyvis is tested on Linux for python 3.9, 3.10, 3.11, 3.12" but should be updated to include 3.13 to match the changes in this PR.

Copilot uses AI. Check for mistakes.
Comment on lines 97 to 98
"matplotlib==3.7.1",
"scikit-learn==1.1.1",
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Numba 0.61.2 may have compatibility issues with the pinned versions of other dependencies in the pretrained group. Specifically, matplotlib 3.7.1 (line 97) and scikit-learn 1.1.1 (line 98) are quite old. Numba 0.61.2 was released in late 2024 and may not have been tested with these older library versions. Additionally, numba 0.61.2 requires llvmlite 0.45.x which might conflict with these older dependencies. Consider testing the full pretrained dependency set or upgrading the other pinned versions as well.

Suggested change
"matplotlib==3.7.1",
"scikit-learn==1.1.1",
"matplotlib==3.9.0",
"scikit-learn==1.4.2",

Copilot uses AI. Check for mistakes.

pretrained = [
"numba==0.55.2",
"numba==0.61.2",
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main dependencies list includes "numba" without version constraints (line 39), while the pretrained optional dependencies pin numba to version 0.61.2. This could lead to version conflicts when installing the package with the pretrained extra. When a user installs with "pip install flyvis[pretrained]", pip will need to reconcile the unpinned numba in the main dependencies with the pinned version 0.61.2 in the pretrained group. Consider either removing numba from the main dependencies if it's only needed for pretrained functionality, or ensuring the version constraints are compatible across both dependency sets.

Copilot uses AI. Check for mistakes.
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.

2 participants