1
1
import secrets
2
- from typing import Any , Dict , List , Optional , Union
2
+ from typing import Any
3
3
4
4
from pydantic import AnyHttpUrl , BaseSettings , EmailStr , HttpUrl , PostgresDsn , validator
5
5
@@ -14,21 +14,21 @@ class Settings(BaseSettings):
14
14
# BACKEND_CORS_ORIGINS is a JSON-formatted list of origins
15
15
# e.g: '["http://localhost", "http://localhost:4200", "http://localhost:3000", \
16
16
# "http://localhost:8080", "http://local.dockertoolbox.tiangolo.com"]'
17
- BACKEND_CORS_ORIGINS : List [AnyHttpUrl ] = []
17
+ BACKEND_CORS_ORIGINS : list [AnyHttpUrl ] = []
18
18
19
19
@validator ("BACKEND_CORS_ORIGINS" , pre = True )
20
- def assemble_cors_origins (cls , v : Union [ str , List [str ]] ) -> Union [ List [ str ], str ] :
20
+ def assemble_cors_origins (cls , v : str | list [str ]) -> list [ str ] | str :
21
21
if isinstance (v , str ) and not v .startswith ("[" ):
22
22
return [i .strip () for i in v .split ("," )]
23
- elif isinstance (v , ( list , str ) ):
23
+ elif isinstance (v , list | str ):
24
24
return v
25
25
raise ValueError (v )
26
26
27
27
PROJECT_NAME : str
28
- SENTRY_DSN : Optional [ HttpUrl ] = None
28
+ SENTRY_DSN : HttpUrl | None = None
29
29
30
30
@validator ("SENTRY_DSN" , pre = True )
31
- def sentry_dsn_can_be_blank (cls , v : str ) -> Optional [ str ] :
31
+ def sentry_dsn_can_be_blank (cls , v : str ) -> str | None :
32
32
if len (v ) == 0 :
33
33
return None
34
34
return v
@@ -37,10 +37,10 @@ def sentry_dsn_can_be_blank(cls, v: str) -> Optional[str]:
37
37
POSTGRES_USER : str
38
38
POSTGRES_PASSWORD : str
39
39
POSTGRES_DB : str
40
- SQLALCHEMY_DATABASE_URI : Optional [ PostgresDsn ] = None
40
+ SQLALCHEMY_DATABASE_URI : PostgresDsn | None = None
41
41
42
42
@validator ("SQLALCHEMY_DATABASE_URI" , pre = True )
43
- def assemble_db_connection (cls , v : Optional [ str ] , values : Dict [str , Any ]) -> Any :
43
+ def assemble_db_connection (cls , v : str | None , values : dict [str , Any ]) -> Any :
44
44
if isinstance (v , str ):
45
45
return v
46
46
return PostgresDsn .build (
@@ -52,15 +52,15 @@ def assemble_db_connection(cls, v: Optional[str], values: Dict[str, Any]) -> Any
52
52
)
53
53
54
54
SMTP_TLS : bool = True
55
- SMTP_PORT : Optional [ int ] = None
56
- SMTP_HOST : Optional [ str ] = None
57
- SMTP_USER : Optional [ str ] = None
58
- SMTP_PASSWORD : Optional [ str ] = None
59
- EMAILS_FROM_EMAIL : Optional [ EmailStr ] = None
60
- EMAILS_FROM_NAME : Optional [ str ] = None
55
+ SMTP_PORT : int | None = None
56
+ SMTP_HOST : str | None = None
57
+ SMTP_USER : str | None = None
58
+ SMTP_PASSWORD : str | None = None
59
+ EMAILS_FROM_EMAIL : EmailStr | None = None
60
+ EMAILS_FROM_NAME : str | None = None
61
61
62
62
@validator ("EMAILS_FROM_NAME" )
63
- def get_project_name (cls , v : Optional [ str ] , values : Dict [str , Any ]) -> str :
63
+ def get_project_name (cls , v : str | None , values : dict [str , Any ]) -> str :
64
64
if not v :
65
65
return values ["PROJECT_NAME" ]
66
66
return v
@@ -70,7 +70,7 @@ def get_project_name(cls, v: Optional[str], values: Dict[str, Any]) -> str:
70
70
EMAILS_ENABLED : bool = False
71
71
72
72
@validator ("EMAILS_ENABLED" , pre = True )
73
- def get_emails_enabled (cls , v : bool , values : Dict [str , Any ]) -> bool :
73
+ def get_emails_enabled (cls , v : bool , values : dict [str , Any ]) -> bool :
74
74
return bool (
75
75
values .get ("SMTP_HOST" )
76
76
and values .get ("SMTP_PORT" )
0 commit comments