Skip to content

Commit 97e7bc4

Browse files
committed
Require Python 3.12
Sphinx and various other packages have started dropping support for Python 3.10, so require Python 3.12 and upgrade the source code to use Python 3.12 features where possible. The most noticeable change for OWS is that the override decorator is part of typing, and the UTC alias declared in datetime.
1 parent 69c9d8d commit 97e7bc4

20 files changed

Lines changed: 65 additions & 665 deletions

File tree

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
strategy:
3535
fail-fast: false
3636
matrix:
37-
python-version: ["3.11"]
37+
python-version: ["3.12"]
3838
lintcommand:
3939
- "pylint -j 2 datacube_ows --disable=C,R,W,E1136"
4040
- "ruff check --output-format=github"

datacube_ows/config_utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212
from collections.abc import Callable, Sequence
1313
from importlib import import_module
1414
from itertools import chain
15-
from typing import Any, TypeAlias, cast
15+
from typing import Any, TypeAlias, cast, override
1616
from urllib.parse import urlparse
1717

1818
import fsspec
1919
from datacube.utils.masking import make_mask
20-
from typing_extensions import override
2120

2221
from datacube_ows.config_toolkit import deepinherit
2322

datacube_ows/index/postgis/api.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@
77

88
import datetime
99
from threading import Lock
10-
from typing import Any, Literal
10+
from typing import Any, Literal, override
1111

1212
import click
1313
from antimeridian import fix_shape
1414
from datacube.drivers.common_psql import as_role
1515
from datacube.model import Range
1616
from odc.geo import CRS, Geometry
1717
from sqlalchemy import text
18-
from typing_extensions import override
1918

2019
from datacube_ows.index.api import (
2120
AbortRun,

datacube_ows/index/postgres/api.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
from __future__ import annotations
77

88
from threading import Lock
9-
from typing import Literal, cast
9+
from typing import Literal, cast, override
1010

1111
import click
1212
from datacube.drivers.common_psql import as_role
1313
from sqlalchemy import text
14-
from typing_extensions import override
1514

1615
from datacube_ows.index.api import (
1716
InsufficientDbPrivileges,

datacube_ows/loading.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
import logging
99
from collections import OrderedDict
1010
from collections.abc import Iterable
11-
from typing import cast
11+
from typing import cast, override
1212
from uuid import UUID
1313

1414
import datacube
1515
import numpy
1616
import xarray
17-
from typing_extensions import override
1817

1918
from datacube_ows.ogc_exceptions import WMSException
2019
from datacube_ows.startup_utils.creds import CredentialManager

datacube_ows/ogc_exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from __future__ import annotations
77

88
import traceback as tb
9+
from typing import override
910

1011
from ows.common.types import OWSException, Version
1112
from ows.common.v20.encoders import xml_encode_exception_report
12-
from typing_extensions import override
1313

1414
from datacube_ows.http_utils import resp_headers
1515

datacube_ows/ows_configuration.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from collections.abc import Mapping
2424
from enum import Enum
2525
from threading import Lock
26-
from typing import Any, cast
26+
from typing import Any, cast, override
2727

2828
import numpy
2929
from datacube import Datacube
@@ -32,7 +32,6 @@
3232
from ows import Version
3333
from slugify import slugify
3434
from sqlalchemy.exc import OperationalError
35-
from typing_extensions import override
3635

3736
from datacube_ows.config_utils import (
3837
ConfigException,

datacube_ows/startup_utils/__init__.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import os
1010
import sys
1111
from time import monotonic
12-
from typing import Any, TypeVar
12+
from typing import Any
1313

1414
from flask import Flask, g, request
1515
from sqlalchemy.exc import OperationalError
@@ -40,10 +40,9 @@ def initialise_logger(name: str | None = None) -> Logger:
4040
return log
4141

4242

43-
SentryEvent = TypeVar("SentryEvent")
44-
45-
46-
def before_send(event: SentryEvent, hint: dict[str, Any]) -> SentryEvent | None:
43+
def before_send[SentryEvent](
44+
event: SentryEvent, hint: dict[str, Any]
45+
) -> SentryEvent | None:
4746
if "exc_info" in hint:
4847
_, exc_value, _ = hint["exc_info"]
4948
if isinstance(

datacube_ows/styles/base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
import io
99
import logging
1010
from threading import Lock
11-
from typing import Any, cast
11+
from typing import Any, cast, override
1212

1313
import numpy as np
1414
import xarray as xr
15-
from typing_extensions import override
1615

1716
from datacube_ows.config_utils import (
1817
AbstractMaskRule,

datacube_ows/styles/colormap.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77

88
import logging
99
from datetime import datetime
10-
from typing import cast
10+
from typing import cast, override
1111

1212
import numpy
1313
import xarray
1414
from datacube.utils.masking import make_mask
15-
from typing_extensions import override
1615
from xarray import DataArray, Dataset
1716

1817
from datacube_ows.config_utils import (

0 commit comments

Comments
 (0)