diff --git a/.github/workflows/wheel_tests_and_release.yml b/.github/workflows/wheel_tests_and_release.yml index 07a3c2ef..301d6917 100644 --- a/.github/workflows/wheel_tests_and_release.yml +++ b/.github/workflows/wheel_tests_and_release.yml @@ -20,7 +20,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - cibw_python: ["cp39-*", "cp310-*", "cp311-*"] + cibw_python: ["cp39-*", "cp310-*", "cp311-*", "cp312-*"] cibw_manylinux: [ manylinux2014 ] cibw_arch: [ "x86_64"] steps: @@ -55,7 +55,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - cibw_python: ["cp39-*", "cp310-*", "cp311-*"] + cibw_python: ["cp39-*", "cp310-*", "cp311-*", "cp312-*"] cibw_manylinux: [ manylinux2014 ] steps: - uses: actions/checkout@v3 @@ -92,7 +92,7 @@ jobs: fail-fast: false matrix: os: [macos-latest] - cibw_python: ["cp39-*", "cp310-*" , "cp311-*" ] + cibw_python: ["cp39-*", "cp310-*" , "cp311-*", "cp312-*"] cibw_arch: ["x86_64", "arm64"] steps: - uses: actions/checkout@v3 @@ -140,7 +140,7 @@ jobs: matrix: os: [windows-latest] cibw_arch: ["AMD64", "x86"] - cibw_python: ["cp39-*", "cp310-*", "cp311-*"] + cibw_python: ["cp39-*", "cp310-*", "cp311-*", "cp312-*"] steps: - uses: actions/checkout@v3 with: @@ -198,7 +198,7 @@ jobs: run: | python -m pip install --upgrade pip pip install twine - pip install "cython<3" numpy + pip install cython numpy - uses: actions/download-artifact@v3 id: download diff --git a/pyproject.toml b/pyproject.toml index f9b44314..f9a2ba76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,9 @@ build-backend = "mesonpy" requires = [ "meson-python>=0.14.0", - "Cython>=0.29.35", # when updating version, also update check in meson.build + # when updating Cython version, also update check in meson.build + "Cython>=0.29.35,<3.0; python_version>='3.12' and platform_system=='Windows'", + "Cython>=0.29.35; python_version<'3.12' or platform_system!='Windows'", # When numpy 2.0.0rc1 comes out, we should update this to build against 2.0, # and then runtime depend on the range 1.22.X to <2.3. No need to switch to @@ -18,15 +20,17 @@ requires = [ # default numpy requirements "numpy==1.22.4; python_version<='3.10' and platform_python_implementation != 'PyPy'", "numpy==1.23.3; python_version=='3.11' and platform_python_implementation != 'PyPy'", + "numpy==1.26.0; python_version=='3.12' and platform_python_implementation != 'PyPy'", # For Python versions which aren't yet officially supported, we specify an # unpinned NumPy which allows source distributions to be used and allows # wheels to be used as soon as they become available. - "numpy>=1.26.0b1; python_version>='3.12'", + "numpy; python_version>='3.13'", "numpy; python_version>='3.9' and platform_python_implementation=='PyPy'", ] [project] name = "PyWavelets" +version = "1.5.0.dev0" # TODO: add `license-files` once PEP 639 is accepted (see meson-python#88) # at that point, no longer include them in `py3.install_sources()` license = {file = "LICENSE"} @@ -38,7 +42,7 @@ requires-python = ">=3.9" dependencies = [ # TODO: update to "pin-compatible" once possible, see # https://github.com/FFY00/meson-python/issues/29 - "numpy>=1.22.4", + "numpy>=1.22.4,<2.0", ] readme = "README.rst" classifiers = [ @@ -54,9 +58,9 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Libraries :: Python Modules" ] -dynamic = ['version'] [project.urls] homepage = "https://github.com/PyWavelets/pywt"