Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
python-version: ["3.12"]
lintcommand:
- "pylint -j 2 datacube_ows --disable=C,R,W,E1136"
- "ruff check --output-format=github"
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/config_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@
from collections.abc import Callable, Sequence
from importlib import import_module
from itertools import chain
from typing import Any, TypeAlias, cast
from typing import Any, TypeAlias, cast, override
from urllib.parse import urlparse

import fsspec
from datacube.utils.masking import make_mask
from typing_extensions import override

from datacube_ows.config_toolkit import deepinherit

Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/index/postgis/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,14 @@

import datetime
from threading import Lock
from typing import Any, Literal
from typing import Any, Literal, override

import click
from antimeridian import fix_shape
from datacube.drivers.common_psql import as_role
from datacube.model import Range
from odc.geo import CRS, Geometry
from sqlalchemy import text
from typing_extensions import override

from datacube_ows.index.api import (
AbortRun,
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/index/postgres/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@
from __future__ import annotations

from threading import Lock
from typing import Literal, cast
from typing import Literal, cast, override

import click
from datacube.drivers.common_psql import as_role
from sqlalchemy import text
from typing_extensions import override

from datacube_ows.index.api import (
InsufficientDbPrivileges,
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/loading.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@
import logging
from collections import OrderedDict
from collections.abc import Iterable
from typing import cast
from typing import cast, override
from uuid import UUID

import datacube
import numpy
import xarray
from typing_extensions import override

from datacube_ows.ogc_exceptions import WMSException
from datacube_ows.startup_utils.creds import CredentialManager
Expand Down
2 changes: 1 addition & 1 deletion datacube_ows/ogc_exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
from __future__ import annotations

import traceback as tb
from typing import override

from ows.common.types import OWSException, Version
from ows.common.v20.encoders import xml_encode_exception_report
from typing_extensions import override

from datacube_ows.http_utils import resp_headers

Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/ows_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from collections.abc import Mapping
from enum import Enum
from threading import Lock
from typing import Any, cast
from typing import Any, cast, override

import numpy
from datacube import Datacube
Expand All @@ -32,7 +32,6 @@
from ows import Version
from slugify import slugify
from sqlalchemy.exc import OperationalError
from typing_extensions import override

from datacube_ows.config_utils import (
ConfigException,
Expand Down
9 changes: 4 additions & 5 deletions datacube_ows/startup_utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import os
import sys
from time import monotonic
from typing import Any, TypeVar
from typing import Any

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


SentryEvent = TypeVar("SentryEvent")


def before_send(event: SentryEvent, hint: dict[str, Any]) -> SentryEvent | None:
def before_send[SentryEvent](
event: SentryEvent, hint: dict[str, Any]
) -> SentryEvent | None:
if "exc_info" in hint:
_, exc_value, _ = hint["exc_info"]
if isinstance(
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/styles/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@
import io
import logging
from threading import Lock
from typing import Any, cast
from typing import Any, cast, override

import numpy as np
import xarray as xr
from typing_extensions import override

from datacube_ows.config_utils import (
AbstractMaskRule,
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/styles/colormap.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@

import logging
from datetime import datetime
from typing import cast
from typing import cast, override

import numpy
import xarray
from datacube.utils.masking import make_mask
from typing_extensions import override
from xarray import DataArray, Dataset

from datacube_ows.config_utils import (
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/styles/component.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
# SPDX-License-Identifier: Apache-2.0
from __future__ import annotations

from typing import Any, TypeAlias, cast
from typing import Any, TypeAlias, cast, override

import numpy as np
from typing_extensions import override
from xarray import DataArray, Dataset

from datacube_ows.config_utils import ConfigException, FunctionWrapper
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/styles/hybrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
# SPDX-License-Identifier: Apache-2.0
from __future__ import annotations

from typing import cast
from typing import cast, override

from typing_extensions import override
from xarray import DataArray, Dataset

from datacube_ows.config_utils import ConfigException
Expand Down
3 changes: 1 addition & 2 deletions datacube_ows/styles/ramp.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@
from dataclasses import dataclass
from decimal import ROUND_HALF_UP, Decimal
from math import isclose
from typing import Any, cast
from typing import Any, cast, override

import matplotlib
import matplotlib.colorbar
import numpy
from matplotlib import pyplot as plt
from matplotlib.colors import LinearSegmentedColormap, to_hex, to_rgba
from numpy import ubyte
from typing_extensions import override
from xarray import Dataset

from datacube_ows.config_utils import (
Expand Down
8 changes: 4 additions & 4 deletions datacube_ows/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from contextlib import contextmanager
from functools import wraps
from time import monotonic
from typing import Any, TypeVar, cast
from typing import Any, TypeAlias, cast

from datacube.api.query import GroupBy, solar_day
from numpy import datetime64 as npdt64
Expand All @@ -26,10 +26,10 @@
from numpy import timedelta64 as npdelt64
from sqlalchemy.engine.base import Connection

F = TypeVar("F", bound=Callable[..., Any])
Fcallable: TypeAlias = Callable[..., Any]


def log_call(func: F) -> F:
def log_call[F: Fcallable](func: F) -> F:
"""
Profiling function decorator

Expand All @@ -46,7 +46,7 @@ def log_wrapper(*args, **kwargs) -> F:
return cast("F", log_wrapper)


def time_call(func: F) -> F:
def time_call[F: Fcallable](func: F) -> F:
"""
Profiling function decorator

Expand Down
3 changes: 2 additions & 1 deletion datacube_ows/wcs_scaler.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
# Copyright (c) 2017-2024 OWS Contributors
# SPDX-License-Identifier: Apache-2.0

from typing import override

from affine import Affine
from odc.geo import geom as odc_geom
from typing_extensions import override


class WCSScalerException(Exception):
Expand Down
2 changes: 1 addition & 1 deletion datacube_ows/wms_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import math
from datetime import UTC, datetime
from typing import override

import numpy
import regex as re
Expand All @@ -17,7 +18,6 @@
from odc.geo import geom
from odc.geo.crs import CRS
from rasterio.warp import Resampling
from typing_extensions import override

from datacube_ows.config_utils import ConfigException
from datacube_ows.ogc_exceptions import WMSException
Expand Down
7 changes: 4 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ dependencies = [
"urllib3",
"xarray",
]
requires-python = ">=3.11.0"
requires-python = ">=3.12"
readme = "README.rst"
license = "Apache-2.0"
keywords = ["datacube", "wms", "wcs"]
Expand All @@ -37,9 +37,9 @@ classifiers = [
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]

[project.urls]
Expand Down Expand Up @@ -105,7 +105,7 @@ postgis = "datacube_ows.index.postgis.api:ows_index_driver_init"
postgres = "datacube_ows.index.postgres.api:ows_index_driver_init"

[tool.mypy]
python_version = "3.11"
python_version = "3.12"
allow_redefinition = true
enable_error_code = ["explicit-override"]
ignore_missing_imports = true
Expand Down Expand Up @@ -147,6 +147,7 @@ ignore = [
"E501",
"RUF012",
"RUF022",
"UP040",
]

[tool.ruff.lint.per-file-ignores]
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
# SPDX-License-Identifier: Apache-2.0

import datetime
from typing import override
from unittest.mock import MagicMock

import numpy as np
import pytest
from odc.geo.geom import polygon
from typing_extensions import override
from xarray import Dataset

import datacube_ows.data
Expand Down
2 changes: 1 addition & 1 deletion tests/test_styles.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
from __future__ import annotations

import datetime
from typing import override
from unittest.mock import MagicMock, patch

import numpy as np
import pytest
from typing_extensions import override
from xarray import DataArray, Dataset, concat

import datacube_ows.styles
Expand Down
Loading
Loading