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
4 changes: 4 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

## [6.2.0] - TBD

### Fixed

- update type hints for python 3.11

### Removed

- support for python 3.9 and 3.10
Expand Down
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ dependencies = [
"brotli_asgi",
"cql2>=0.3.6",
"hydraters>=0.1.3",
"typing_extensions>=4.9.0",
"jsonpatch>=1.33.0",
"json-merge-patch>=0.3.0",
]
Expand Down
18 changes: 9 additions & 9 deletions stac_fastapi/pgstac/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import os
from contextlib import asynccontextmanager
from typing import Dict, List, Set, Type, cast
from typing import cast

from brotli_asgi import BrotliMiddleware
from fastapi import APIRouter, FastAPI
Expand Down Expand Up @@ -52,7 +52,7 @@
settings = Settings()

# search extensions
search_extensions_map: Dict[str, ApiExtension] = {
search_extensions_map: dict[str, ApiExtension] = {
"query": QueryExtension(),
"sort": SortExtension(),
"fields": FieldsExtension(),
Expand All @@ -61,7 +61,7 @@
}

# collection_search extensions
cs_extensions_map: Dict[str, ApiExtension] = {
cs_extensions_map: dict[str, ApiExtension] = {
"query": QueryExtension(conformance_classes=[QueryConformanceClasses.COLLECTIONS]),
"sort": SortExtension(conformance_classes=[SortConformanceClasses.COLLECTIONS]),
"fields": FieldsExtension(conformance_classes=[FieldsConformanceClasses.COLLECTIONS]),
Expand All @@ -73,7 +73,7 @@
}

# item_collection extensions
itm_col_extensions_map: Dict[str, ApiExtension] = {
itm_col_extensions_map: dict[str, ApiExtension] = {
"query": QueryExtension(
conformance_classes=[QueryConformanceClasses.ITEMS],
),
Expand All @@ -85,7 +85,7 @@
"pagination": TokenPaginationExtension(),
}

enabled_extensions: Set[str] = {
enabled_extensions: set[str] = {
*search_extensions_map.keys(),
*cs_extensions_map.keys(),
*itm_col_extensions_map.keys(),
Expand All @@ -95,7 +95,7 @@
if ext := os.environ.get("ENABLED_EXTENSIONS"):
enabled_extensions = set(ext.split(","))

application_extensions: List[ApiExtension] = []
application_extensions: list[ApiExtension] = []

with_transactions = os.environ.get("ENABLE_TRANSACTIONS_EXTENSIONS", "").lower() in [
"yes",
Expand Down Expand Up @@ -126,15 +126,15 @@
application_extensions.extend(search_extensions)

# /collections/{collectionId}/items model
items_get_request_model: Type[APIRequest] = ItemCollectionUri
items_get_request_model: type[APIRequest] = ItemCollectionUri
itm_col_extensions = [
extension
for key, extension in itm_col_extensions_map.items()
if key in enabled_extensions
]
if itm_col_extensions:
items_get_request_model = cast(
Type[APIRequest],
type[APIRequest],
create_request_model(
model_name="ItemCollectionUri",
base_model=ItemCollectionUri,
Expand All @@ -146,7 +146,7 @@
application_extensions.extend(itm_col_extensions)

# /collections model
collections_get_request_model: Type[APIRequest] = EmptyRequest
collections_get_request_model: type[APIRequest] = EmptyRequest
if "collection_search" in enabled_extensions:
cs_extensions = [
extension
Expand Down
22 changes: 11 additions & 11 deletions stac_fastapi/pgstac/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import json
import warnings
from typing import Annotated, Any, List, Optional, Sequence, Type
from collections.abc import Sequence
from typing import Annotated, Any, Self
from urllib.parse import quote_plus as quote

from pydantic import BaseModel, BeforeValidator, Field, model_validator
from pydantic_settings import BaseSettings, NoDecode, SettingsConfigDict
from stac_fastapi.types.config import ApiSettings
from typing_extensions import Self

from stac_fastapi.pgstac.types.base_item_cache import (
BaseItemCache,
Expand Down Expand Up @@ -64,40 +64,40 @@ class PostgresSettings(BaseSettings):
"""

postgres_user: Annotated[
Optional[str],
str | None,
Field(
deprecated="`postgres_user` is deprecated, please use `pguser`", default=None
),
]
postgres_pass: Annotated[
Optional[str],
str | None,
Field(
deprecated="`postgres_pass` is deprecated, please use `pgpassword`",
default=None,
),
]
postgres_host_reader: Annotated[
Optional[str],
str | None,
Field(
deprecated="`postgres_host_reader` is deprecated, please use `pghost`",
default=None,
),
]
postgres_host_writer: Annotated[
Optional[str],
str | None,
Field(
deprecated="`postgres_host_writer` is deprecated, please use `pghost`",
default=None,
),
]
postgres_port: Annotated[
Optional[int],
int | None,
Field(
deprecated="`postgres_port` is deprecated, please use `pgport`", default=None
),
]
postgres_dbname: Annotated[
Optional[str],
str | None,
Field(
deprecated="`postgres_dbname` is deprecated, please use `pgdatabase`",
default=None,
Expand Down Expand Up @@ -196,8 +196,8 @@ class Settings(ApiSettings):
will exclude those values from the responses.
"""

invalid_id_chars: List[str] = DEFAULT_INVALID_ID_CHARS
base_item_cache: Type[BaseItemCache] = DefaultBaseItemCache
invalid_id_chars: list[str] = DEFAULT_INVALID_ID_CHARS
base_item_cache: type[BaseItemCache] = DefaultBaseItemCache

validate_extensions: bool = False
"""
Expand All @@ -209,7 +209,7 @@ class Settings(ApiSettings):
cors_origins: Annotated[Sequence[str], BeforeValidator(str_to_list), NoDecode] = (
"*",
)
cors_origin_regex: Optional[str] = None
cors_origin_regex: str | None = None
cors_methods: Annotated[Sequence[str], BeforeValidator(str_to_list), NoDecode] = (
"GET",
"POST",
Expand Down
Loading
Loading