Skip to content

Commit 706354c

Browse files
committed
Enable annotations future; use futuristic annotations
1 parent 7cc1121 commit 706354c

1 file changed

Lines changed: 19 additions & 17 deletions

File tree

dj_database_url/__init__.py

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
1+
from __future__ import annotations
2+
13
import logging
24
import os
35
import urllib.parse as urlparse
4-
from typing import Any, Callable, Dict, List, Optional, TypedDict, Union
6+
from typing import Any, Callable, Optional, TypedDict, Union
57

68
DEFAULT_ENV = "DATABASE_URL"
7-
ENGINE_SCHEMES: Dict[str, "Engine"] = {}
9+
ENGINE_SCHEMES: dict[str, Engine] = {}
810

911

1012
# From https://docs.djangoproject.com/en/stable/ref/settings/#databases
1113
class DBConfig(TypedDict, total=False):
1214
ATOMIC_REQUESTS: bool
1315
AUTOCOMMIT: bool
14-
CONN_MAX_AGE: Optional[int]
16+
CONN_MAX_AGE: int | None
1517
CONN_HEALTH_CHECKS: bool
1618
DISABLE_SERVER_SIDE_CURSORS: bool
1719
ENGINE: str
1820
HOST: str
1921
NAME: str
20-
OPTIONS: Dict[str, Any]
22+
OPTIONS: dict[str, Any]
2123
PASSWORD: str
22-
PORT: Union[str, int]
23-
TEST: Dict[str, Any]
24+
PORT: str | int
25+
TEST: dict[str, Any]
2426
TIME_ZONE: str
2527
USER: str
2628

@@ -125,13 +127,13 @@ def apply_current_schema(parsed_config: DBConfig) -> None:
125127

126128
def config(
127129
env: str = DEFAULT_ENV,
128-
default: Optional[str] = None,
129-
engine: Optional[str] = None,
130-
conn_max_age: Optional[int] = 0,
130+
default: str | None = None,
131+
engine: str | None = None,
132+
conn_max_age: int | None = 0,
131133
conn_health_checks: bool = False,
132134
disable_server_side_cursors: bool = False,
133135
ssl_require: bool = False,
134-
test_options: Optional[Dict[str, Any]] = None,
136+
test_options: dict[str, Any] | None = None,
135137
) -> DBConfig:
136138
"""Returns configured DATABASE dictionary from DATABASE_URL."""
137139
s = os.environ.get(env, default)
@@ -157,12 +159,12 @@ def config(
157159

158160
def parse(
159161
url: str,
160-
engine: Optional[str] = None,
161-
conn_max_age: Optional[int] = 0,
162+
engine: str | None = None,
163+
conn_max_age: int | None = 0,
162164
conn_health_checks: bool = False,
163165
disable_server_side_cursors: bool = False,
164166
ssl_require: bool = False,
165-
test_options: Optional[Dict[str, Any]] = None,
167+
test_options: dict[str, Any] | None = None,
166168
) -> DBConfig:
167169
"""Parses a database URL and returns configured DATABASE dictionary."""
168170
settings = _convert_to_settings(
@@ -216,7 +218,7 @@ def parse(
216218
return parsed_config
217219

218220

219-
def _parse_option_values(values: List[str]) -> Union[OptionType, List[OptionType]]:
221+
def _parse_option_values(values: list[str]) -> OptionType | list[OptionType]:
220222
parsed_values = [_parse_value(v) for v in values]
221223
return parsed_values[0] if len(parsed_values) == 1 else parsed_values
222224

@@ -230,12 +232,12 @@ def _parse_value(value: str) -> OptionType:
230232

231233

232234
def _convert_to_settings(
233-
engine: Optional[str],
234-
conn_max_age: Optional[int],
235+
engine: str | None,
236+
conn_max_age: int | None,
235237
conn_health_checks: bool,
236238
disable_server_side_cursors: bool,
237239
ssl_require: bool,
238-
test_options: Optional[dict[str, Any]],
240+
test_options: dict[str, Any] | None,
239241
) -> DBConfig:
240242
settings: DBConfig = {
241243
"CONN_MAX_AGE": conn_max_age,

0 commit comments

Comments
 (0)