diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 0decf3d..ebb3435 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -30,7 +30,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/README.md b/README.md index d02f5b5..b97cd93 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The algorithm uses cross-correlation of standardised Mel-Frequency Cepstral Coef The tool outputs the calculated offset in seconds, and a ["standard score"](https://en.wikipedia.org/wiki/Standard_score) indicating the prominence of the chosen correlation peak. This can be used as a very rough estimate of the accuracy of the calculated offset - one with a score greater than ten is likely to be correct (at least for audio without similar repeated sections) within the accuracy of the tool; an offset with a score less than five is unlikely to be correct, and a manual check should be carried out. Note that the value of the score depends on the length of the audio analysed. -The tool uses [FFmpeg](https://ffmpeg.org) for transcoding, so should work on all file formats supported by FFmpeg. It is tested for compatibility with Python 3.8-3.12 on Linux, Windows and macOS. Other Python versions and platforms may or may not work. +The tool uses [FFmpeg](https://ffmpeg.org) for transcoding, so should work on all file formats supported by FFmpeg. It is tested for compatibility with Python 3.9-3.14 on Linux, Windows and macOS. Other Python versions and platforms may or may not work. The aim of this open source project is to provide a simple tool and library that do one job well, and that can be the basis of customisation for more complex use cases. The [forks of the base respository](https://github.com/bbc/audio-offset-finder/network/members) are worth exploring if you need a feature that is not included here. The maintainers welcome pull requests with bug fixes, new features and other improvements that fit this philosophy - please see [CONTRIBUTING.md](CONTRIBUTING.md) for details. diff --git a/requirements.txt b/requirements.txt index e78815c..cdd05f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,7 @@ -librosa==0.10.2 -matplotlib==3.7.3 -numpy==1.22.3 -pytest==9.0.3 -scipy==1.10.0 +librosa>=0.10.2 +matplotlib>=3.7.3 +numpy>=1.22.3 +pytest>=8.4.2; python_version < "3.10" +pytest>=9.0.3; python_version >= "3.10" +scipy>=1.10.0,!=1.15.*; platform_system == "Darwin" and python_version < "3.11" +scipy>=1.10.0; platform_system != "Darwin" or python_version >= "3.11" diff --git a/setup.cfg b/setup.cfg index 4e228a7..fbfec9f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,14 +11,26 @@ long_description_content_type = text/markdown classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.9 + 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 [options] packages = find: +python_requires = >=3.9 +# SciPy 1.15.x macOS wheels fail to load on macOS 27+ (malformed __thread_bss +# section), and SciPy 1.16+ requires Python 3.11+, so Python 3.10 on macOS +# must skip 1.15.x install_requires = librosa >= 0.10.2 matplotlib >= 3.7.3 - numpy >= 1.22.3,<2 - scipy >= 1.10.0 + numpy >= 1.22.3 + scipy >= 1.10.0, != 1.15.*; platform_system == "Darwin" and python_version < "3.11" + scipy >= 1.10.0; platform_system != "Darwin" or python_version >= "3.11" [options.extras_require] test = pytest >= 6.2.5