mirror of
https://github.com/jazzband/dj-database-url.git
synced 2026-03-16 22:20:24 +00:00
Switch to modern dict type hints for improved readability and consistency.
This commit is contained in:
parent
992999193d
commit
84fd0508ff
1 changed files with 11 additions and 11 deletions
|
|
@ -1,10 +1,10 @@
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import urllib.parse as urlparse
|
import urllib.parse as urlparse
|
||||||
from typing import Any, Callable, Dict, List, Optional, TypedDict, Union
|
from typing import Any, Callable, Optional, TypedDict
|
||||||
|
|
||||||
DEFAULT_ENV = "DATABASE_URL"
|
DEFAULT_ENV = "DATABASE_URL"
|
||||||
ENGINE_SCHEMES: Dict[str, "Engine"] = {}
|
ENGINE_SCHEMES: dict[str, "Engine"] = {}
|
||||||
|
|
||||||
|
|
||||||
# From https://docs.djangoproject.com/en/stable/ref/settings/#databases
|
# From https://docs.djangoproject.com/en/stable/ref/settings/#databases
|
||||||
|
|
@ -17,16 +17,16 @@ class DBConfig(TypedDict, total=False):
|
||||||
ENGINE: str
|
ENGINE: str
|
||||||
HOST: str
|
HOST: str
|
||||||
NAME: str
|
NAME: str
|
||||||
OPTIONS: Dict[str, Any]
|
OPTIONS: dict[str, Any]
|
||||||
PASSWORD: str
|
PASSWORD: str
|
||||||
PORT: Union[str, int]
|
PORT: str | int
|
||||||
TEST: Dict[str, Any]
|
TEST: dict[str, Any]
|
||||||
TIME_ZONE: str
|
TIME_ZONE: str
|
||||||
USER: str
|
USER: str
|
||||||
|
|
||||||
|
|
||||||
PostprocessCallable = Callable[[DBConfig], None]
|
PostprocessCallable = Callable[[DBConfig], None]
|
||||||
OptionType = Union[int, str, bool]
|
OptionType = int | str | bool
|
||||||
|
|
||||||
|
|
||||||
class ParseError(ValueError):
|
class ParseError(ValueError):
|
||||||
|
|
@ -38,7 +38,7 @@ class ParseError(ValueError):
|
||||||
|
|
||||||
|
|
||||||
class UnknownSchemeError(ValueError):
|
class UnknownSchemeError(ValueError):
|
||||||
def __init__(self, scheme: str) -> None:
|
def __init__(self, scheme: str):
|
||||||
self.scheme = scheme
|
self.scheme = scheme
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
|
|
@ -59,7 +59,7 @@ class Engine:
|
||||||
self,
|
self,
|
||||||
backend: str,
|
backend: str,
|
||||||
postprocess: PostprocessCallable = default_postprocess,
|
postprocess: PostprocessCallable = default_postprocess,
|
||||||
) -> None:
|
):
|
||||||
self.backend = backend
|
self.backend = backend
|
||||||
self.postprocess = postprocess
|
self.postprocess = postprocess
|
||||||
|
|
||||||
|
|
@ -131,7 +131,7 @@ def config(
|
||||||
conn_health_checks: bool = False,
|
conn_health_checks: bool = False,
|
||||||
disable_server_side_cursors: bool = False,
|
disable_server_side_cursors: bool = False,
|
||||||
ssl_require: bool = False,
|
ssl_require: bool = False,
|
||||||
test_options: Optional[Dict[str, Any]] = None,
|
test_options: Optional[dict[str, Any]] = None,
|
||||||
) -> DBConfig:
|
) -> DBConfig:
|
||||||
"""Returns configured DATABASE dictionary from DATABASE_URL."""
|
"""Returns configured DATABASE dictionary from DATABASE_URL."""
|
||||||
s = os.environ.get(env, default)
|
s = os.environ.get(env, default)
|
||||||
|
|
@ -162,7 +162,7 @@ def parse(
|
||||||
conn_health_checks: bool = False,
|
conn_health_checks: bool = False,
|
||||||
disable_server_side_cursors: bool = False,
|
disable_server_side_cursors: bool = False,
|
||||||
ssl_require: bool = False,
|
ssl_require: bool = False,
|
||||||
test_options: Optional[Dict[str, Any]] = None,
|
test_options: Optional[dict[str, Any]] = None,
|
||||||
) -> DBConfig:
|
) -> DBConfig:
|
||||||
"""Parses a database URL and returns configured DATABASE dictionary."""
|
"""Parses a database URL and returns configured DATABASE dictionary."""
|
||||||
settings = _convert_to_settings(
|
settings = _convert_to_settings(
|
||||||
|
|
@ -216,7 +216,7 @@ def parse(
|
||||||
return parsed_config
|
return parsed_config
|
||||||
|
|
||||||
|
|
||||||
def _parse_option_values(values: List[str]) -> Union[OptionType, List[OptionType]]:
|
def _parse_option_values(values: list[str]) -> OptionType | list[OptionType]:
|
||||||
parsed_values = [_parse_value(v) for v in values]
|
parsed_values = [_parse_value(v) for v in values]
|
||||||
return parsed_values[0] if len(parsed_values) == 1 else parsed_values
|
return parsed_values[0] if len(parsed_values) == 1 else parsed_values
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue