Conversation
Requires numba>=0.61
There was a problem hiding this comment.
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.13to<3.14in 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"] |
There was a problem hiding this comment.
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.
| name = "flyvis" | ||
| readme = "readme.md" | ||
| requires-python = ">=3.9,<3.13" | ||
| requires-python = ">=3.9,<3.14" |
There was a problem hiding this comment.
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.
| "matplotlib==3.7.1", | ||
| "scikit-learn==1.1.1", |
There was a problem hiding this comment.
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.
| "matplotlib==3.7.1", | |
| "scikit-learn==1.1.1", | |
| "matplotlib==3.9.0", | |
| "scikit-learn==1.4.2", |
|
|
||
| pretrained = [ | ||
| "numba==0.55.2", | ||
| "numba==0.61.2", |
There was a problem hiding this comment.
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.
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.