Enable annotations future; use futuristic annotations

This commit is contained in:
Aarni Koskela 2025-08-20 11:45:33 +03:00 committed by Matt Seymour
parent 1ca8ccf7db
commit a87f12185e

View file

@ -1,7 +1,8 @@
import logging
import os
import urllib.parse as urlparse
from typing import Any, Callable, Optional, TypedDict
from collections.abc import Callable
from typing import Any, TypedDict
DEFAULT_ENV = "DATABASE_URL"
ENGINE_SCHEMES: dict[str, "Engine"] = {}
@ -11,7 +12,7 @@ ENGINE_SCHEMES: dict[str, "Engine"] = {}
class DBConfig(TypedDict, total=False):
ATOMIC_REQUESTS: bool
AUTOCOMMIT: bool
CONN_MAX_AGE: Optional[int]
CONN_MAX_AGE: int | None
CONN_HEALTH_CHECKS: bool
DISABLE_SERVER_SIDE_CURSORS: bool
ENGINE: str
@ -125,13 +126,13 @@ def apply_current_schema(parsed_config: DBConfig) -> None:
def config(
env: str = DEFAULT_ENV,
default: Optional[str] = None,
engine: Optional[str] = None,
conn_max_age: Optional[int] = 0,
default: str | None = None,
engine: str | None = None,
conn_max_age: int | None = 0,
conn_health_checks: bool = False,
disable_server_side_cursors: bool = False,
ssl_require: bool = False,
test_options: Optional[dict[str, Any]] = None,
test_options: dict[str, Any] | None = None,
) -> DBConfig:
"""Returns configured DATABASE dictionary from DATABASE_URL."""
s = os.environ.get(env, default)
@ -157,12 +158,12 @@ def config(
def parse(
url: str,
engine: Optional[str] = None,
conn_max_age: Optional[int] = 0,
engine: str | None = None,
conn_max_age: int | None = 0,
conn_health_checks: bool = False,
disable_server_side_cursors: bool = False,
ssl_require: bool = False,
test_options: Optional[dict[str, Any]] = None,
test_options: dict[str, Any] | None = None,
) -> DBConfig:
"""Parses a database URL and returns configured DATABASE dictionary."""
settings = _convert_to_settings(
@ -230,12 +231,12 @@ def _parse_value(value: str) -> OptionType:
def _convert_to_settings(
engine: Optional[str],
conn_max_age: Optional[int],
engine: str | None,
conn_max_age: int | None,
conn_health_checks: bool,
disable_server_side_cursors: bool,
ssl_require: bool,
test_options: Optional[dict[str, Any]],
test_options: dict[str, Any] | None,
) -> DBConfig:
settings: DBConfig = {
"CONN_MAX_AGE": conn_max_age,