diff --git a/Jenkinsfile b/Jenkinsfile index 8c31a054..ed9ec1fc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,9 +5,9 @@ library identifier: 'JenkinsPythonHelperLibrary@2024.2.0', retriever: modernSCM( ]) -def SUPPORTED_MAC_VERSIONS = ['3.10', '3.11', '3.12', '3.13'] -def SUPPORTED_LINUX_VERSIONS = ['3.10', '3.11', '3.12', '3.13'] -def SUPPORTED_WINDOWS_VERSIONS = ['3.10', '3.11', '3.12', '3.13'] +def SUPPORTED_MAC_VERSIONS = ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t'] +def SUPPORTED_LINUX_VERSIONS = ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t'] +def SUPPORTED_WINDOWS_VERSIONS = ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t'] def SHARED_PIP_CACHE_VOLUME_NAME = 'pipcache' def installMSVCRuntime(cacheLocation){ def cachedFile = "${cacheLocation}\\vc_redist.x64.exe".replaceAll(/\\\\+/, '\\\\') @@ -267,7 +267,6 @@ def windows_wheels(pythonVersions, testPackages, params, wheelStashes, sharedPip 'UV_TOOL_DIR=C:\\Users\\ContainerUser\\Documents\\uvtools', 'UV_PYTHON_INSTALL_DIR=C:\\Users\\ContainerUser\\Documents\\uvpython', 'UV_CACHE_DIR=C:\\Users\\ContainerUser\\Documents\\uvcache', - 'UV_INDEX_STRATEGY=unsafe-best-match', ]){ docker.image(env.DEFAULT_PYTHON_DOCKER_IMAGE ? env.DEFAULT_PYTHON_DOCKER_IMAGE: 'python').inside("--mount source=uv_python_install_dir,target=C:\\Users\\ContainerUser\\Documents\\uvpython --mount source=msvc-runtime,target=c:\\msvc_runtime --mount source=${sharedPipCacheVolumeName},target=${env:PIP_CACHE_DIR}"){ installMSVCRuntime('c:\\msvc_runtime\\') @@ -350,7 +349,6 @@ def linux_wheels(pythonVersions, testPackages, params, wheelStashes, sharedPipCa try{ withEnv([ 'PIP_CACHE_DIR=/tmp/pipcache', - 'UV_INDEX_STRATEGY=unsafe-best-match', 'UV_TOOL_DIR=/tmp/uvtools', 'UV_PYTHON_INSTALL_DIR=/tmp/uvpython', 'UV_CACHE_DIR=/tmp/uvcache', @@ -451,7 +449,6 @@ pipeline { } environment{ PIP_CACHE_DIR='/tmp/pipcache' - UV_INDEX_STRATEGY='unsafe-best-match' UV_TOOL_DIR='/tmp/uvtools' UV_PYTHON_INSTALL_DIR='/tmp/uvpython' UV_CACHE_DIR='/tmp/uvcache' @@ -837,7 +834,6 @@ pipeline { stage('Linux'){ environment{ PIP_CACHE_DIR='/tmp/docker_cache/.cache/pip' - UV_INDEX_STRATEGY='unsafe-best-match' UV_TOOL_DIR='/tmp/uvtools' UV_PYTHON_INSTALL_DIR='/tmp/uvpython' UV_CACHE_DIR='/tmp/uvcache' @@ -913,7 +909,6 @@ pipeline { expression {return nodesByLabel('windows && docker && x86').size() > 0} } environment{ - UV_INDEX_STRATEGY='unsafe-best-match' PIP_CACHE_DIR='C:\\Users\\ContainerUser\\Documents\\pipcache' UV_TOOL_DIR='C:\\Users\\ContainerUser\\Documents\\uvtools' UV_PYTHON_INSTALL_DIR='C:\\Users\\ContainerUser\\Documents\\uvpython' @@ -1033,7 +1028,6 @@ pipeline { } environment{ PIP_CACHE_DIR='/tmp/pipcache' - UV_INDEX_STRATEGY='unsafe-best-match' UV_CACHE_DIR='/tmp/uvcache' } steps{ @@ -1093,7 +1087,7 @@ pipeline { sh(label: 'Running Tox', script: """python${pythonVersion} -m venv venv venv/bin/python -m pip install --disable-pip-version-check uv - UV_INDEX_STRATEGY=unsafe-best-match CONAN_REVISIONS_ENABLED=1 venv/bin/uv run --only-group tox --with tox-uv tox run --installpkg ${it.path} -e py${pythonVersion.replace('.', '')} + CONAN_REVISIONS_ENABLED=1 venv/bin/uv run --only-group tox --with tox-uv tox run --installpkg ${it.path} -e py${pythonVersion.replace('.', '')} rm -rf ./.tox rm -rf ./venv """ @@ -1195,7 +1189,6 @@ pipeline { testCommand: { withEnv([ 'PIP_CACHE_DIR=/tmp/pipcache', - 'UV_INDEX_STRATEGY=unsafe-best-match', 'UV_TOOL_DIR=/tmp/uvtools', 'UV_PYTHON_INSTALL_DIR=/tmp/uvpython', 'UV_CACHE_DIR=/tmp/uvcache', @@ -1247,7 +1240,6 @@ pipeline { stage('Deploy to pypi') { environment{ PIP_CACHE_DIR='/tmp/pipcache' - UV_INDEX_STRATEGY='unsafe-best-match' UV_TOOL_DIR='/tmp/uvtools' UV_PYTHON_INSTALL_DIR='/tmp/uvpython' UV_CACHE_DIR='/tmp/uvcache' @@ -1289,7 +1281,6 @@ pipeline { withEnv( [ "TWINE_REPOSITORY_URL=${SERVER_URL}", - 'UV_INDEX_STRATEGY=unsafe-best-match' ] ){ withCredentials( diff --git a/ci/docker/linux/tox/apt-packages.txt b/ci/docker/linux/tox/apt-packages.txt index de1d80ab..3ca16f37 100644 --- a/ci/docker/linux/tox/apt-packages.txt +++ b/ci/docker/linux/tox/apt-packages.txt @@ -8,5 +8,8 @@ python3.12-dev python3.12-venv python3.13-dev python3.13-venv +python3.14-dev +python3.14-venv +python3.14-nogil git jq \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 470c7fff..c94941fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ build-backend = "uiucprescon.build" name = "uiucprescon.imagevalidate" version = "0.1.10.dev4" dependencies = [ - "py3exiv2bind>=0.1.9" + "py3exiv2bind>=0.1.15" ] requires-python = ">=3.10" readme = "README.rst" diff --git a/scripts/build_mac_wheel.sh b/scripts/build_mac_wheel.sh index ead51e63..4a77e0f8 100755 --- a/scripts/build_mac_wheel.sh +++ b/scripts/build_mac_wheel.sh @@ -46,7 +46,7 @@ generate_wheel_with_uv(){ out_temp_wheels_dir=$(mktemp -d /tmp/python_wheels.XXXXXX) output_path="./dist" trap "rm -rf $out_temp_wheels_dir" ERR SIGINT SIGTERM RETURN - UV_INDEX_STRATEGY=unsafe-best-match _PYTHON_HOST_PLATFORM=$_PYTHON_HOST_PLATFORM MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET ARCHFLAGS=$ARCHFLAGS $uv build --python=$pythonVersion --wheel --out-dir=$out_temp_wheels_dir $project_root + _PYTHON_HOST_PLATFORM=$_PYTHON_HOST_PLATFORM MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET ARCHFLAGS=$ARCHFLAGS $uv build --python=$pythonVersion --wheel --out-dir=$out_temp_wheels_dir $project_root pattern="$out_temp_wheels_dir/*.whl" files=( $pattern ) undelocate_wheel="${files[0]}" diff --git a/scripts/resources/windows/Dockerfile b/scripts/resources/windows/Dockerfile index d5a5f8c4..fdef5ce3 100644 --- a/scripts/resources/windows/Dockerfile +++ b/scripts/resources/windows/Dockerfile @@ -108,7 +108,6 @@ RUN New-Item -type directory -path ${Env:PIP_DOWNLOAD_CACHE} -Force | Out-Null ; ENV CONAN_USER_HOME=${CONAN_USER_HOME}` CONAN_HOME=${CONAN_HOME}` - UV_INDEX_STRATEGY=unsafe-best-match` UV_CACHE_DIR=${UV_CACHE_DIR}` PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE} diff --git a/src/uiucprescon/imagevalidate/openjp2wrap.cpp b/src/uiucprescon/imagevalidate/openjp2wrap.cpp index 4fe5fc48..169c1eea 100644 --- a/src/uiucprescon/imagevalidate/openjp2wrap.cpp +++ b/src/uiucprescon/imagevalidate/openjp2wrap.cpp @@ -4,7 +4,7 @@ #include //NOLINTNEXTLINE -PYBIND11_MODULE(openjp2wrap, m){ // cppcheck-suppress unusedFunction +PYBIND11_MODULE(openjp2wrap, m, pybind11::mod_gil_not_used()){ // cppcheck-suppress unusedFunction pybind11::options options; options.enable_function_signatures(); m.def("open_jpeg_version", &open_jpeg_version, "Get the version of OpenJPEG built with"); diff --git a/tox.ini b/tox.ini index 1f83d3ce..8774ca52 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py310, py311, py312, py313 +envlist = py310, py311, py312, py313, py314, py314t min_version = 4.11 [testenv] diff --git a/uv.lock b/uv.lock index c7bffd7d..91afa81b 100644 --- a/uv.lock +++ b/uv.lock @@ -1223,34 +1223,46 @@ wheels = [ [[package]] name = "py3exiv2bind" -version = "0.1.14.post1" +version = "0.1.15" source = { registry = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/simple" } -sdist = { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1.tar.gz", hash = "sha256:f29924d5739b3da48f3433bdd2af8f520cd79caccad7aef9fb4a708ae8d90bed" } -wheels = [ - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:2d6c0837dd35c00e9dc438628d6a5d974b13aa34d13f7757b1b0d4f963089822" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db35e540e071b666d9b581da3e93715c49e6028b262f777d25ce8094894b4d99" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:b0ed21b544570b1ffc5c1d511c8c6ad259be05e3756ff946d4266acba370b6fc" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4411371b345813173675124548a8e529b2ffc4bdee59e8d2fb7e342b88edd2d8" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bc6a4fa1d7dc24428881b0fa5e31061f93ea3482f3182fa5c0cb22efc0e9dafb" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp310-cp310-win_amd64.whl", hash = "sha256:b161dd563d99439dae3f607a0401eb217dc8cd481d570888923419e32aa0f461" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:2a954fb1bae7ab4bdde6e8ca21af31389e821200bd3049ca863e8cb721fdf31b" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ebdfeb6178c59e67345c99e77e67c1ce66a47cddda4c37e93543ea27cf13c89d" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:35935aa9e4799951ae1ae62e34eaf89d98a69c9414f5988662bcac04f3e83b72" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7ec8c3f6d54ec9b2e6dbbee56e5843004947459fd38206f7318f665c95502eb5" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dbb1eb9c5040e8caf5ca18c9d2fe3da6c4752d7bddffec2debf02530c4b87755" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp311-cp311-win_amd64.whl", hash = "sha256:537816c256765dfd348728362851787667a9c89f3a526720ae8a383d5226aad2" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:db3b17480bcff860a683e19121f29fee099a5075385b717298d4c74e526baec1" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c55943b8be90310687e84b553abd561c236dc1dd7133679ca9fc6b1591408c51" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:45b7add9a0e8e74e8e5996cdcd90b3655ab5ec7359320a51febe1b978f4aee48" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a291f58ce28f5c948ddea0d86ce0224868e38cde159cc3a690a30793d8333" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4ff118b0f308ee8f0aeb4d9189bf8df6120151ac783c1c2f7288669752b4980e" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp312-cp312-win_amd64.whl", hash = "sha256:387e0b9e0b932c072169eb826048065f62f3a1105793893c268222c9d70b63f1" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:70fb0169d3e57e8d6968b80372a7294bd0a3b3fd43727103dde8171b30b95105" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d96068954782fad1c04b677bc82c6b6ea1f55bb44847f9b35a6e8fec1efbe66" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:c9743c3c6f04e51a3ebfbcbc9de9ad58ed2567745b4e9ba914a03a0d2b9cfe27" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88366bab75f492ce5e38a177f46144d267cf0a7709061d200f839c7a7682c7fb" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3435a04daea3b45a3560582feb909737714522a11020001b67f776e0ccce19ae" }, - { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.14.post1/py3exiv2bind-0.1.14.post1-cp313-cp313-win_amd64.whl", hash = "sha256:5fe1529700ac86c71e5fe0afe180513e488d9f85c7719e63641d8ffd81b8d3fe" }, +sdist = { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15.tar.gz", hash = "sha256:f72d8fbfb245b58a4d217fd48dae5aecd5362db2249478e96983ea1c9cbae25b" } +wheels = [ + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp310+gil-cp310-macosx_11_0_universal2.whl", hash = "sha256:3744cb5b9bb0928801727d99c07b855f98952d72ac5861f310ff2466b3372079" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:343ed0681549e44a5ddaa665fdf034a070ccaf038cb1ee6e13d438dc8f80e9f2" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:755249c5dd9ccb5d30de21dba12cabfdbb22c7491382a23e726ba24d9b3f355c" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64cc367383c1c7f5b784d84daff9409b724a92a5eb67f8409138585e870cd677" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:417f61f3687e96d38564f92308d30dfc195a3171532a8f6919cfccde666dbffb" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp310-cp310-win_amd64.whl", hash = "sha256:c7d467b248dfc39b441900df096693ec040f3775e1873cf101d9df88c5079110" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp311+gil-cp311-macosx_11_0_universal2.whl", hash = "sha256:d082c9ecc51063912cc6f887ae6ba8b1b85253b63a94733b93e0dd87dd8fdb49" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:e210fbcd5a0b917a9b1b449b6b2f88d83451382804e54dd8d4f44afaa03eb5c6" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:487b23c4ecb0c10446535e4818c888a388ee91c0c307c25354c4621ea1174644" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:891c24a4c576728e046aef1b2110e21a981ec5888220d10daf056cc05c280467" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9af615e6657966dc45efbb20da379ac093e8210646f93da9a16a1689377e3e78" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp311-cp311-win_amd64.whl", hash = "sha256:3609d48a04ca82d0ef2a60b87e63f9e9128b69be8bdfb3c80ca6a18d39277558" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp312+gil-cp312-macosx_11_0_universal2.whl", hash = "sha256:c9e4fa609c2b01806825be4338eefebb7cda359453e83f5260c2902c35c4258d" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:2e766305e294cfff1a1ad3dccb893d2d363e433c098835b899d2959465bdc2e0" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ac29735ffd4b6b0b605e25e764b50fe59d8e77a5684fa5abbbb78aa30791fd68" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad8920555d075584be8cd1b75b9e149fd5df787175a792fefb0907b197a1ba36" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2d22655b32c7d275801fe6617b44d2be9e83af6255b7fd9734302a877e5954ba" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp312-cp312-win_amd64.whl", hash = "sha256:6e74e030fc2a486bcdb82cd03a234c604a73d51bad2c9261f43bc0c083643050" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp313+gil-cp313-macosx_11_0_universal2.whl", hash = "sha256:4cf6f2c356e6e20f483bd9185ec9a196178c00d89f22a7d44a251bb2b4430ab3" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:e4dbca2c276bd763cadcf51c46f979933e0db6bba82944bf2e51cae4279c8499" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a1eeea9ad62d8c1f4913e68ec4c726fba464641b6370540d03696b526af004" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7856ccdf876945d6e29aeeae24a13f55f579b794ce07f1c728b4696fad94eada" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fbba563ddbd66b420f0a268b11c97a5243778a9be9f714ffb3eaa4bbb775b294" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp313-cp313-win_amd64.whl", hash = "sha256:ac577c99005fc2a35afe8c51efc7fa47b033a1b424fbe36c24ca97fc0c45452e" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314+gil-cp314-macosx_11_0_universal2.whl", hash = "sha256:a8220781abc0344f787e7006acd844d397eff3d95c9a3fed62314dd96ce0fbde" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f7d6ed3a4277585f918d7b5c2a07e629e621a9abfb02f02e706c10b5843d1dee" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5cb68616cd5328f1dac8c0ee5e48408223701e64c3ae4d3b1be7fc9cf1efd240" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:58cec6d20837c51b27025525b102e3dd52d208d466b856cbd20c1596891a0148" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e21515fe44a517e374f3590ad17fd36fed6bc6b7f42ba667f866f5d08a640a5" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314-win_amd64.whl", hash = "sha256:69deb159f83f879bd355cf22f835b2c9c77fcb14a5b00272a756ebf1b89fcdab" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a2c509edf3bc37b383e9302881cea9adc9d5ea377b0b8ce492788a478ee4a950" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7c9dfe11a7dcaa577713500607a235101de4c224284cfa23545b88dce2346b09" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24bfca0f09806c25e387ef5e64020ac378768d4e285c2db1b4ba10be4e4e5976" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:338f34ab66d6f6bc6c1222145a18e690f8618e0e89c5060cf04849d653823e93" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314-cp314t-win_amd64.whl", hash = "sha256:68361562acb189bd4a81916cc188bb88c364ad0b0c01ec7a1f96fba68a3d7210" }, + { url = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/packages/py3exiv2bind/0.1.15/py3exiv2bind-0.1.15-cp314t-cp314t-macosx_11_0_universal2.whl", hash = "sha256:1f4028d26740bfb35bdb00db5b5ef1218b2cc05c3ac9411e5065bf1994a354ad" }, ] [[package]] @@ -1949,7 +1961,7 @@ type-checking = [ ] [package.metadata] -requires-dist = [{ name = "py3exiv2bind", specifier = ">=0.1.9", index = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/simple" }] +requires-dist = [{ name = "py3exiv2bind", specifier = ">=0.1.15", index = "https://nexus.library.illinois.edu/repository/uiuc_prescon_python/simple" }] [package.metadata.requires-dev] ci = [