From 93078d949aa902eb7668b559732fbd76d5e04568 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo <nicola.soranzo@earlham.ac.uk> Date: Tue, 29 Oct 2024 13:48:02 +0000 Subject: [PATCH] Replace poetry with uv for lightning-fast Python dependency updates. To update all dependencies (as done by the GitHub action): $ make update-dependencies To update only one package: ./lib/galaxy/dependencies/update.sh -p <PKG> --- .github/workflows/dependencies.yaml | 4 +- doc/source/admin/framework_dependencies.rst | 12 +- lib/galaxy/dependencies/dev-requirements.txt | 376 +++++++-------- .../dependencies/pinned-requirements.txt | 434 +++++++++--------- .../pinned-typecheck-requirements.txt | 62 +-- lib/galaxy/dependencies/update.sh | 92 +--- pyproject.toml | 363 ++++++++------- 7 files changed, 652 insertions(+), 691 deletions(-) diff --git a/.github/workflows/dependencies.yaml b/.github/workflows/dependencies.yaml index 9b319d1954e1..7f3e60d54774 100644 --- a/.github/workflows/dependencies.yaml +++ b/.github/workflows/dependencies.yaml @@ -17,9 +17,7 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Update dependencies - run: | - python -m venv .venv - make update-dependencies + run: make update-dependencies - name: Create pull request uses: peter-evans/create-pull-request@v6 with: diff --git a/doc/source/admin/framework_dependencies.rst b/doc/source/admin/framework_dependencies.rst index 12613a31d460..c142f71cc840 100644 --- a/doc/source/admin/framework_dependencies.rst +++ b/doc/source/admin/framework_dependencies.rst @@ -185,7 +185,7 @@ Adding additional Galaxy dependencies ------------------------------------- New packages can be added to Galaxy, or the versions of existing packages can be -updated, using `poetry`_ and `Wheelforge`_. +updated, using `uv`_ and `Wheelforge`_. If wheels already exist on PyPI for all platforms and Python versions supported by Galaxy, you can skip to step 3 in the process below. @@ -195,11 +195,13 @@ by Galaxy, you can skip to step 3 in the process below. 2. Submit a pull request to `Wheelforge`_. -3. Add the new dependency to the `[tool.poetry.dependencies]` (or to `[tool.poetry.group.dev.dependencies]` if only needed for Galaxy development) section of `pyproject.toml` . -4. Run `make update-dependencies` to update the requirements file in `lib/galaxy/dependencies`_. +3. Add the new dependency to the ``dependencies`` list in the ``[project]`` + section (or to ``dev`` list in the ``[dependency-groups]`` section if only + needed for Galaxy development) of `pyproject.toml`_ . +4. Run ``make update-dependencies`` to update the requirements files in `lib/galaxy/dependencies`_. 5. Submit a pull request to Galaxy with your changes. -.. _poetry: https://python-poetry.org/ +.. _uv: https://docs.astral.sh/uv/ .. _Wheelforge: https://github.com/galaxyproject/wheelforge/ -.. _Pull Request #4891: https://github.com/galaxyproject/galaxy/pull/4891 +.. _pyproject.toml: https://github.com/galaxyproject/galaxy/blob/dev/pyproject.toml .. _lib/galaxy/dependencies: https://github.com/galaxyproject/galaxy/tree/dev/lib/galaxy/dependencies diff --git a/lib/galaxy/dependencies/dev-requirements.txt b/lib/galaxy/dependencies/dev-requirements.txt index 1258d2e754e2..a0b0f68801f0 100644 --- a/lib/galaxy/dependencies/dev-requirements.txt +++ b/lib/galaxy/dependencies/dev-requirements.txt @@ -1,188 +1,188 @@ ---extra-index-url https://wheels.galaxyproject.org/simple - -aiohappyeyeballs==2.4.3 ; python_version >= "3.8" and python_version < "3.13" -aiohttp==3.10.10 ; python_version >= "3.8" and python_version < "3.13" -aiosignal==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -alabaster==0.7.13 ; python_version >= "3.8" and python_version < "3.13" -anyio==4.5.2 ; python_version >= "3.8" and python_version < "3.13" -ase==3.23.0 ; python_version >= "3.8" and python_version < "3.13" -async-timeout==4.0.3 ; python_version >= "3.8" and python_version < "3.11" -attrs==24.2.0 ; python_version >= "3.8" and python_version < "3.13" -axe-selenium-python==2.1.6 ; python_version >= "3.8" and python_version < "3.13" -babel==2.16.0 ; python_version >= "3.8" and python_version < "3.13" -backports-tarfile==1.2.0 ; python_version >= "3.8" and python_version < "3.12" -backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9" -black==24.8.0 ; python_version >= "3.8" and python_version < "3.13" -boto3==1.35.36 ; python_version >= "3.8" and python_version < "3.13" -botocore==1.35.36 ; python_version >= "3.8" and python_version < "3.13" -build==1.2.2.post1 ; python_version >= "3.8" and python_version < "3.13" -cachecontrol[filecache]==0.14.0 ; python_version >= "3.8" and python_version < "3.13" -certifi==2024.8.30 ; python_version >= "3.8" and python_version < "3.13" -cffi==1.17.1 ; python_version >= "3.8" and python_version < "3.13" -charset-normalizer==3.4.0 ; python_version >= "3.8" and python_version < "3.13" -click==8.1.7 ; python_version >= "3.8" and python_version < "3.13" -codespell==2.3.0 ; python_version >= "3.8" and python_version < "3.13" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows" or os_name == "nt") -contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.9" -contourpy==1.3.0 ; python_version >= "3.9" and python_version < "3.13" -coverage[toml]==7.6.1 ; python_version >= "3.8" and python_version < "3.13" -cryptography==43.0.3 ; python_version >= "3.8" and python_version < "3.13" -cwltest==2.5.20240906231108 ; python_version >= "3.8" and python_version < "3.13" -cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.13" -darker==2.1.1 ; python_version >= "3.8" and python_version < "3.13" -darkgraylib==1.2.1 ; python_version >= "3.8" and python_version < "3.13" -decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" -defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.13" -deprecated==1.2.14 ; python_version >= "3.8" and python_version < "3.13" -docutils==0.20.1 ; python_version >= "3.8" and python_version < "3.13" -dogpile-cache==1.3.3 ; python_version >= "3.9" and python_version < "3.13" -exceptiongroup==1.2.2 ; python_version >= "3.8" and python_version < "3.11" -filelock==3.16.1 ; python_version >= "3.8" and python_version < "3.13" -fluent-logger==0.11.1 ; python_version >= "3.8" and python_version < "3.13" -fonttools==4.54.1 ; python_version >= "3.8" and python_version < "3.13" -frozenlist==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -galaxy-release-util==0.1.11 ; python_version >= "3.8" and python_version < "3.13" -graylint==1.1.1 ; python_version >= "3.8" and python_version < "3.13" -greenlet==3.1.1 ; python_version >= "3.8" and python_version < "3.13" -h11==0.14.0 ; python_version >= "3.8" and python_version < "3.13" -httpcore==1.0.6 ; python_version >= "3.8" and python_version < "3.13" -httpx==0.27.2 ; python_version >= "3.8" and python_version < "3.13" -idna==3.10 ; python_version >= "3.8" and python_version < "3.13" -imagesize==1.4.1 ; python_version >= "3.8" and python_version < "3.13" -importlib-metadata==8.5.0 ; python_version >= "3.8" and python_version < "3.13" -importlib-resources==6.4.5 ; python_version >= "3.8" and python_version < "3.10" -iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.13" -isodate==0.6.1 ; python_version >= "3.8" and python_version < "3.13" -isort==5.13.2 ; python_version >= "3.8" and python_version < "3.13" -jaraco-classes==3.4.0 ; python_version >= "3.8" and python_version < "3.13" -jaraco-context==6.0.1 ; python_version >= "3.8" and python_version < "3.13" -jaraco-functools==4.1.0 ; python_version >= "3.8" and python_version < "3.13" -jeepney==0.8.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "linux" -jinja2==3.1.4 ; python_version >= "3.8" and python_version < "3.13" -jmespath==1.0.1 ; python_version >= "3.8" and python_version < "3.13" -jsonschema-specifications==2023.12.1 ; python_version >= "3.9" and python_version < "3.13" -jsonschema==4.23.0 ; python_version >= "3.9" and python_version < "3.13" -junit-xml==1.9 ; python_version >= "3.8" and python_version < "3.13" -keyring==25.4.1 ; python_version >= "3.8" and python_version < "3.13" -kiwisolver==1.4.7 ; python_version >= "3.8" and python_version < "3.13" -lxml==5.3.0 ; python_version >= "3.8" and python_version < "3.13" -markdown-it-py==3.0.0 ; python_version >= "3.8" and python_version < "3.13" -markdown-it-reporter==0.0.2 ; python_version >= "3.8" and python_version < "3.13" -markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.13" -matplotlib==3.7.5 ; python_version >= "3.8" and python_version < "3.9" -matplotlib==3.9.2 ; python_version >= "3.9" and python_version < "3.13" -mdit-py-plugins==0.4.2 ; python_version >= "3.8" and python_version < "3.13" -mdurl==0.1.2 ; python_version >= "3.8" and python_version < "3.13" -mirakuru==2.5.2 ; python_version >= "3.8" and python_version < "3.13" -mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.13" -more-itertools==10.5.0 ; python_version >= "3.8" and python_version < "3.13" -msgpack==1.1.0 ; python_version >= "3.8" and python_version < "3.13" -multidict==6.1.0 ; python_version >= "3.8" and python_version < "3.13" -mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -myst-parser==3.0.1 ; python_version >= "3.8" and python_version < "3.13" -nh3==0.2.18 ; python_version >= "3.8" and python_version < "3.13" -numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.9" -numpy==2.0.2 ; python_version >= "3.9" and python_version < "3.10" -numpy==2.1.2 ; python_version >= "3.10" and python_version < "3.13" -onedatafilerestclient==21.2.5.2 ; python_version >= "3.8" and python_version < "3.13" -outcome==1.3.0.post0 ; python_version >= "3.8" and python_version < "3.13" -packaging==24.1 ; python_version >= "3.8" and python_version < "3.13" -pathspec==0.12.1 ; python_version >= "3.8" and python_version < "3.13" -pbr==6.1.0 ; python_version >= "3.9" and python_version < "3.13" -pillow==10.4.0 ; python_version >= "3.8" and python_version < "3.13" -pkce==1.0.3 ; python_version >= "3.8" and python_version < "3.13" -pkginfo==1.10.0 ; python_version >= "3.8" and python_version < "3.13" -platformdirs==4.3.6 ; python_version >= "3.8" and python_version < "3.13" -playwright==1.48.0 ; python_version >= "3.8" and python_version < "3.13" -pluggy==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -port-for==0.7.3 ; python_version >= "3.8" and python_version < "3.13" -prettytable==3.11.0 ; python_version >= "3.8" and python_version < "3.13" -propcache==0.2.0 ; python_version >= "3.8" and python_version < "3.13" -psutil==6.1.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "cygwin" -psycopg==3.2.3 ; python_version >= "3.8" and python_version < "3.13" -pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13" -pyee==12.0.0 ; python_version >= "3.8" and python_version < "3.13" -pygithub==2.4.0 ; python_version >= "3.8" and python_version < "3.13" -pygments==2.18.0 ; python_version >= "3.8" and python_version < "3.13" -pyjwt[crypto]==2.9.0 ; python_version >= "3.8" and python_version < "3.13" -pynacl==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -pyparsing==3.1.4 ; python_version >= "3.8" and python_version < "3.13" -pyproject-hooks==1.2.0 ; python_version >= "3.8" and python_version < "3.13" -pysocks==1.7.1 ; python_version >= "3.8" and python_version < "3.13" -pytest-asyncio==0.23.8 ; python_version >= "3.8" and python_version < "3.13" -pytest-base-url==2.1.0 ; python_version >= "3.8" and python_version < "3.13" -pytest-cov==5.0.0 ; python_version >= "3.8" and python_version < "3.13" -pytest-html==4.1.1 ; python_version >= "3.8" and python_version < "3.13" -pytest-httpserver==1.1.0 ; python_version >= "3.8" and python_version < "3.13" -pytest-json-report==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -pytest-metadata==3.1.1 ; python_version >= "3.8" and python_version < "3.13" -pytest-mock==3.14.0 ; python_version >= "3.8" and python_version < "3.13" -pytest-playwright==0.5.2 ; python_version >= "3.8" and python_version < "3.13" -pytest-postgresql==6.1.1 ; python_version >= "3.8" and python_version < "3.13" -pytest-shard==0.1.2 ; python_version >= "3.8" and python_version < "3.13" -pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.13" -python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.13" -python-irodsclient==2.2.0 ; python_version >= "3.8" and python_version < "3.13" -python-slugify==8.0.4 ; python_version >= "3.8" and python_version < "3.13" -pytz==2024.2 ; python_version >= "3.8" and python_version < "3.9" -pywin32-ctypes==0.2.3 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "win32" -pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "3.13" -rdflib==6.3.2 ; python_version >= "3.8" and python_version < "3.13" -readme-renderer==43.0 ; python_version >= "3.8" and python_version < "3.13" -referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.13" -requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -requests==2.32.3 ; python_version >= "3.8" and python_version < "3.13" -responses==0.25.3 ; python_version >= "3.8" and python_version < "3.13" -rfc3986==2.0.0 ; python_version >= "3.8" and python_version < "3.13" -rich==13.9.3 ; python_version >= "3.8" and python_version < "3.13" -rpds-py==0.20.0 ; python_version >= "3.9" and python_version < "3.13" -ruamel-yaml-clib==0.2.8 ; platform_python_implementation == "CPython" and python_version < "3.13" and python_version >= "3.8" -ruamel-yaml==0.18.6 ; python_version >= "3.8" and python_version < "3.13" -rucio-clients==35.4.1 ; python_version >= "3.9" and python_version < "3.13" -s3transfer==0.10.3 ; python_version >= "3.8" and python_version < "3.13" -schema-salad==8.7.20241010092723 ; python_version >= "3.8" and python_version < "3.13" -scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.9" -scipy==1.13.1 ; python_version >= "3.9" and python_version < "3.10" -scipy==1.14.1 ; python_version >= "3.10" and python_version < "3.13" -secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "linux" -selenium==4.25.0 ; python_version >= "3.8" and python_version < "3.13" -seletools==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -setuptools==75.2.0 ; python_version >= "3.8" and python_version < "3.13" -six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -sniffio==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "3.13" -sortedcontainers==2.4.0 ; python_version >= "3.8" and python_version < "3.13" -sphinx-rtd-theme==3.0.1 ; python_version >= "3.8" and python_version < "3.13" -sphinx==7.1.2 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-jquery==4.1 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "3.13" -statsd==4.0.1 ; python_version >= "3.8" and python_version < "3.13" -stevedore==5.3.0 ; python_version >= "3.9" and python_version < "3.13" -tabulate==0.9.0 ; python_version >= "3.9" and python_version < "3.13" -testfixtures==8.3.0 ; python_version >= "3.8" and python_version < "3.13" -text-unidecode==1.3 ; python_version >= "3.8" and python_version < "3.13" -tinydb==4.8.2 ; python_version >= "3.8" and python_version < "3.13" -toml==0.10.2 ; python_version >= "3.8" and python_version < "3.13" -tomli==2.0.2 ; python_version >= "3.8" and python_full_version <= "3.11.0a6" -trio-websocket==0.11.1 ; python_version >= "3.8" and python_version < "3.13" -trio==0.27.0 ; python_version >= "3.8" and python_version < "3.13" -tuspy==1.0.3 ; python_version >= "3.8" and python_version < "3.13" -twill==3.3 ; python_version >= "3.8" and python_version < "3.13" -twine==5.1.1 ; python_version >= "3.8" and python_version < "3.13" -typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "3.13" -tzdata==2024.2 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "win32" -urllib3==1.26.20 ; python_version >= "3.8" and python_version < "3.13" -urllib3[socks]==1.26.20 ; python_version >= "3.8" and python_version < "3.13" -watchdog==4.0.2 ; python_version >= "3.8" and python_version < "3.13" -wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.13" -websocket-client==1.8.0 ; python_version >= "3.8" and python_version < "3.13" -werkzeug==3.0.6 ; python_version >= "3.8" and python_version < "3.13" -wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -wsproto==1.2.0 ; python_version >= "3.8" and python_version < "3.13" -yarl==1.15.2 ; python_version >= "3.8" and python_version < "3.13" -zipp==3.20.2 ; python_version >= "3.8" and python_version < "3.13" +# This file was autogenerated by uv via the following command: +# uv export --no-hashes --only-group=dev +aiohappyeyeballs==2.4.3 +aiohttp==3.10.10 +aiosignal==1.3.1 +alabaster==0.7.13 +anyio==4.5.2 +ase==3.23.0 +async-timeout==4.0.3 ; python_full_version < '3.11' +attrs==24.2.0 +axe-selenium-python==2.1.6 +babel==2.16.0 +backports-tarfile==1.2.0 ; python_full_version < '3.12' +backports-zoneinfo==0.2.1 ; python_full_version < '3.9' +black==24.8.0 +boto3==1.35.36 +botocore==1.35.36 +build==1.2.2.post1 +cachecontrol==0.14.0 +certifi==2024.8.30 +cffi==1.17.1 +charset-normalizer==3.4.0 +click==8.1.7 +codespell==2.3.0 +colorama==0.4.6 ; (platform_system != 'Windows' and sys_platform == 'win32') or platform_system == 'Windows' or os_name == 'nt' +contourpy==1.1.1 ; python_full_version < '3.9' +contourpy==1.3.0 ; python_full_version >= '3.9' +coverage==7.6.1 +cryptography==43.0.3 +cwltest==2.5.20240906231108 +cycler==0.12.1 +darker==2.1.1 +darkgraylib==1.2.1 +decorator==5.1.1 ; python_full_version >= '3.9' +defusedxml==0.7.1 +deprecated==1.2.14 +docutils==0.20.1 +dogpile-cache==1.3.3 ; python_full_version >= '3.9' +exceptiongroup==1.2.2 ; python_full_version < '3.11' +filelock==3.16.1 +fluent-logger==0.11.1 +fonttools==4.54.1 +frozenlist==1.5.0 +galaxy-release-util==0.1.11 +graylint==1.1.1 +greenlet==3.1.1 +h11==0.14.0 +httpcore==1.0.6 +httpx==0.27.2 +idna==3.10 +imagesize==1.4.1 +importlib-metadata==8.5.0 +importlib-resources==6.4.5 ; python_full_version < '3.10' +iniconfig==2.0.0 +isodate==0.6.1 +isort==5.13.2 +jaraco-classes==3.4.0 +jaraco-context==6.0.1 +jaraco-functools==4.1.0 +jeepney==0.8.0 ; sys_platform == 'linux' +jinja2==3.1.4 +jmespath==1.0.1 +jsonschema==4.23.0 ; python_full_version >= '3.9' +jsonschema-specifications==2023.12.1 ; python_full_version >= '3.9' +junit-xml==1.9 +keyring==25.5.0 +kiwisolver==1.4.7 +lxml==5.3.0 +markdown-it-py==3.0.0 +markdown-it-reporter==0.0.2 +markupsafe==2.1.5 +matplotlib==3.7.5 ; python_full_version < '3.9' +matplotlib==3.9.2 ; python_full_version >= '3.9' +mdit-py-plugins==0.4.2 +mdurl==0.1.2 +mirakuru==2.5.2 +mistune==3.0.2 +more-itertools==10.5.0 +msgpack==1.1.0 +multidict==6.1.0 +mypy-extensions==1.0.0 +myst-parser==3.0.1 +nh3==0.2.18 +numpy==1.24.4 ; python_full_version < '3.9' +numpy==2.0.2 ; python_full_version == '3.9.*' +numpy==2.1.2 ; python_full_version >= '3.10' +onedatafilerestclient==21.2.5.2 +outcome==1.3.0.post0 +packaging==24.1 +pathspec==0.12.1 +pbr==6.1.0 ; python_full_version >= '3.9' +pillow==10.4.0 +pkce==1.0.3 +pkginfo==1.10.0 +pkgutil-resolve-name==1.3.10 ; python_version < '0' +platformdirs==4.3.6 +playwright==1.48.0 +pluggy==1.5.0 +port-for==0.7.3 +prettytable==3.11.0 +propcache==0.2.0 +psutil==6.1.0 ; sys_platform != 'cygwin' +psycopg==3.2.3 +pycparser==2.22 +pyee==12.0.0 +pygithub==2.4.0 +pygments==2.18.0 +pyjwt==2.9.0 +pynacl==1.5.0 +pyparsing==3.1.4 +pyproject-hooks==1.2.0 +pysocks==1.7.1 +pytest==7.4.4 +pytest-asyncio==0.23.8 +pytest-base-url==2.1.0 +pytest-cov==5.0.0 +pytest-html==4.1.1 +pytest-httpserver==1.1.0 +pytest-json-report==1.5.0 +pytest-metadata==3.1.1 +pytest-mock==3.14.0 +pytest-playwright==0.5.2 +pytest-postgresql==6.1.1 +pytest-shard==0.1.2 +python-dateutil==2.9.0.post0 +python-irodsclient==2.2.0 +python-slugify==8.0.4 +pytz==2024.2 ; python_full_version < '3.9' +pywin32-ctypes==0.2.3 ; sys_platform == 'win32' +pyyaml==6.0.2 +rdflib==6.3.2 +readme-renderer==43.0 +referencing==0.35.1 ; python_full_version >= '3.9' +requests==2.32.3 +requests-toolbelt==1.0.0 +responses==0.25.3 +rfc3986==2.0.0 +rich==13.9.3 +rpds-py==0.20.0 ; python_full_version >= '3.9' +ruamel-yaml==0.18.6 +ruamel-yaml-clib==0.2.8 ; python_full_version < '3.13' and platform_python_implementation == 'CPython' +rucio-clients==35.4.1 ; python_full_version >= '3.9' +s3transfer==0.10.3 +schema-salad==8.7.20241010092723 +scipy==1.10.1 ; python_full_version < '3.9' +scipy==1.13.1 ; python_full_version == '3.9.*' +scipy==1.14.1 ; python_full_version >= '3.10' +secretstorage==3.3.3 ; sys_platform == 'linux' +selenium==4.25.0 +seletools==1.5.0 +setuptools==75.2.0 +six==1.16.0 +sniffio==1.3.1 +snowballstemmer==2.2.0 +sortedcontainers==2.4.0 +sphinx==7.1.2 +sphinx-rtd-theme==3.0.1 +sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-jquery==4.1 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.5 +statsd==4.0.1 +stevedore==5.3.0 ; python_full_version >= '3.9' +tabulate==0.9.0 ; python_full_version >= '3.9' +testfixtures==8.3.0 +text-unidecode==1.3 +tinydb==4.8.2 +toml==0.10.2 +tomli==2.0.2 ; python_full_version <= '3.11' +trio==0.27.0 +trio-websocket==0.11.1 +tuspy==1.0.3 +twill==3.3 +twine==5.1.1 +typing-extensions==4.12.2 +tzdata==2024.2 ; sys_platform == 'win32' +urllib3==1.26.20 +watchdog==4.0.2 +wcwidth==0.2.13 +websocket-client==1.8.0 +werkzeug==3.0.6 +wrapt==1.16.0 +wsproto==1.2.0 +yarl==1.15.2 +zipp==3.20.2 diff --git a/lib/galaxy/dependencies/pinned-requirements.txt b/lib/galaxy/dependencies/pinned-requirements.txt index 91752afea326..c911f9b8b305 100644 --- a/lib/galaxy/dependencies/pinned-requirements.txt +++ b/lib/galaxy/dependencies/pinned-requirements.txt @@ -1,218 +1,216 @@ ---extra-index-url https://wheels.galaxyproject.org/simple - -a2wsgi==1.10.7 ; python_version >= "3.8" and python_version < "3.13" -adal==1.2.7 ; python_version >= "3.8" and python_version < "3.13" -aiobotocore==2.15.2 ; python_version >= "3.8" and python_version < "3.13" -aiodataloader==0.4.0 ; python_version >= "3.8" and python_version < "3.13" -aiofiles==24.1.0 ; python_version >= "3.8" and python_version < "3.13" -aiohappyeyeballs==2.4.3 ; python_version >= "3.8" and python_version < "3.13" -aiohttp==3.10.10 ; python_version >= "3.8" and python_version < "3.13" -aioitertools==0.12.0 ; python_version >= "3.8" and python_version < "3.13" -aiosignal==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -alembic==1.13.3 ; python_version >= "3.8" and python_version < "3.13" -amqp==5.2.0 ; python_version >= "3.8" and python_version < "3.13" -annotated-types==0.7.0 ; python_version >= "3.8" and python_version < "3.13" -anyio==4.5.2 ; python_version >= "3.8" and python_version < "3.13" -apispec==6.6.1 ; python_version >= "3.8" and python_version < "3.13" -appdirs==1.4.4 ; python_version >= "3.8" and python_version < "3.13" -arcp==0.2.1 ; python_version >= "3.8" and python_version < "3.13" -argcomplete==3.5.1 ; python_version >= "3.8" and python_version < "3.13" -async-timeout==4.0.3 ; python_version >= "3.8" and python_version < "3.11" -attmap==0.13.2 ; python_version >= "3.8" and python_version < "3.13" -attrs==24.2.0 ; python_version >= "3.8" and python_version < "3.13" -babel==2.16.0 ; python_version >= "3.8" and python_version < "3.13" -backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9" -backports-zoneinfo[tzdata]==0.2.1 ; python_version >= "3.8" and python_version < "3.9" -bagit-profile==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -bagit==1.8.1 ; python_version >= "3.8" and python_version < "3.13" -bcrypt==4.2.0 ; python_version >= "3.8" and python_version < "3.13" -bdbag==1.7.3 ; python_version >= "3.8" and python_version < "3.13" -beaker==1.13.0 ; python_version >= "3.8" and python_version < "3.13" -billiard==4.2.1 ; python_version >= "3.8" and python_version < "3.13" -bioblend==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.13" -boltons==24.0.0 ; python_version >= "3.8" and python_version < "3.13" -boto==2.49.0 ; python_version >= "3.8" and python_version < "3.13" -botocore==1.35.36 ; python_version >= "3.8" and python_version < "3.13" -bx-python==0.13.0 ; python_version >= "3.8" and python_version < "3.13" -cachecontrol[filecache]==0.14.0 ; python_version >= "3.8" and python_version < "3.13" -celery==5.4.0 ; python_version >= "3.8" and python_version < "3.13" -certifi==2024.8.30 ; python_version >= "3.8" and python_version < "3.13" -cffi==1.17.1 ; python_version >= "3.8" and python_version < "3.13" -charset-normalizer==3.4.0 ; python_version >= "3.8" and python_version < "3.13" -cheetah3==3.2.6.post1 ; python_version >= "3.8" and python_version < "3.13" -circus==0.18.0 ; python_version >= "3.8" and python_version < "3.13" -click-didyoumean==0.3.1 ; python_version >= "3.8" and python_version < "3.13" -click-plugins==1.1.1 ; python_version >= "3.8" and python_version < "3.13" -click-repl==0.3.0 ; python_version >= "3.8" and python_version < "3.13" -click==8.1.7 ; python_version >= "3.8" and python_version < "3.13" -cloudauthz==0.6.0 ; python_version >= "3.8" and python_version < "3.13" -cloudbridge==3.2.0 ; python_version >= "3.8" and python_version < "3.13" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" and platform_system == "Windows" -coloredlogs==15.0.1 ; python_version >= "3.8" and python_version < "3.13" -conda-package-streaming==0.11.0 ; python_version >= "3.8" and python_version < "3.13" -cryptography==43.0.3 ; python_version >= "3.8" and python_version < "3.13" -cwl-upgrader==1.2.11 ; python_version >= "3.8" and python_version < "3.13" -cwl-utils==0.35 ; python_version >= "3.8" and python_version < "3.13" -cwltool==3.1.20241007082533 ; python_version >= "3.8" and python_version < "3.13" -defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.13" -deprecation==2.1.0 ; python_version >= "3.8" and python_version < "3.13" -dictobj==0.4 ; python_version >= "3.8" and python_version < "3.13" -dnspython==2.6.1 ; python_version >= "3.8" and python_version < "3.13" -docopt==0.6.2 ; python_version >= "3.8" and python_version < "3.13" -docutils==0.20.1 ; python_version >= "3.8" and python_version < "3.13" -dparse==0.6.3 ; python_version >= "3.8" and python_version < "3.13" -edam-ontology==1.25.2 ; python_version >= "3.8" and python_version < "3.13" -email-validator==2.2.0 ; python_version >= "3.8" and python_version < "3.13" -exceptiongroup==1.2.2 ; python_version >= "3.8" and python_version < "3.11" -fastapi-slim==0.115.3 ; python_version >= "3.8" and python_version < "3.13" -filelock==3.16.1 ; python_version >= "3.8" and python_version < "3.13" -frozenlist==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -fs==2.4.16 ; python_version >= "3.8" and python_version < "3.13" -fsspec==2024.10.0 ; python_version >= "3.8" and python_version < "3.13" -future==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -galaxy2cwl==0.1.4 ; python_version >= "3.8" and python_version < "3.13" -graphene-sqlalchemy==3.0.0rc1 ; python_version >= "3.8" and python_version < "3.13" -graphene==3.4 ; python_version >= "3.8" and python_version < "3.13" -graphql-core==3.2.5 ; python_version >= "3.8" and python_version < "3.13" -graphql-relay==3.2.0 ; python_version >= "3.8" and python_version < "3.13" -gravity==1.0.6 ; python_version >= "3.8" and python_version < "3.13" -greenlet==3.1.1 ; python_version < "3.13" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version >= "3.8" -gunicorn==23.0.0 ; python_version >= "3.8" and python_version < "3.13" -gxformat2==0.20.0 ; python_version >= "3.8" and python_version < "3.13" -h11==0.14.0 ; python_version >= "3.8" and python_version < "3.13" -h5grove==2.3.0 ; python_version >= "3.8" and python_version < "3.13" -h5py==3.11.0 ; python_version >= "3.8" and python_version < "3.9" -h5py==3.12.1 ; python_version >= "3.9" and python_version < "3.13" -humanfriendly==10.0 ; python_version >= "3.8" and python_version < "3.13" -idna==3.10 ; python_version >= "3.8" and python_version < "3.13" -importlib-metadata==8.5.0 ; python_version >= "3.8" and python_version < "3.13" -importlib-resources==6.4.5 ; python_version >= "3.8" and python_version < "3.9" -isa-rwval @ git+https://github.com/nsoranzo/isa-rwval.git@3d989181058d2765a93cb0e7ca85d6955e0eb6ef ; python_version >= "3.8" and python_version < "3.13" -isal==1.7.1 ; python_version >= "3.8" and python_version < "3.13" -isodate==0.6.1 ; python_version >= "3.8" and python_version < "3.13" -jinja2==3.1.4 ; python_version >= "3.8" and python_version < "3.13" -jmespath==1.0.1 ; python_version >= "3.8" and python_version < "3.13" -jsonref==1.1.0 ; python_version >= "3.8" and python_version < "3.13" -jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.13" -jsonschema==4.23.0 ; python_version >= "3.8" and python_version < "3.13" -kombu==5.4.2 ; python_version >= "3.8" and python_version < "3.13" -lagom==2.6.0 ; python_version >= "3.8" and python_version < "3.13" -lxml==5.3.0 ; python_version >= "3.8" and python_version < "3.13" -mako==1.3.6 ; python_version >= "3.8" and python_version < "3.13" -markdown-it-py==3.0.0 ; python_version >= "3.8" and python_version < "3.13" -markdown==3.7 ; python_version >= "3.8" and python_version < "3.13" -markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.13" -mdurl==0.1.2 ; python_version >= "3.8" and python_version < "3.13" -mercurial==6.8.1 ; python_version >= "3.8" and python_version < "3.13" -mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.13" -mrcfile==1.5.3 ; python_version >= "3.8" and python_version < "3.13" -msal==1.31.0 ; python_version >= "3.8" and python_version < "3.13" -msgpack==1.1.0 ; python_version >= "3.8" and python_version < "3.13" -multidict==6.1.0 ; python_version >= "3.8" and python_version < "3.13" -mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -networkx==3.1 ; python_version >= "3.8" and python_version < "3.13" -nodeenv==1.9.1 ; python_version >= "3.8" and python_version < "3.13" -numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.9" -numpy==2.0.2 ; python_version >= "3.9" and python_version < "3.10" -numpy==2.1.2 ; python_version >= "3.10" and python_version < "3.13" -oauthlib==3.2.2 ; python_version >= "3.8" and python_version < "3.13" -orjson==3.10.10 ; python_version >= "3.8" and python_version < "3.13" -oyaml==1.0 ; python_version >= "3.8" and python_version < "3.13" -packaging==24.1 ; python_version >= "3.8" and python_version < "3.13" -paramiko==3.5.0 ; python_version >= "3.8" and python_version < "3.13" -parsley==1.3 ; python_version >= "3.8" and python_version < "3.13" -paste==3.10.1 ; python_version >= "3.8" and python_version < "3.13" -pastedeploy==3.1.0 ; python_version >= "3.8" and python_version < "3.13" -pebble==5.0.7 ; python_version >= "3.8" and python_version < "3.13" -pillow==10.4.0 ; python_version >= "3.8" and python_version < "3.13" -pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -promise==2.3 ; python_version >= "3.8" and python_version < "3.13" -prompt-toolkit==3.0.48 ; python_version >= "3.8" and python_version < "3.13" -propcache==0.2.0 ; python_version >= "3.8" and python_version < "3.13" -prov==1.5.1 ; python_version >= "3.8" and python_version < "3.13" -psutil==6.1.0 ; python_version >= "3.8" and python_version < "3.13" -pulsar-galaxy-lib==0.15.6 ; python_version >= "3.8" and python_version < "3.13" -pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13" -pycryptodome==3.21.0 ; python_version >= "3.8" and python_version < "3.13" -pydantic-core==2.23.4 ; python_version >= "3.8" and python_version < "3.13" -pydantic-tes==0.1.5 ; python_version >= "3.8" and python_version < "3.13" -pydantic==2.9.2 ; python_version >= "3.8" and python_version < "3.13" -pydantic[email]==2.9.2 ; python_version >= "3.8" and python_version < "3.13" -pydot==2.0.0 ; python_version >= "3.8" and python_version < "3.13" -pyeventsystem==0.1.0 ; python_version >= "3.8" and python_version < "3.13" -pyfaidx==0.8.1.3 ; python_version >= "3.8" and python_version < "3.13" -pygments==2.18.0 ; python_version >= "3.8" and python_version < "3.13" -pyjwt==2.9.0 ; python_version >= "3.8" and python_version < "3.13" -pyjwt[crypto]==2.9.0 ; python_version >= "3.8" and python_version < "3.13" -pykwalify==1.8.0 ; python_version >= "3.8" and python_version < "3.13" -pylibmagic==0.5.0 ; python_version >= "3.8" and python_version < "3.13" -pynacl==1.5.0 ; python_version >= "3.8" and python_version < "3.13" -pyparsing==3.1.4 ; python_version >= "3.8" and python_version < "3.13" -pyreadline3==3.5.4 ; sys_platform == "win32" and python_version >= "3.8" and python_version < "3.13" -pysam==0.22.1 ; python_version >= "3.8" and python_version < "3.13" -python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.13" -python-magic==0.4.27 ; python_version >= "3.8" and python_version < "3.13" -python-multipart==0.0.12 ; python_version >= "3.8" and python_version < "3.13" -python3-openid==3.2.0 ; python_version >= "3.8" and python_version < "3.13" -pytz==2024.2 ; python_version >= "3.8" and python_version < "3.13" -pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "3.13" -pyzmq==26.2.0 ; python_version >= "3.8" and python_version < "3.13" -rdflib==6.3.2 ; python_version >= "3.8" and python_version < "3.13" -referencing==0.35.1 ; python_version >= "3.8" and python_version < "3.13" -refgenconf==0.12.2 ; python_version >= "3.8" and python_version < "3.13" -regex==2024.9.11 ; python_version >= "3.8" and python_version < "3.13" -repoze-lru==0.7 ; python_version >= "3.8" and python_version < "3.13" -requests-oauthlib==2.0.0 ; python_version >= "3.8" and python_version < "3.13" -requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -requests-unixsocket==0.3.0 ; python_version >= "3.8" and python_version < "3.13" -requests==2.32.3 ; python_version >= "3.8" and python_version < "3.13" -rich==13.9.3 ; python_version >= "3.8" and python_version < "3.13" -rocrate==0.11.0 ; python_version >= "3.8" and python_version < "3.13" -routes==2.5.1 ; python_version >= "3.8" and python_version < "3.13" -rpds-py==0.20.0 ; python_version >= "3.8" and python_version < "3.13" -ruamel-yaml-clib==0.2.8 ; platform_python_implementation == "CPython" and python_version < "3.13" and python_version >= "3.8" -ruamel-yaml==0.18.6 ; python_version >= "3.8" and python_version < "3.13" -s3fs==2024.10.0 ; python_version >= "3.8" and python_version < "3.13" -schema-salad==8.7.20241010092723 ; python_version >= "3.8" and python_version < "3.13" -setuptools-scm==5.0.2 ; python_version >= "3.8" and python_version < "3.13" -setuptools==75.2.0 ; python_version >= "3.8" and python_version < "3.13" -six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -sniffio==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -social-auth-core==4.5.4 ; python_version >= "3.8" and python_version < "3.13" -sortedcontainers==2.4.0 ; python_version >= "3.8" and python_version < "3.13" -spython==0.3.14 ; python_version >= "3.8" and python_version < "3.13" -sqlalchemy==2.0.35 ; python_version >= "3.8" and python_version < "3.13" -sqlitedict==2.1.0 ; python_version >= "3.8" and python_version < "3.13" -sqlparse==0.5.1 ; python_version >= "3.8" and python_version < "3.13" -starlette-context==0.3.6 ; python_version >= "3.8" and python_version < "3.13" -starlette-graphene3==0.6.0 ; python_version >= "3.8" and python_version < "3.13" -starlette==0.41.0 ; python_version >= "3.8" and python_version < "3.13" -supervisor==4.2.5 ; python_version >= "3.8" and python_version < "3.13" -svgwrite==1.4.3 ; python_version >= "3.8" and python_version < "3.13" -tenacity==9.0.0 ; python_version >= "3.8" and python_version < "3.13" -tifffile==2023.7.10 ; python_version >= "3.8" and python_version < "3.13" -tinydb==4.8.2 ; python_version >= "3.8" and python_version < "3.13" -tomli==2.0.2 ; python_version >= "3.8" and python_version < "3.11" -tornado==6.4.1 ; python_version >= "3.8" and python_version < "3.13" -tqdm==4.66.5 ; python_version >= "3.8" and python_version < "3.13" -tuspy==1.0.3 ; python_version >= "3.8" and python_version < "3.13" -tuswsgi==0.5.5 ; python_version >= "3.8" and python_version < "3.13" -typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "3.13" -tzdata==2024.2 ; python_version >= "3.8" and python_version < "3.13" -tzlocal==5.2 ; python_version >= "3.8" and python_version < "3.13" -ubiquerg==0.8.0 ; python_version >= "3.8" and python_version < "3.13" -urllib3==1.26.20 ; python_version >= "3.8" and python_version < "3.13" -uvicorn==0.32.0 ; python_version >= "3.8" and python_version < "3.13" -uvloop==0.21.0 ; python_version >= "3.8" and python_version < "3.13" -vine==5.1.0 ; python_version >= "3.8" and python_version < "3.13" -wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.13" -webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.13" -webob==1.8.9 ; python_version >= "3.8" and python_version < "3.13" -whoosh==2.7.4 ; python_version >= "3.8" and python_version < "3.13" -wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -yacman==0.9.3 ; python_version >= "3.8" and python_version < "3.13" -yarl==1.15.2 ; python_version >= "3.8" and python_version < "3.13" -zipp==3.20.2 ; python_version >= "3.8" and python_version < "3.13" -zipstream-new==1.1.8 ; python_version >= "3.8" and python_version < "3.13" -zstandard==0.23.0 ; python_version >= "3.8" and python_version < "3.13" +# This file was autogenerated by uv via the following command: +# uv export --no-hashes --no-dev +a2wsgi==1.10.7 +adal==1.2.7 +aiobotocore==2.15.2 +aiodataloader==0.4.0 +aiofiles==24.1.0 +aiohappyeyeballs==2.4.3 +aiohttp==3.10.10 +aioitertools==0.12.0 +aiosignal==1.3.1 +alembic==1.13.3 +amqp==5.2.0 +annotated-types==0.7.0 +anyio==4.5.2 +apispec==6.6.1 +appdirs==1.4.4 +arcp==0.2.1 +argcomplete==3.5.1 +async-timeout==4.0.3 ; python_full_version < '3.11' +attmap==0.13.2 +attrs==24.2.0 +babel==2.16.0 +backports-zoneinfo==0.2.1 ; python_full_version < '3.9' +bagit==1.8.1 +bagit-profile==1.3.1 +bcrypt==4.2.0 +bdbag==1.7.3 +beaker==1.13.0 +billiard==4.2.1 +bioblend==1.3.0 +bleach==6.1.0 +boltons==24.0.0 +boto==2.49.0 +botocore==1.35.36 +bx-python==0.13.0 +cachecontrol==0.14.0 +celery==5.4.0 +certifi==2024.8.30 +cffi==1.17.1 +charset-normalizer==3.4.0 +cheetah3==3.2.6.post1 +circus==0.18.0 +click==8.1.7 +click-didyoumean==0.3.1 +click-plugins==1.1.1 +click-repl==0.3.0 +cloudauthz==0.6.0 +cloudbridge==3.2.0 +colorama==0.4.6 ; platform_system == 'Windows' +coloredlogs==15.0.1 +conda-package-streaming==0.11.0 +cryptography==43.0.3 +cwl-upgrader==1.2.11 +cwl-utils==0.35 +cwltool==3.1.20241007082533 +defusedxml==0.7.1 +deprecation==2.1.0 +dictobj==0.4 +dnspython==2.6.1 +docopt==0.6.2 +docutils==0.20.1 +dparse==0.6.3 +edam-ontology==1.25.2 +email-validator==2.2.0 +exceptiongroup==1.2.2 ; python_full_version < '3.11' +fastapi-slim==0.115.4 +filelock==3.16.1 +frozenlist==1.5.0 +fs==2.4.16 +fsspec==2024.10.0 +future==1.0.0 +galaxy2cwl==0.1.4 +graphene==3.4.1 +graphene-sqlalchemy==3.0.0rc1 +graphql-core==3.2.5 +graphql-relay==3.2.0 +gravity==1.0.6 +greenlet==3.1.1 ; (python_full_version < '3.13' and platform_machine == 'AMD64') or (python_full_version < '3.13' and platform_machine == 'WIN32') or (python_full_version < '3.13' and platform_machine == 'aarch64') or (python_full_version < '3.13' and platform_machine == 'amd64') or (python_full_version < '3.13' and platform_machine == 'ppc64le') or (python_full_version < '3.13' and platform_machine == 'win32') or (python_full_version < '3.13' and platform_machine == 'x86_64') +gunicorn==23.0.0 +gxformat2==0.20.0 +h11==0.14.0 +h5grove==2.3.0 +h5py==3.11.0 ; python_full_version < '3.9' +h5py==3.12.1 ; python_full_version >= '3.9' +humanfriendly==10.0 +idna==3.10 +importlib-metadata==8.5.0 +importlib-resources==6.4.5 ; python_full_version < '3.9' +isa-rwval @ git+https://github.com/nsoranzo/isa-rwval.git@3d989181058d2765a93cb0e7ca85d6955e0eb6ef +isal==1.7.1 +isodate==0.6.1 +jinja2==3.1.4 +jmespath==1.0.1 +jsonref==1.1.0 +jsonschema==4.23.0 +jsonschema-specifications==2023.12.1 +kombu==5.4.2 +lagom==2.6.0 +legacy-cgi==2.6.1 ; python_full_version >= '3.13' +lxml==5.3.0 +mako==1.3.6 +markdown==3.7 +markdown-it-py==3.0.0 +markupsafe==2.1.5 +mdurl==0.1.2 +mercurial==6.8.2 +mistune==3.0.2 +mrcfile==1.5.3 +msal==1.31.0 +msgpack==1.1.0 +multidict==6.1.0 +mypy-extensions==1.0.0 +networkx==3.1 +nodeenv==1.9.1 +numpy==1.24.4 ; python_full_version < '3.9' +numpy==2.0.2 ; python_full_version == '3.9.*' +numpy==2.1.2 ; python_full_version >= '3.10' +oauthlib==3.2.2 +orjson==3.10.10 +oyaml==1.0 +packaging==24.1 +paramiko==3.5.0 +parsley==1.3 +paste==3.10.1 +pastedeploy==3.1.0 +pebble==5.0.7 +pillow==10.4.0 +pkgutil-resolve-name==1.3.10 ; python_full_version < '3.9' +promise==2.3 +prompt-toolkit==3.0.48 +propcache==0.2.0 +prov==1.5.1 +psutil==6.1.0 +pulsar-galaxy-lib==0.15.6 +pycparser==2.22 +pycryptodome==3.21.0 +pydantic==2.9.2 +pydantic-core==2.23.4 +pydantic-tes==0.1.5 +pydot==2.0.0 +pyeventsystem==0.1.0 +pyfaidx==0.8.1.3 +pygments==2.18.0 +pyjwt==2.9.0 +pykwalify==1.8.0 +pylibmagic==0.5.0 +pynacl==1.5.0 +pyparsing==3.1.4 +pyreadline3==3.5.4 ; sys_platform == 'win32' +pysam==0.22.1 +python-dateutil==2.9.0.post0 +python-magic==0.4.27 +python-multipart==0.0.16 +python3-openid==3.2.0 +pytz==2024.2 +pyyaml==6.0.2 +pyzmq==26.2.0 +rdflib==6.3.2 +referencing==0.35.1 +refgenconf==0.12.2 +regex==2024.9.11 +repoze-lru==0.7 +requests==2.32.3 +requests-oauthlib==2.0.0 +requests-toolbelt==1.0.0 +requests-unixsocket==0.3.0 +rich==13.9.3 +rocrate==0.11.0 +routes==2.5.1 +rpds-py==0.20.0 +ruamel-yaml==0.18.6 +ruamel-yaml-clib==0.2.8 ; python_full_version < '3.13' and platform_python_implementation == 'CPython' +s3fs==2024.10.0 +schema-salad==8.7.20241010092723 +setuptools==75.2.0 +setuptools-scm==5.0.2 +six==1.16.0 +sniffio==1.3.1 +social-auth-core==4.5.4 +sortedcontainers==2.4.0 +spython==0.3.14 +sqlalchemy==2.0.35 +sqlitedict==2.1.0 +sqlparse==0.5.1 +starlette==0.41.2 +starlette-context==0.3.6 +starlette-graphene3==0.6.0 +supervisor==4.2.5 +svgwrite==1.4.3 +tenacity==9.0.0 +tifffile==2023.7.10 +tinydb==4.8.2 +tomli==2.0.2 ; python_full_version < '3.11' +tornado==6.4.1 +tqdm==4.66.6 +tuspy==1.0.3 +tuswsgi==0.5.5 +typing-extensions==4.12.2 +tzdata==2024.2 +tzlocal==5.2 +ubiquerg==0.8.0 +urllib3==1.26.20 +uvicorn==0.32.0 +uvloop==0.21.0 +vine==5.1.0 +wcwidth==0.2.13 +webencodings==0.5.1 +webob==1.8.9 +whoosh==2.7.4 +wrapt==1.16.0 +yacman==0.9.3 +yarl==1.15.2 +zipp==3.20.2 +zipstream-new==1.1.8 +zstandard==0.23.0 diff --git a/lib/galaxy/dependencies/pinned-typecheck-requirements.txt b/lib/galaxy/dependencies/pinned-typecheck-requirements.txt index 30501dcbe567..a835c64276fa 100644 --- a/lib/galaxy/dependencies/pinned-typecheck-requirements.txt +++ b/lib/galaxy/dependencies/pinned-typecheck-requirements.txt @@ -1,30 +1,32 @@ -annotated-types==0.7.0 ; python_version >= "3.8" and python_version < "3.13" -boto3-stubs[s3]==1.35.49 ; python_version >= "3.8" and python_version < "3.13" -botocore-stubs==1.35.49 ; python_version >= "3.8" and python_version < "3.13" -cffi==1.17.1 ; python_version >= "3.8" and python_version < "3.13" and platform_python_implementation != "PyPy" -cryptography==43.0.3 ; python_version >= "3.8" and python_version < "3.13" -lxml-stubs==0.5.1 ; python_version >= "3.8" and python_version < "3.13" -mypy-boto3-s3==1.35.46 ; python_version >= "3.8" and python_version < "3.13" -mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -mypy==1.13.0 ; python_version >= "3.8" and python_version < "3.13" -pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13" and platform_python_implementation != "PyPy" -pydantic-core==2.23.4 ; python_version >= "3.8" and python_version < "3.13" -pydantic==2.9.2 ; python_version >= "3.8" and python_version < "3.13" -tomli==2.0.2 ; python_version >= "3.8" and python_version < "3.11" -types-awscrt==0.23.0 ; python_version >= "3.8" and python_version < "3.13" -types-bleach==6.1.0.20240331 ; python_version >= "3.8" and python_version < "3.13" -types-boto==2.49.18.20241019 ; python_version >= "3.8" and python_version < "3.13" -types-contextvars==2.4.7.3 ; python_version >= "3.8" and python_version < "3.13" -types-dataclasses==0.6.6 ; python_version >= "3.8" and python_version < "3.13" -types-docutils==0.21.0.20241005 ; python_version >= "3.8" and python_version < "3.13" -types-html5lib==1.1.11.20241018 ; python_version >= "3.8" and python_version < "3.13" -types-markdown==3.7.0.20240822 ; python_version >= "3.8" and python_version < "3.13" -types-paramiko==3.5.0.20240928 ; python_version >= "3.8" and python_version < "3.13" -types-python-dateutil==2.9.0.20241003 ; python_version >= "3.8" and python_version < "3.13" -types-pyyaml==6.0.12.20240917 ; python_version >= "3.8" and python_version < "3.13" -types-requests==2.31.0.6 ; python_version >= "3.8" and python_version < "3.13" -types-s3transfer==0.10.3 ; python_version >= "3.8" and python_version < "3.13" -types-setuptools==75.2.0.20241025 ; python_version >= "3.8" and python_version < "3.13" -types-six==1.16.21.20241009 ; python_version >= "3.8" and python_version < "3.13" -types-urllib3==1.26.25.14 ; python_version >= "3.8" and python_version < "3.13" -typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "3.13" +# This file was autogenerated by uv via the following command: +# uv export --no-hashes --only-group=typecheck +annotated-types==0.7.0 +boto3-stubs==1.35.49 +botocore-stubs==1.35.49 +cffi==1.17.1 ; platform_python_implementation != 'PyPy' +cryptography==43.0.3 +lxml-stubs==0.5.1 +mypy==1.13.0 +mypy-boto3-s3==1.35.46 +mypy-extensions==1.0.0 +pycparser==2.22 ; platform_python_implementation != 'PyPy' +pydantic==2.9.2 +pydantic-core==2.23.4 +tomli==2.0.2 ; python_full_version < '3.11' +types-awscrt==0.23.0 +types-bleach==6.1.0.20240331 +types-boto==2.49.18.20241019 +types-contextvars==2.4.7.3 +types-dataclasses==0.6.6 +types-docutils==0.21.0.20241005 +types-html5lib==1.1.11.20241018 +types-markdown==3.7.0.20240822 +types-paramiko==3.5.0.20240928 +types-python-dateutil==2.9.0.20241003 +types-pyyaml==6.0.12.20240917 +types-requests==2.31.0.6 +types-s3transfer==0.10.3 +types-setuptools==75.2.0.20241025 +types-six==1.16.21.20241009 +types-urllib3==1.26.25.14 +typing-extensions==4.12.2 diff --git a/lib/galaxy/dependencies/update.sh b/lib/galaxy/dependencies/update.sh index 8175144aba5d..2d26f6b40bef 100755 --- a/lib/galaxy/dependencies/update.sh +++ b/lib/galaxy/dependencies/update.sh @@ -1,25 +1,25 @@ #!/bin/sh -# This script installs poetry if it's not already installed in the user account. -# It then runs poetry inside Galaxy's root directory, potentially updating -# pyproject.toml and poetry.lock, and the pinned and dev requirements files. +# This script installs uv if it's not already installed in the user account. +# It then runs uv inside Galaxy's root directory, potentially updating +# pyproject.toml and uv.lock, and the pinned requirements files. set -e -SUPPORTED_PYTHON_VERSIONS="3.8 3.9 3.10 3.11 3.12" -NOT_SUPPORTED_NEXT_PYTHON_VERSION="3.13" - this_directory="$(cd "$(dirname "$0")" > /dev/null && pwd)" usage() { - printf "Usage: %s: [-a] [pkg_spec...]\n" "${0##*/}" >&2 + printf "Usage: %s: [-p pkg]\n" "${0##*/}" >&2 } -add= -while getopts 'a' OPTION +pkg= +while getopts 'p:h' OPTION do case $OPTION in - a) add=1 + p) pkg="$OPTARG" + ;; + h) usage + exit 0 ;; ?) usage exit 2 @@ -28,68 +28,20 @@ do done shift $((OPTIND - 1)) -if [ -n "$add" ] && [ $# -eq 0 ]; then - printf "When adding (-a), you must provide at least one package specification.\n" >&2 - usage - exit 2 -fi - -# Install the latest version of poetry into the user account -curl -sSL https://install.python-poetry.org | python3 - -poetry self add 'poetry-plugin-export!=1.7.0' # https://github.com/python-poetry/poetry-plugin-export/issues/269 +# Create a virtual environment in a tmp directory and install uv into it +uv_venv=$(mktemp -d "${TMPDIR:-/tmp}/uv_venv.XXXXXXXXXX") +python3 -m venv "${uv_venv}" +"${uv_venv}/bin/python" -m pip install uv +uv="${uv_venv}/bin/uv" -# Run poetry (this may update pyproject.toml and poetry.lock). -if [ -z "$add" ]; then - poetry update -vv --lock "$@" +# Run uv (this may update pyproject.toml and uv.lock). +if [ -n "$pkg" ]; then + ${uv} lock --upgrade-package "$pkg" else - poetry add -vv --lock "$@" + ${uv} lock fi # Update pinned requirements files. -PINNED_REQUIREMENTS_FILE=$this_directory/pinned-requirements.txt -PINNED_DEV_REQUIREMENTS_FILE=$this_directory/dev-requirements.txt -poetry export -f requirements.txt --without-hashes --output "$PINNED_REQUIREMENTS_FILE" -poetry export --only dev -f requirements.txt --without-hashes --output "$PINNED_DEV_REQUIREMENTS_FILE" -poetry export --only typecheck -f requirements.txt --without-hashes --output "$this_directory/pinned-typecheck-requirements.txt" - -# Fix requirements - -latest_package_version_for_python_version () { - PIP_INDEX_OUT=$(pip index versions --python-version "$2" "$1") - echo "$PIP_INDEX_OUT" | head -n 1 | sed -e 's/.* (\(.*\)).*/\1/' -} - -split_requirement () { - PACKAGE_NAME=$1 - - if ! pip index version --help >/dev/null; then - echo "pip >= 21.2.1 required for the 'index' command" - exit 1 - fi - - NEW_REQUIREMENTS= - PREVIOUS_LATEST_PACKAGE_VERSION= - for PYTHON_VERSION in $SUPPORTED_PYTHON_VERSIONS; do - LATEST_PACKAGE_VERSION=$(latest_package_version_for_python_version "$PACKAGE_NAME" "$PYTHON_VERSION") - if [ -z "$NEW_REQUIREMENTS" ]; then - NEW_REQUIREMENTS="$PACKAGE_NAME==$LATEST_PACKAGE_VERSION ; python_version >= \"$PYTHON_VERSION\"" - elif [ "$LATEST_PACKAGE_VERSION" != "$PREVIOUS_LATEST_PACKAGE_VERSION" ]; then - NEW_REQUIREMENTS="$NEW_REQUIREMENTS and python_version < \"$PYTHON_VERSION\"\n$PACKAGE_NAME==$LATEST_PACKAGE_VERSION ; python_version >= \"$PYTHON_VERSION\"" - fi - PREVIOUS_LATEST_PACKAGE_VERSION=$LATEST_PACKAGE_VERSION - done - if [ -n "$NOT_SUPPORTED_NEXT_PYTHON_VERSION" ]; then - NEW_REQUIREMENTS="$NEW_REQUIREMENTS and python_version < \"$NOT_SUPPORTED_NEXT_PYTHON_VERSION\"" - fi - - sed -i.orig -e "s/^$PACKAGE_NAME==.*/$NEW_REQUIREMENTS/" "$PINNED_REQUIREMENTS_FILE" "$PINNED_DEV_REQUIREMENTS_FILE" -} - -# For some packages there is no recent version that works on all Python versions -# supported by Galaxy, so Poetry resorts to an old version. Here we replace any -# such requirement with multiple Python-version-specific requirements. -split_requirement contourpy -split_requirement h5py -split_requirement matplotlib -split_requirement numpy -split_requirement scipy +${uv} export --no-hashes --no-dev > "$this_directory/pinned-requirements.txt" +${uv} export --no-hashes --only-group=dev > "$this_directory/dev-requirements.txt" +${uv} export --no-hashes --only-group=typecheck > "$this_directory/pinned-typecheck-requirements.txt" diff --git a/pyproject.toml b/pyproject.toml index 96860904bd55..131444f7c10b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,182 @@ +[project] +name = "galaxy" +version = "0.1.0" # Not the real version, which is instead defined in lib/galaxy/version.py +description = "Galaxy is an open, web-based platform for accessible, reproducible, and transparent computational research." +authors = [ + {name = "Galaxy Contributors"}, +] +maintainers = [ + {name = "Galaxy Committers", email = "galaxy-committers@lists.galaxyproject.org"} +] +license = {file = "LICENSE.txt"} +readme = "README.rst" +requires-python = ">=3.8" +dependencies = [ + "a2wsgi", + "aiofiles", + "alembic", + "apispec", + "Babel", + "bdbag>=1.6.3", + "Beaker", + "bioblend", + "bleach", + "boltons", + "boto", + "bx-python", + "celery", + "Cheetah3", + "cloudauthz==0.6.0", + "cloudbridge", + "circus", + "conda-package-streaming", + "cwltool>=3.1.20230624081518", # save time, minimum needed by cwl-1.0 branch + "dictobj", + "dnspython", + "docutils!=0.17,!=0.17.1", + "dparse", + "edam-ontology", + "fastapi-slim>=0.111.0", + "fs", + "future>=1.0.0", # Python 3.12 support + "graphene", + "graphene-sqlalchemy>=3.0.0rc1", # need a beta release to be compat. with starlette plugin + "graphql-core", + "gravity>=1.0.4", + "gunicorn", + "gxformat2", + "h5grove>=1.2.1", + "h5py", # Python 3.8 support + "h5py>=3.12 ; python_version>='3.9'", # Python 3.13 support + "importlib-resources ; python_version<'3.9'", # for importlib.{abc.Traversable,resources.{files, Package}} + "isa-rwval @ git+https://github.com/nsoranzo/isa-rwval.git@master", # https://github.com/ISA-tools/isa-rwval/pull/17 + "isal", + "jinja2", + "kombu>=5.3", # for importlib-metadata fix + "lagom", + "Mako", + "Markdown", + "MarkupSafe", + "mercurial", + "mrcfile", + "msal", + "nodeenv", + "numpy", + "numpy>=1.26.0 ; python_version=='3.9'", # Python 3.12 support + "numpy>=2.1.0 ; python_version>='3.10'", # Python 3.13 support + "packaging", + "paramiko!=2.9.0,!=2.9.1", # https://github.com/paramiko/paramiko/issues/1961 + "Parsley", + "Paste", + "pebble", + "pillow", + "psutil", + "pulsar-galaxy-lib>=0.15.0.dev0", + "pycryptodome", + "pydantic[email]>=2.7.4", # https://github.com/pydantic/pydantic/pull/9639 + "PyJWT", + "pykwalify", + "pylibmagic", + "pyparsing", + "pysam>=0.21", # for Python 3.11 support on macOS + "python-dateutil", + "python-magic", + "python-multipart", # required to support form parsing in FastAPI/Starlette + "PyYAML", + "refgenconf>=0.12.0", + "regex", + "requests", + "rocrate", + "Routes", + "s3fs>=2023.1.0", + "schema-salad!=8.3.20220721194857", # https://github.com/common-workflow-language/schema_salad/issues/575 + "social-auth-core>=4.5.0", # to drop dependency on abandoned python-jose + "sortedcontainers", + "SQLAlchemy>=2.0,<2.1,!=2.0.36", # https://github.com/sqlalchemy/sqlalchemy/issues/12019, + "sqlitedict", + "sqlparse", + "starlette", + "starlette-context", + "starlette-graphene3", + "svgwrite", + "tifffile", + "tuswsgi", + "typing-extensions", + "uvicorn!=0.28.0", # https://github.com/galaxyproject/galaxy/issues/17669 + "uvloop", + "WebOb", + "Whoosh", + "zipstream-new", +] + +[project.urls] +Homepage = "https://galaxyproject.org/" +Documentation = "https://docs.galaxyproject.org/" +Repository = "https://github.com/galaxyproject/galaxy" +"Bug Tracker" = "https://github.com/galaxyproject/galaxy/issues" + +[dependency-groups] +dev = [ + "ase>=3.18.1", + "axe-selenium-python", + "black", + "boto3", + "codespell", + "cwltest", + "darker", + "fluent-logger", + "galaxy-release-util", + "httpx", + "isort", + "lxml!=4.2.2", + "markdown-it-reporter", + "myst-parser", + "onedatafilerestclient==21.2.5.2", + "pkce", + "playwright", + "pytest<8", # https://github.com/galaxyproject/galaxy/issues/17561 + "pytest-asyncio", + "pytest-cov", + "pytest-html", + "pytest-httpserver", + "python-irodsclient!=1.1.2", # https://github.com/irods/python-irodsclient/issues/356 + "pytest-json-report", + "pytest-mock", + "pytest-playwright", + "pytest-postgresql!=3.0.0", # https://github.com/ClearcodeHQ/pytest-postgresql/issues/426 + "pytest-shard", + "responses", + "rucio-clients>=33.6.0 ; python_version>='3.9'", # https://github.com/galaxyproject/galaxy/pull/17156 + "selenium", + "seletools", + "Sphinx>=4.0", # support docutils 0.17 + "sphinx-rtd-theme", + "statsd", + "testfixtures", + "tuspy", + "twill>=3.2.1", # https://github.com/twill-tools/twill/issues/18 + "watchdog", + "Werkzeug", +] +typecheck = [ + "boto3-stubs[s3]", + "lxml-stubs", + "mypy", + "pydantic>=2.7.4", # for pydantic.mypy plugin + "types-bleach", + "types-boto", + "types-contextvars", + "types-dataclasses", + "types-docutils", + "types-Markdown", + "types-paramiko", + "types-python-dateutil", + "types-PyYAML", + "types-requests", + "types-setuptools", + "types-six", +] + [tool.black] line-length = 120 target-version = ['py38'] @@ -12,186 +191,10 @@ extend-exclude = ''' [tool.darker] isort = true -[tool.poetry] -package-mode = false -name = "galaxy" -description = "Galaxy is an open, web-based platform for accessible, reproducible, and transparent computational research." -authors = ["Galaxy Contributors"] -license = "AFL-3.0" -readme = "README.rst" -homepage = "https://galaxyproject.org/" -repository = "https://github.com/galaxyproject/galaxy/" -documentation = "https://docs.galaxyproject.org/" - -[[tool.poetry.source]] -name = "galaxyproject" -url = "https://wheels.galaxyproject.org/simple" -priority = "primary" - -[[tool.poetry.source]] -name = "PyPI" -priority = "primary" - -[tool.poetry.dependencies] -a2wsgi = "*" -aiofiles = "*" -alembic = "*" -apispec = "*" -Babel = "*" -bdbag = ">=1.6.3" -Beaker = "*" -bioblend = "*" -bleach = "*" -boltons = "*" -boto = "*" -bx-python = "*" -celery = "*" -Cheetah3 = "*" -cloudauthz = "==0.6.0" -cloudbridge = "*" -circus = "*" -cwltool = ">=3.1.20230624081518" # save time, minimum needed by cwl-1.0 branch -conda-package-streaming = "*" -dictobj = "*" -dnspython = "*" -docutils = "!=0.17, !=0.17.1" -dparse = "*" -edam-ontology = "*" -fastapi-slim = ">=0.111.0" -fs = "*" -future = ">=1.0.0" # Python 3.12 support -graphene = "*" -graphene-sqlalchemy = ">=3.0.0rc1" # need a beta release to be compat. with starlette plugin -graphql-core = "*" -gravity = ">=1.0.4" -gunicorn = "*" -gxformat2 = "*" -h5grove = ">=1.2.1" -h5py = "*" -importlib-resources = { version = "*", python = "<3.9" } # for importlib.{abc.Traversable,resources.{files, Package}} -isa-rwval = { git = "https://github.com/nsoranzo/isa-rwval.git", branch = "master" } # https://github.com/ISA-tools/isa-rwval/pull/17 -jinja2 = "*" -kombu = ">=5.3" # for importlib-metadata fix -isal = "*" -lagom = "*" -Mako = "*" -Markdown = "*" -MarkupSafe = "*" -Mercurial = "*" -mrcfile = "*" -msal = "*" -nodeenv = "*" -numpy = "*" -packaging = "*" -paramiko = "!=2.9.0, !=2.9.1" # https://github.com/paramiko/paramiko/issues/1961 -Parsley = "*" -Paste = "*" -pebble = "*" -pillow = "*" -psutil = "*" -pulsar-galaxy-lib = ">=0.15.0.dev0" -pycryptodome = "*" -pydantic = {version = ">=2.7.4", extras = ["email"]} # https://github.com/pydantic/pydantic/pull/9639 -PyJWT = "*" -pykwalify = "*" -pylibmagic = "*" -pyparsing = "*" -pysam = ">=0.21" # for Python 3.11 support on macOS -python = ">=3.8,<3.13" # Keep maximum version strict to appease numpy and scipy -python-dateutil = "*" -python-magic = "*" -python-multipart = "*" # required to support form parsing in FastAPI/Starlette -PyYAML = "*" -refgenconf = ">=0.12.0" -regex = "*" -requests = "*" -rocrate = "*" -Routes = "*" -schema-salad = "!=8.3.20220721194857" # https://github.com/common-workflow-language/schema_salad/issues/575 -social-auth-core = ">=4.5.0" # to drop dependency on abandoned python-jose -sortedcontainers = "*" -SQLAlchemy = ">=2.0,<2.1,!=2.0.36" # https://github.com/sqlalchemy/sqlalchemy/issues/12019 -sqlitedict = "*" -sqlparse = "*" -starlette = "*" -starlette-context = "*" -starlette-graphene3 = "*" -svgwrite = "*" -tifffile = "*" -tuswsgi = "*" -typing-extensions = "*" -uvicorn = "!=0.28.0" # https://github.com/galaxyproject/galaxy/issues/17669 -uvloop = "*" -WebOb = "*" -Whoosh = "*" -zipstream-new = "*" -s3fs = ">=2023.1.0" - -[tool.poetry.group.dev.dependencies] -ase = ">=3.18.1" -axe-selenium-python = "*" -black = "*" -boto3 = "*" -codespell = "*" -cwltest = "*" -darker = "*" -fluent-logger = "*" -galaxy-release-util = "*" -httpx = "*" -isort = "*" -lxml = "!=4.2.2" -markdown-it-reporter = "*" -myst-parser = "*" -onedatafilerestclient = "==21.2.5.2" -pkce = "*" -playwright = "*" -pytest = "*" -pytest-asyncio = "*" -pytest-cov = "*" -pytest-html = "*" -pytest-httpserver = "*" -python-irodsclient = "!=1.1.2" # https://github.com/irods/python-irodsclient/issues/356 -pytest-json-report = "*" -pytest-mock = "*" -pytest-playwright = "*" -pytest-postgresql = "!=3.0.0" # https://github.com/ClearcodeHQ/pytest-postgresql/issues/426 -pytest-shard = "*" -responses = "*" -rucio-clients = {version = ">=33.6.0", python = ">=3.9"} # https://github.com/galaxyproject/galaxy/pull/17156 -selenium = "*" -urllib3 = "<2" # Necessary for poetry for resolve deps for Python 3.8+ -seletools = "*" -Sphinx = ">=4.0" # support docutils 0.17 -sphinx-rtd-theme = "*" -statsd = "*" -testfixtures = "*" -tuspy = "*" -twill = ">=3.2.1" # https://github.com/twill-tools/twill/issues/18 -watchdog = "*" -Werkzeug = "*" - -[tool.poetry.group.typecheck.dependencies] -mypy = "*" -boto3-stubs = {version = "*", extras = ["s3"]} -lxml-stubs = "*" -pydantic = ">=2.7.4" # for pydantic.mypy plugin -types-bleach = "*" -types-boto = "*" -types-contextvars = "*" -types-dataclasses = "*" -types-docutils = "*" -types-Markdown = "*" -types-paramiko = "*" -types-python-dateutil = "*" -types-PyYAML = "*" -types-requests = "*" -types-setuptools = "*" -types-six = "*" - [tool.ruff] target-version = "py38" exclude = [ - "lib/tool_shed/test/test_data/repos" + "lib/tool_shed/test/test_data/repos" ] [tool.ruff.lint] @@ -229,3 +232,9 @@ keep-runtime-typing = true "lib/galaxy/schema/drs/*" = ["UP006", "UP007"] "lib/tool_shed_client/schema/trs.py" = ["UP006", "UP007"] "lib/tool_shed_client/schema/trs_service_info.py" = ["UP006", "UP007"] + +[tool.uv] +default-groups = [] +extra-index-url = ["https://wheels.galaxyproject.org/simple"] +index-strategy = "unsafe-best-match" +package = false