11import logging
22import os
33import urllib .parse as urlparse
4- from typing import Any , Callable , Optional , TypedDict
4+ from collections .abc import Callable
5+ from typing import Any , TypedDict
56
67DEFAULT_ENV = "DATABASE_URL"
78ENGINE_SCHEMES : dict [str , "Engine" ] = {}
1112class DBConfig (TypedDict , total = False ):
1213 ATOMIC_REQUESTS : bool
1314 AUTOCOMMIT : bool
14- CONN_MAX_AGE : Optional [ int ]
15+ CONN_MAX_AGE : int | None
1516 CONN_HEALTH_CHECKS : bool
1617 DISABLE_SERVER_SIDE_CURSORS : bool
1718 ENGINE : str
@@ -125,13 +126,13 @@ def apply_current_schema(parsed_config: DBConfig) -> None:
125126
126127def config (
127128 env : str = DEFAULT_ENV ,
128- default : Optional [ str ] = None ,
129- engine : Optional [ str ] = None ,
130- conn_max_age : Optional [ int ] = 0 ,
129+ default : str | None = None ,
130+ engine : str | None = None ,
131+ conn_max_age : int | None = 0 ,
131132 conn_health_checks : bool = False ,
132133 disable_server_side_cursors : bool = False ,
133134 ssl_require : bool = False ,
134- test_options : Optional [ dict [str , Any ]] = None ,
135+ test_options : dict [str , Any ] | None = None ,
135136) -> DBConfig :
136137 """Returns configured DATABASE dictionary from DATABASE_URL."""
137138 s = os .environ .get (env , default )
@@ -157,12 +158,12 @@ def config(
157158
158159def parse (
159160 url : str ,
160- engine : Optional [ str ] = None ,
161- conn_max_age : Optional [ int ] = 0 ,
161+ engine : str | None = None ,
162+ conn_max_age : int | None = 0 ,
162163 conn_health_checks : bool = False ,
163164 disable_server_side_cursors : bool = False ,
164165 ssl_require : bool = False ,
165- test_options : Optional [ dict [str , Any ]] = None ,
166+ test_options : dict [str , Any ] | None = None ,
166167) -> DBConfig :
167168 """Parses a database URL and returns configured DATABASE dictionary."""
168169 settings = _convert_to_settings (
@@ -230,12 +231,12 @@ def _parse_value(value: str) -> OptionType:
230231
231232
232233def _convert_to_settings (
233- engine : Optional [ str ] ,
234- conn_max_age : Optional [ int ] ,
234+ engine : str | None ,
235+ conn_max_age : int | None ,
235236 conn_health_checks : bool ,
236237 disable_server_side_cursors : bool ,
237238 ssl_require : bool ,
238- test_options : Optional [ dict [str , Any ]] ,
239+ test_options : dict [str , Any ] | None ,
239240) -> DBConfig :
240241 settings : DBConfig = {
241242 "CONN_MAX_AGE" : conn_max_age ,
0 commit comments