diff --git a/dj_database_url/__init__.py b/dj_database_url/__init__.py index 2e79ece..6328005 100644 --- a/dj_database_url/__init__.py +++ b/dj_database_url/__init__.py @@ -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,