Drop support for Python 3.9

This commit is contained in:
Nicola Soranzo
2026-01-19 18:39:16 +00:00
parent d76697d2b0
commit eb9fde1dcd
159 changed files with 212 additions and 269 deletions
+2 -2
View File
@@ -15,7 +15,7 @@ variables:
jobs: jobs:
get_code: get_code:
docker: docker:
- image: cimg/python:3.9 - image: cimg/python:3.10
<<: *set_workdir <<: *set_workdir
steps: steps:
# Replace standard code checkout with shallow clone to speed things up. # Replace standard code checkout with shallow clone to speed things up.
@@ -73,7 +73,7 @@ jobs:
- ~/repo - ~/repo
validate_test_tools: validate_test_tools:
docker: docker:
- image: cimg/python:3.9 - image: cimg/python:3.10
<<: *set_workdir <<: *set_workdir
steps: steps:
- *restore_repo_cache - *restore_repo_cache
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
chunk: [0, 1] chunk: [0, 1]
services: services:
postgres: postgres:
+1 -1
View File
@@ -32,7 +32,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
tox_env: [py314] tox_env: [py314]
galaxy_python_version: ['3.9'] galaxy_python_version: ['3.10']
steps: steps:
- name: Checkout Galaxy - name: Checkout Galaxy
uses: actions/checkout@v6 uses: actions/checkout@v6
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
steps: steps:
- if: github.event_name == 'schedule' - if: github.event_name == 'schedule'
run: | run: |
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
marker: ['green', 'red and required', 'red and not required'] marker: ['green', 'red and required', 'red and not required']
conformance-version: ['cwl_conformance_v1_0'] #, 'cwl_conformance_v1_1', 'cwl_conformance_v1_2'] conformance-version: ['cwl_conformance_v1_0'] #, 'cwl_conformance_v1_1', 'cwl_conformance_v1_2']
services: services:
+2 -2
View File
@@ -26,11 +26,11 @@ jobs:
matrix: matrix:
db: ['postgresql', 'sqlite'] db: ['postgresql', 'sqlite']
postgresql-version: ['17'] postgresql-version: ['17']
python-version: ['3.9'] python-version: ['3.10']
include: include:
- db: postgresql - db: postgresql
postgresql-version: '9.6' postgresql-version: '9.6'
python-version: '3.9' python-version: '3.10'
services: services:
postgres: postgres:
image: postgres:${{ matrix.postgresql-version }} image: postgres:${{ matrix.postgresql-version }}
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-python@v6 - uses: actions/setup-python@v6
with: with:
python-version: '3.9' python-version: '3.10'
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v7 uses: astral-sh/setup-uv@v7
- name: Update dependencies - name: Update dependencies
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
steps: steps:
- name: Get target branch name (push) - name: Get target branch name (push)
if: github.event_name == 'push' if: github.event_name == 'push'
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
defaults: defaults:
run: run:
shell: bash -l {0} shell: bash -l {0}
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
use-legacy-api: ['if_needed', 'always'] use-legacy-api: ['if_needed', 'always']
services: services:
postgres: postgres:
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
services: services:
postgres: postgres:
image: postgres:17 image: postgres:17
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
chunk: ['0', '1', '2', '3'] chunk: ['0', '1', '2', '3']
steps: steps:
- if: github.event_name == 'schedule' - if: github.event_name == 'schedule'
+1 -1
View File
@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
services: services:
postgres: postgres:
image: postgres:17 image: postgres:17
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
env: env:
LINT_PATH: 'lib/galaxy/dependencies/pinned-lint-requirements.txt' LINT_PATH: 'lib/galaxy/dependencies/pinned-lint-requirements.txt'
TYPE_PATH: 'lib/galaxy/dependencies/pinned-typecheck-requirements.txt' TYPE_PATH: 'lib/galaxy/dependencies/pinned-typecheck-requirements.txt'
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
services: services:
postgres: postgres:
image: postgres:17 image: postgres:17
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
defaults: defaults:
run: run:
shell: bash -l {0} shell: bash -l {0}
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
services: services:
postgres: postgres:
image: postgres:17 image: postgres:17
+1 -1
View File
@@ -33,7 +33,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
chunk: [0, 1, 2] chunk: [0, 1, 2]
services: services:
postgres: postgres:
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
chunk: [0, 1, 2] chunk: [0, 1, 2]
services: services:
postgres: postgres:
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
shed-api: ['v1', 'v2'] shed-api: ['v1', 'v2']
test-install-client: ['galaxy_api', 'standalone'] test-install-client: ['galaxy_api', 'standalone']
services: services:
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9'] python-version: ['3.10']
services: services:
postgres: postgres:
image: postgres:17 image: postgres:17
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ['3.9', '3.14'] python-version: ['3.10', '3.14']
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
+2 -2
View File
@@ -62,8 +62,8 @@ format: ## Format Python code base
remove-unused-imports: ## Remove unused imports in Python code base remove-unused-imports: ## Remove unused imports in Python code base
$(IN_VENV) autoflake --in-place --remove-all-unused-imports --recursive --verbose lib/ test/ $(IN_VENV) autoflake --in-place --remove-all-unused-imports --recursive --verbose lib/ test/
pyupgrade: ## Convert older code patterns to Python 3.8/3.9 idiomatic ones pyupgrade: ## Convert older code patterns to Python 3.8/3.10 idiomatic ones
ack --type=python -f | grep -v '^$(subst $(SPACE),\|^,$(NEVER_PYUPGRADE_PATHS) $(PY38_PYUPGRADE_PATHS))' | xargs pyupgrade --py39-plus ack --type=python -f | grep -v '^$(subst $(SPACE),\|^,$(NEVER_PYUPGRADE_PATHS) $(PY38_PYUPGRADE_PATHS))' | xargs pyupgrade --py310-plus
ack --type=python -f | grep -v '^$(subst $(SPACE),\|^,$(NEVER_PYUPGRADE_PATHS) $(PY38_PYUPGRADE_PATHS))' | xargs auto-walrus ack --type=python -f | grep -v '^$(subst $(SPACE),\|^,$(NEVER_PYUPGRADE_PATHS) $(PY38_PYUPGRADE_PATHS))' | xargs auto-walrus
ack --type=python -f $(PY38_PYUPGRADE_PATHS) | xargs pyupgrade --py38-plus ack --type=python -f $(PY38_PYUPGRADE_PATHS) | xargs pyupgrade --py38-plus
+2 -2
View File
@@ -24,12 +24,12 @@ Community support is available at `Galaxy Help <https://help.galaxyproject.org/>
Galaxy Quickstart Galaxy Quickstart
================= =================
Galaxy requires Python 3.9 or higher. To check your Python version, run: Galaxy requires Python 3.10 or higher. To check your Python version, run:
.. code:: console .. code:: console
$ python -V $ python -V
Python 3.9.21 Python 3.10.12
Start Galaxy: Start Galaxy:
+1 -1
View File
@@ -1,6 +1,6 @@
# Supported Python versions # Supported Python versions
Galaxy's core functionality is currently supported on Python **>=3.9** . Galaxy's core functionality is currently supported on Python **>=3.10** .
If Galaxy complains about the version of Python you are using: If Galaxy complains about the version of Python you are using:
+1 -1
View File
@@ -8,10 +8,10 @@ from abc import (
ABC, ABC,
abstractmethod, abstractmethod,
) )
from collections.abc import Callable
from dataclasses import dataclass from dataclasses import dataclass
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
+1 -1
View File
@@ -6,9 +6,9 @@ import signal
import sys import sys
import threading import threading
import time import time
from collections.abc import Callable
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
) )
+1 -9
View File
@@ -1,6 +1,5 @@
import json import json
import logging import logging
import sys
import time import time
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from urllib.parse import quote from urllib.parse import quote
@@ -47,14 +46,7 @@ from ..config import GalaxyAppConfiguration
if TYPE_CHECKING: if TYPE_CHECKING:
from social_core.backends.oauth import BaseOAuth2 from social_core.backends.oauth import BaseOAuth2
from social_core.strategy import HttpResponseProtocol
if sys.version_info >= (3, 10):
from social_core.strategy import HttpResponseProtocol
else:
from typing import Protocol
class HttpResponseProtocol(Protocol):
url: str
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
+1 -1
View File
@@ -1,5 +1,6 @@
import os import os
import uuid import uuid
from collections.abc import Callable
from functools import ( from functools import (
lru_cache, lru_cache,
wraps, wraps,
@@ -8,7 +9,6 @@ from multiprocessing import get_context
from threading import local from threading import local
from typing import ( from typing import (
Any, Any,
Callable,
) )
import pebble import pebble
+1 -1
View File
@@ -1,12 +1,12 @@
import datetime import datetime
import json import json
import shutil import shutil
from collections.abc import Callable
from concurrent.futures import TimeoutError from concurrent.futures import TimeoutError
from functools import lru_cache from functools import lru_cache
from pathlib import Path from pathlib import Path
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
) )
+1 -1
View File
@@ -16,10 +16,10 @@ import string
import sys import sys
import tempfile import tempfile
import threading import threading
from collections.abc import Callable
from datetime import timedelta from datetime import timedelta
from typing import ( from typing import (
Any, Any,
Callable,
cast, cast,
Optional, Optional,
SupportsInt, SupportsInt,
+1 -1
View File
@@ -6,11 +6,11 @@ from argparse import (
ArgumentParser, ArgumentParser,
Namespace, Namespace,
) )
from collections.abc import Callable
from io import StringIO from io import StringIO
from textwrap import TextWrapper from textwrap import TextWrapper
from typing import ( from typing import (
Any, Any,
Callable,
NamedTuple, NamedTuple,
Optional, Optional,
) )
+1 -1
View File
@@ -32,9 +32,9 @@ Covers the ``blastxml`` format and the BLAST databases.
""" """
import logging import logging
import os import os
from collections.abc import Callable
from time import sleep from time import sleep
from typing import ( from typing import (
Callable,
Optional, Optional,
) )
+2 -2
View File
@@ -6,21 +6,21 @@ import shutil
import string import string
import tempfile import tempfile
from collections.abc import ( from collections.abc import (
Callable,
Generator, Generator,
Iterable, Iterable,
) )
from inspect import isclass from inspect import isclass
from typing import ( from typing import (
Any, Any,
Callable,
IO, IO,
Literal,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
) )
from markupsafe import escape from markupsafe import escape
from typing_extensions import Literal
from galaxy import util from galaxy import util
from galaxy.datatypes.metadata import ( from galaxy.datatypes.metadata import (
@@ -1,8 +1,8 @@
# Contains parameters that are used in Display Applications # Contains parameters that are used in Display Applications
import mimetypes import mimetypes
from collections.abc import Callable
from dataclasses import dataclass from dataclasses import dataclass
from typing import ( from typing import (
Callable,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
+1 -1
View File
@@ -10,6 +10,7 @@ import struct
from collections.abc import Iterator from collections.abc import Iterator
from typing import ( from typing import (
Any, Any,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -18,7 +19,6 @@ import mrcfile
import numpy as np import numpy as np
import png import png
import tifffile import tifffile
from typing_extensions import Literal
try: try:
import PIL import PIL
+1 -1
View File
@@ -1,8 +1,8 @@
import logging import logging
import os import os
import re import re
from collections.abc import Callable
from typing import ( from typing import (
Callable,
Optional, Optional,
) )
+1 -1
View File
@@ -2,8 +2,8 @@ import abc
import logging import logging
import os import os
import re import re
from collections.abc import Callable
from typing import ( from typing import (
Callable,
Optional, Optional,
) )
+4 -2
View File
@@ -9,11 +9,13 @@ import os
import re import re
import string import string
import subprocess import subprocess
from collections.abc import Iterable from collections.abc import (
Callable,
Iterable,
)
from itertools import islice from itertools import islice
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
) )
+4 -2
View File
@@ -12,10 +12,12 @@ import shutil
import struct import struct
import tempfile import tempfile
import zipfile import zipfile
from collections.abc import Iterable from collections.abc import (
Callable,
Iterable,
)
from functools import partial from functools import partial
from typing import ( from typing import (
Callable,
IO, IO,
NamedTuple, NamedTuple,
Optional, Optional,
+1 -1
View File
@@ -4,8 +4,8 @@ spaln Composite Dataset
import logging import logging
import os.path import os.path
from collections.abc import Callable
from typing import ( from typing import (
Callable,
Optional, Optional,
) )
+1 -1
View File
@@ -1,9 +1,9 @@
import logging import logging
import os import os
from collections import defaultdict from collections import defaultdict
from collections.abc import Callable
from typing import ( from typing import (
Any, Any,
Callable,
NamedTuple, NamedTuple,
Optional, Optional,
Protocol, Protocol,
+1 -1
View File
@@ -1,4 +1,4 @@
from typing_extensions import Literal from typing import Literal
try: try:
from fs.azblob.blob_fs import BlobFS from fs.azblob.blob_fs import BlobFS
+1 -1
View File
@@ -5,13 +5,13 @@ import urllib.request
from typing import ( from typing import (
Any, Any,
cast, cast,
Literal,
Optional, Optional,
) )
from urllib.error import HTTPError from urllib.error import HTTPError
from urllib.parse import quote from urllib.parse import quote
from typing_extensions import ( from typing_extensions import (
Literal,
TypedDict, TypedDict,
) )
+1 -1
View File
@@ -1,6 +1,7 @@
from typing import ( from typing import (
Annotated, Annotated,
Any, Any,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -9,7 +10,6 @@ from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import Literal
from galaxy.util.config_templates import ( from galaxy.util.config_templates import (
ConfiguredOAuth2Sources, ConfiguredOAuth2Sources,
@@ -6,8 +6,8 @@ import sys
import tempfile import tempfile
import time import time
import traceback import traceback
from collections.abc import Callable
from functools import partial from functools import partial
from typing import Callable
from galaxy.tool_util.deps import docker_util from galaxy.tool_util.deps import docker_util
from galaxy.util import ( from galaxy.util import (
+1 -1
View File
@@ -5,10 +5,10 @@ import logging
import operator import operator
import os import os
import re import re
from collections.abc import Callable
from tempfile import NamedTemporaryFile from tempfile import NamedTemporaryFile
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
+4 -2
View File
@@ -15,7 +15,10 @@ import shutil
import sys import sys
import time import time
import traceback import traceback
from collections.abc import Iterable from collections.abc import (
Callable,
Iterable,
)
from dataclasses import ( from dataclasses import (
dataclass, dataclass,
field, field,
@@ -23,7 +26,6 @@ from dataclasses import (
from json import loads from json import loads
from typing import ( from typing import (
Any, Any,
Callable,
cast, cast,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
+1 -4
View File
@@ -1,4 +1,3 @@
import sys
from dataclasses import ( from dataclasses import (
dataclass, dataclass,
field, field,
@@ -14,10 +13,8 @@ if TYPE_CHECKING:
from galaxy.jobs import ResubmitConfigDict from galaxy.jobs import ResubmitConfigDict
from galaxy.model import Job from galaxy.model import Job
dataclass_kwargs = {"kw_only": True} if sys.version_info >= (3, 10) else {}
@dataclass(kw_only=True, eq=False)
@dataclass(**dataclass_kwargs, eq=False)
class JobDestination: class JobDestination:
""" """
Provides details about where a job runs Provides details about where a job runs
+1 -1
View File
@@ -1,9 +1,9 @@
import importlib import importlib
import logging import logging
from collections.abc import Callable
from inspect import getfullargspec from inspect import getfullargspec
from types import ModuleType from types import ModuleType
from typing import ( from typing import (
Callable,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
) )
+1 -2
View File
@@ -10,11 +10,10 @@ import string
import time import time
from typing import ( from typing import (
TYPE_CHECKING, TYPE_CHECKING,
TypeAlias,
Union, Union,
) )
from typing_extensions import TypeAlias
from galaxy import model from galaxy import model
from galaxy.jobs.handler import DEFAULT_JOB_RUNNER_FAILURE_MESSAGE from galaxy.jobs.handler import DEFAULT_JOB_RUNNER_FAILURE_MESSAGE
from galaxy.jobs.job_destination import JobDestination from galaxy.jobs.job_destination import JobDestination
@@ -7,8 +7,7 @@ from abc import (
abstractmethod, abstractmethod,
) )
from enum import Enum from enum import Enum
from typing import TypeAlias
from typing_extensions import TypeAlias
try: try:
from galaxy.model import Job from galaxy.model import Job
+1 -1
View File
@@ -30,10 +30,10 @@ import builtins
import datetime import datetime
import logging import logging
import re import re
from collections.abc import Callable
from functools import partial from functools import partial
from typing import ( from typing import (
Any, Any,
Callable,
Generic, Generic,
NamedTuple, NamedTuple,
Optional, Optional,
+1 -1
View File
@@ -1,6 +1,7 @@
import logging import logging
from typing import ( from typing import (
Any, Any,
Literal,
Optional, Optional,
overload, overload,
TYPE_CHECKING, TYPE_CHECKING,
@@ -12,7 +13,6 @@ from sqlalchemy.orm import (
joinedload, joinedload,
Query, Query,
) )
from typing_extensions import Literal
from galaxy import model from galaxy import model
from galaxy.datatypes.registry import Registry from galaxy.datatypes.registry import Registry
+1 -1
View File
@@ -37,10 +37,10 @@ A method that requires a user but not a history should declare its
# more checks against this issue. # more checks against this issue.
import abc import abc
import string import string
from collections.abc import Callable
from json import dumps from json import dumps
from typing import ( from typing import (
Any, Any,
Callable,
cast, cast,
Literal, Literal,
Optional, Optional,
+1 -1
View File
@@ -9,6 +9,7 @@ import logging
from typing import ( from typing import (
Any, Any,
cast, cast,
Literal,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
@@ -25,7 +26,6 @@ from sqlalchemy import (
true, true,
) )
from sqlalchemy.orm import aliased from sqlalchemy.orm import aliased
from typing_extensions import Literal
from galaxy import model from galaxy import model
from galaxy.exceptions import ( from galaxy.exceptions import (
+1 -1
View File
@@ -8,10 +8,10 @@ from within Galaxy.
import logging import logging
import re import re
from collections.abc import Callable
from html.entities import name2codepoint from html.entities import name2codepoint
from html.parser import HTMLParser from html.parser import HTMLParser
from typing import ( from typing import (
Callable,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
+1 -3
View File
@@ -9,6 +9,7 @@ from typing import (
NamedTuple, NamedTuple,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
TypeAlias,
Union, Union,
) )
@@ -41,9 +42,6 @@ from sqlalchemy.orm import (
joinedload, joinedload,
subqueryload, subqueryload,
) )
from typing_extensions import (
TypeAlias,
)
from galaxy import ( from galaxy import (
exceptions, exceptions,
+2 -2
View File
@@ -32,10 +32,12 @@ from typing import (
cast, cast,
ClassVar, ClassVar,
Generic, Generic,
Literal,
NamedTuple, NamedTuple,
Optional, Optional,
overload, overload,
TYPE_CHECKING, TYPE_CHECKING,
TypeAlias,
TypeVar, TypeVar,
Union, Union,
) )
@@ -132,10 +134,8 @@ from sqlalchemy.orm.session import Session
from sqlalchemy.sql.expression import FromClause from sqlalchemy.sql.expression import FromClause
from typing_extensions import ( from typing_extensions import (
deprecated, deprecated,
Literal,
NotRequired, NotRequired,
Protocol, Protocol,
TypeAlias,
TypedDict, TypedDict,
) )
@@ -1,6 +1,7 @@
from dataclasses import dataclass from dataclasses import dataclass
from typing import ( from typing import (
cast, cast,
Literal,
Optional, Optional,
Protocol, Protocol,
TYPE_CHECKING, TYPE_CHECKING,
@@ -15,7 +16,6 @@ from pydantic import (
BaseModel, BaseModel,
Field, Field,
) )
from typing_extensions import Literal
from galaxy.exceptions import RequestParameterInvalidException from galaxy.exceptions import RequestParameterInvalidException
from galaxy.model.dataset_collections.rule_target_columns import ( from galaxy.model.dataset_collections.rule_target_columns import (
+1 -1
View File
@@ -1,7 +1,7 @@
import logging import logging
import re import re
from collections.abc import Callable
from typing import ( from typing import (
Callable,
cast, cast,
) )
+1 -1
View File
@@ -8,6 +8,7 @@ import tarfile
import tempfile import tempfile
from collections import defaultdict from collections import defaultdict
from collections.abc import ( from collections.abc import (
Callable,
Iterable, Iterable,
Iterator, Iterator,
) )
@@ -22,7 +23,6 @@ from tempfile import mkdtemp
from types import TracebackType from types import TracebackType
from typing import ( from typing import (
Any, Any,
Callable,
cast, cast,
Literal, Literal,
Optional, Optional,
+4 -2
View File
@@ -9,10 +9,12 @@ corresponding to files in other contexts.
import abc import abc
import logging import logging
import os import os
from collections.abc import Iterable from collections.abc import (
Callable,
Iterable,
)
from typing import ( from typing import (
Any, Any,
Callable,
NamedTuple, NamedTuple,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
@@ -1,10 +1,10 @@
import logging import logging
import os import os
from collections.abc import Callable
from datetime import datetime from datetime import datetime
from enum import Enum from enum import Enum
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
) )
@@ -1,9 +1,11 @@
import os import os
import uuid import uuid
from collections.abc import Iterator from collections.abc import (
Callable,
Iterator,
)
from contextlib import contextmanager from contextlib import contextmanager
from typing import ( from typing import (
Callable,
Optional, Optional,
) )
+1 -1
View File
@@ -135,7 +135,7 @@ class ControlTask:
while self.response is self._response: while self.response is self._response:
self.connection.drain_events(timeout=timeout) self.connection.drain_events(timeout=timeout)
return self.response return self.response
except socket.timeout: except TimeoutError:
log.exception("Error waiting for task: '%s' sent with routing key '%s'", payload, routing_key) log.exception("Error waiting for task: '%s' sent with routing key '%s'", payload, routing_key)
except Exception: except Exception:
log.exception("Error queueing async task: '%s'. for %s", payload, routing_key) log.exception("Error queueing async task: '%s'. for %s", payload, routing_key)
+1 -1
View File
@@ -1,5 +1,6 @@
from enum import Enum from enum import Enum
from typing import ( from typing import (
Literal,
Optional, Optional,
) )
@@ -7,7 +8,6 @@ from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import Literal
from galaxy.schema.fields import ( from galaxy.schema.fields import (
EncodedDatabaseIdField, EncodedDatabaseIdField,
+1 -1
View File
@@ -3,6 +3,7 @@ from enum import Enum
from typing import ( from typing import (
Annotated, Annotated,
Any, Any,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -17,7 +18,6 @@ from pydantic import (
TypeAdapter, TypeAdapter,
UUID4, UUID4,
) )
from typing_extensions import Literal
from galaxy.schema.fields import DecodedDatabaseIdField from galaxy.schema.fields import DecodedDatabaseIdField
from galaxy.schema.schema import Model from galaxy.schema.schema import Model
+2 -4
View File
@@ -1,7 +1,8 @@
import re import re
from collections.abc import Callable
from typing import ( from typing import (
Annotated, Annotated,
Callable, get_args,
get_origin, get_origin,
TYPE_CHECKING, TYPE_CHECKING,
Union, Union,
@@ -14,9 +15,6 @@ from pydantic import (
WithJsonSchema, WithJsonSchema,
) )
from pydantic_core import PydanticCustomError from pydantic_core import PydanticCustomError
from typing_extensions import (
get_args,
)
from galaxy.exceptions import MessageException from galaxy.exceptions import MessageException
+4 -2
View File
@@ -1,10 +1,12 @@
from typing import Optional from typing import (
Literal,
Optional,
)
from pydantic import ( from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import Literal
from galaxy.schema.fields import ( from galaxy.schema.fields import (
DecodedDatabaseIdField, DecodedDatabaseIdField,
+1 -1
View File
@@ -1,5 +1,6 @@
from datetime import datetime from datetime import datetime
from typing import ( from typing import (
Literal,
Optional, Optional,
) )
@@ -8,7 +9,6 @@ from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import Literal
from galaxy.schema.fields import EncodedDatabaseIdField from galaxy.schema.fields import EncodedDatabaseIdField
from galaxy.schema.schema import ( from galaxy.schema.schema import (
+1 -1
View File
@@ -4,6 +4,7 @@ from typing import (
Annotated, Annotated,
Any, Any,
Generic, Generic,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -17,7 +18,6 @@ from pydantic import (
UUID4, UUID4,
) )
from typing_extensions import ( from typing_extensions import (
Literal,
TypeAliasType, TypeAliasType,
) )
+1 -1
View File
@@ -1,6 +1,7 @@
import json import json
from typing import ( from typing import (
Any, Any,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -11,7 +12,6 @@ from pydantic import (
field_validator, field_validator,
UUID4, UUID4,
) )
from typing_extensions import Literal
from galaxy.schema.fields import ( from galaxy.schema.fields import (
DecodedDatabaseIdField, DecodedDatabaseIdField,
+1 -3
View File
@@ -3,6 +3,7 @@ from enum import Enum
from typing import ( from typing import (
Annotated, Annotated,
Any, Any,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -13,9 +14,6 @@ from pydantic import (
RootModel, RootModel,
) )
from pydantic.functional_validators import field_validator from pydantic.functional_validators import field_validator
from typing_extensions import (
Literal,
)
from galaxy.schema.fields import ( from galaxy.schema.fields import (
DecodedDatabaseIdField, DecodedDatabaseIdField,
+1 -3
View File
@@ -4,6 +4,7 @@ from typing import (
Annotated, Annotated,
Any, Any,
Generic, Generic,
Literal,
Optional, Optional,
Union, Union,
) )
@@ -13,9 +14,6 @@ from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import (
Literal,
)
from galaxy.schema.fields import ( from galaxy.schema.fields import (
DecodedDatabaseIdField, DecodedDatabaseIdField,
+2 -2
View File
@@ -9,7 +9,9 @@ from enum import Enum
from typing import ( from typing import (
Annotated, Annotated,
Any, Any,
Literal,
Optional, Optional,
TypeAlias,
Union, Union,
) )
from uuid import UUID from uuid import UUID
@@ -29,9 +31,7 @@ from pydantic import (
) )
from pydantic_core import core_schema from pydantic_core import core_schema
from typing_extensions import ( from typing_extensions import (
Literal,
NotRequired, NotRequired,
TypeAlias,
TypedDict, TypedDict,
) )
+1 -1
View File
@@ -1,11 +1,11 @@
from datetime import datetime from datetime import datetime
from enum import Enum from enum import Enum
from typing import ( from typing import (
Literal,
Union, Union,
) )
from pydantic import Field from pydantic import Field
from typing_extensions import Literal
from galaxy.schema.fields import ( from galaxy.schema.fields import (
DecodedDatabaseIdField, DecodedDatabaseIdField,
+1 -3
View File
@@ -1,14 +1,12 @@
from datetime import datetime from datetime import datetime
from typing import ( from typing import (
Annotated, Annotated,
Literal,
Union, Union,
) )
from pydantic import ValidationInfo from pydantic import ValidationInfo
from pydantic.functional_validators import AfterValidator from pydantic.functional_validators import AfterValidator
from typing_extensions import (
Literal,
)
# Relative URLs cannot be validated with AnyUrl, they need a scheme. # Relative URLs cannot be validated with AnyUrl, they need a scheme.
# Making them an alias of `str` for now # Making them an alias of `str` for now
+1 -1
View File
@@ -1,5 +1,6 @@
from datetime import datetime from datetime import datetime
from typing import ( from typing import (
Literal,
Optional, Optional,
Union, Union,
) )
@@ -9,7 +10,6 @@ from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import Literal
from galaxy.schema.fields import ( from galaxy.schema.fields import (
DecodedDatabaseIdField, DecodedDatabaseIdField,
+1 -1
View File
@@ -1,4 +1,5 @@
from typing import ( from typing import (
Literal,
Optional, Optional,
Union, Union,
) )
@@ -8,7 +9,6 @@ from pydantic import (
Field, Field,
RootModel, RootModel,
) )
from typing_extensions import Literal
class BaseComment(BaseModel): class BaseComment(BaseModel):
+1 -2
View File
@@ -4,11 +4,10 @@ Galaxy Security
""" """
from typing import ( from typing import (
Literal,
Optional, Optional,
) )
from typing_extensions import Literal
from galaxy.util.bunch import Bunch from galaxy.util.bunch import Bunch
ActionModel = Literal["grant", "restrict"] ActionModel = Literal["grant", "restrict"]
+1 -1
View File
@@ -1,10 +1,10 @@
from typing import ( from typing import (
Any, Any,
Literal,
Optional, Optional,
) )
from typing_extensions import ( from typing_extensions import (
Literal,
Protocol, Protocol,
) )
+1 -1
View File
@@ -5,10 +5,10 @@ allowing NavigatesGalaxy to work with either backend via composition.
""" """
from abc import abstractmethod from abc import abstractmethod
from collections.abc import Callable
from contextlib import AbstractContextManager from contextlib import AbstractContextManager
from typing import ( from typing import (
Any, Any,
Callable,
Generic, Generic,
Literal, Literal,
Optional, Optional,
+1 -2
View File
@@ -22,11 +22,10 @@ provide strong traditional typing semantics.
from typing import ( from typing import (
Any, Any,
Literal,
Union, Union,
) )
from typing_extensions import Literal
# Input dictionary from the API, may include map/reduce instructions. Objects are referenced by "src" # Input dictionary from the API, may include map/reduce instructions. Objects are referenced by "src"
# dictionaries and encoded IDS. # dictionaries and encoded IDS.
ToolRequestT = dict[str, Any] ToolRequestT = dict[str, Any]
+1 -1
View File
@@ -5,10 +5,10 @@ import re
import shlex import shlex
import string import string
import tempfile import tempfile
from collections.abc import Callable
from datetime import datetime from datetime import datetime
from typing import ( from typing import (
Any, Any,
Callable,
Literal, Literal,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
+2 -2
View File
@@ -8,17 +8,17 @@ import collections
import logging import logging
import typing import typing
from abc import abstractmethod from abc import abstractmethod
from collections.abc import Callable
from typing import ( from typing import (
Any, Any,
Callable,
NamedTuple, NamedTuple,
Optional, Optional,
TypeAlias,
Union, Union,
) )
from boltons.iterutils import remap from boltons.iterutils import remap
from packaging.version import Version from packaging.version import Version
from typing_extensions import TypeAlias
from galaxy import model from galaxy import model
from galaxy.exceptions import ToolInputsNotOKException from galaxy.exceptions import ToolInputsNotOKException
+1 -1
View File
@@ -1,5 +1,6 @@
from dataclasses import dataclass from dataclasses import dataclass
from typing import ( from typing import (
Literal,
Optional, Optional,
Union, Union,
) )
@@ -9,7 +10,6 @@ from pydantic import (
BaseModel, BaseModel,
Field, Field,
) )
from typing_extensions import Literal
from galaxy.exceptions import RequestParameterInvalidException from galaxy.exceptions import RequestParameterInvalidException
from galaxy.model.dataset_collections.auto_identifiers import ( from galaxy.model.dataset_collections.auto_identifiers import (
@@ -2,11 +2,11 @@ import asyncio
import logging import logging
from typing import ( from typing import (
Any, Any,
Literal,
Optional, Optional,
) )
import aiohttp import aiohttp
from typing_extensions import Literal
log = logging.getLogger() log = logging.getLogger()
@@ -15,11 +15,10 @@ from typing import (
Any, Any,
cast, cast,
get_args, get_args,
Literal,
Optional, Optional,
) )
from typing_extensions import Literal
from galaxy.model import ( from galaxy.model import (
DatasetCollectionElement, DatasetCollectionElement,
HistoryDatasetAssociation, HistoryDatasetAssociation,
+4 -2
View File
@@ -6,11 +6,13 @@ import io
import logging import logging
import os import os
import unicodedata import unicodedata
from collections.abc import Mapping from collections.abc import (
Callable,
Mapping,
)
from math import inf from math import inf
from typing import ( from typing import (
Any, Any,
Callable,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
) )
+1 -1
View File
@@ -3,8 +3,8 @@ import os
import shutil import shutil
import tempfile import tempfile
import traceback import traceback
from collections.abc import Callable
from typing import ( from typing import (
Callable,
NamedTuple, NamedTuple,
) )
+1 -1
View File
@@ -15,12 +15,12 @@ from typing import (
cast, cast,
Optional, Optional,
TYPE_CHECKING, TYPE_CHECKING,
TypeAlias,
Union, Union,
) )
from typing_extensions import ( from typing_extensions import (
Self, Self,
TypeAlias,
) )
from galaxy.model import ( from galaxy.model import (
@@ -1,10 +1,9 @@
from typing import ( from typing import (
Literal,
Optional, Optional,
Union, Union,
) )
from typing_extensions import Literal
from galaxy.datatypes.data import ( from galaxy.datatypes.data import (
Data, Data,
Newick, Newick,
@@ -6,8 +6,8 @@ a dictionary of string data/ids (often from a query string).
import json import json
import logging import logging
import weakref import weakref
from collections.abc import Callable
from typing import ( from typing import (
Callable,
Optional, Optional,
Union, Union,
) )

Some files were not shown because too many files have changed in this diff Show More