Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
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", "3.14"]
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

The matrix adds Python 3.13/3.14, but uv sync will read uv.lock, whose header currently limits requires-python to <3.13. Unless the lockfile is regenerated for the new Python range, the 3.13/3.14 CI jobs are expected to fail during dependency sync.

Suggested change
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
python-version: ["3.9", "3.10", "3.11", "3.12"]

Copilot uses AI. Check for mistakes.

steps:
- uses: actions/checkout@v4
Expand Down
63 changes: 45 additions & 18 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,19 @@ authors = [
{ "name" = "Santiago Martinez Balvanera", "email" = "santiago.balvanera.20@ucl.ac.uk" },
]
dependencies = [
"click>=8.1.7",
"librosa>=0.10.1",
"matplotlib>=3.7.1",
"numpy>=1.23.5",
"pandas>=1.5.3",
"scikit-learn>=1.2.2",
"scipy>=1.10.1",
"torch>=1.13.1,<2.5.0",
"torchaudio>=1.13.1,<2.5.0",
"torchvision>=0.14.0",
"click>=8.1.7",
"librosa>=0.10.1",
"matplotlib>=3.7.1",
"numpy>=1.23.5",
"pandas>=1.5.3",
"scikit-learn>=1.2.2",
"scipy>=1.10.1",
"torch>=1.13.1",
"torchaudio>=1.13.1",
"torchvision>=0.14.0",
"setuptools>=70.1.0; python_version == '3.14'",
]
requires-python = ">=3.9,<3.13"
requires-python = ">=3.9,<3.15"
Comment on lines +17 to +22
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

requires-python and the relaxed torch/torchaudio specifiers won’t take effect in CI (and may even fail for 3.13/3.14) because uv sync uses uv.lock, which currently declares requires-python = ">=3.9, <3.13" and still has the old <2.5.0 caps for torch/torchaudio in its metadata. Regenerate/update uv.lock (e.g., re-lock with the new Python range and dependency constraints) so the lock matches this pyproject.toml change.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

Packaging metadata still only declares support up to Python 3.12 in classifiers, but this change expands supported versions to 3.13/3.14. Add the corresponding trove classifiers (and keep them in sync with requires-python) so PyPI metadata reflects the stated support.

Copilot uses AI. Check for mistakes.
readme = "README.md"
license = { text = "CC-by-nc-4" }
classifiers = [
Expand All @@ -30,6 +31,8 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Multimedia :: Sound/Audio :: Analysis",
Expand All @@ -51,13 +54,37 @@ build-backend = "hatchling.build"
[project.scripts]
batdetect2 = "batdetect2.cli:cli"

[tool.uv]
dev-dependencies = [
"debugpy>=1.8.8",
"hypothesis>=6.118.7",
"pyright>=1.1.388",
"pytest>=7.2.2",
"ruff>=0.7.3",
[dependency-groups]
dev = [
"debugpy>=1.8.8",
"hypothesis>=6.118.7",
"pyright>=1.1.388",
"pytest>=7.2.2",
"ruff>=0.7.3",
]

[[tool.uv.index]]
name = "pytorch-cu126"
url = "https://download.pytorch.org/whl/cu126"
explicit = true

[[tool.uv.index]]
name = "pytorch-cu118"
url = "https://download.pytorch.org/whl/cu118"
explicit = true

[tool.uv.sources]
torch = [
{ index = "pytorch-cu118", marker = "python_version == '3.9' and (sys_platform == 'linux' or sys_platform == 'win32')" },
{ index = "pytorch-cu126", marker = "python_version != '3.9' and (sys_platform == 'linux' or sys_platform == 'win32')" },
]
torchvision = [
{ index = "pytorch-cu118", marker = "python_version == '3.9' and (sys_platform == 'linux' or sys_platform == 'win32')" },
{ index = "pytorch-cu126", marker = "python_version != '3.9' and (sys_platform == 'linux' or sys_platform == 'win32')" },
]
torchaudio = [
{ index = "pytorch-cu118", marker = "python_version == '3.9' and (sys_platform == 'linux' or sys_platform == 'win32')" },
{ index = "pytorch-cu126", marker = "python_version != '3.9' and (sys_platform == 'linux' or sys_platform == 'win32')" },
]

[tool.ruff]
Expand Down
Loading
Loading