22# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
33
44import logging
5- from typing import Annotated , Any , Dict , Optional , Tuple , Union
5+ from typing import Annotated , Any
66
7- from fastapi import Depends , HTTPException , Request , Response
8- from fastapi .security import HTTPAuthorizationCredentials , HTTPBearer
97from starlette .status import HTTP_401_UNAUTHORIZED
108
119from odoo .api import Environment
2119from odoo .addons .base .models .res_partner import Partner
2220from odoo .addons .fastapi .dependencies import odoo_env
2321
22+ from fastapi import Depends , HTTPException , Request , Response
23+ from fastapi .security import HTTPAuthorizationCredentials , HTTPBearer
24+
2425_logger = logging .getLogger (__name__ )
2526
2627
27- Payload = Dict [str , Any ]
28+ Payload = dict [str , Any ]
2829
2930
3031def _get_auth_jwt_validator (
31- validator_name : Union [ str , None ] ,
32+ validator_name : str | None ,
3233 env : Environment ,
3334) -> AuthJwtValidator :
3435 validator = env ["auth.jwt.validator" ].sudo ()._get_validator_by_name (validator_name )
@@ -38,9 +39,9 @@ def _get_auth_jwt_validator(
3839
3940def _request_has_authentication (
4041 request : Request ,
41- authorization_header : Optional [ str ] ,
42+ authorization_header : str | None ,
4243 validator : AuthJwtValidator ,
43- ) -> Union [ Payload , None ] :
44+ ) -> Payload | None :
4445 if authorization_header is not None :
4546 return True
4647 if not validator .cookie_enabled :
@@ -51,7 +52,7 @@ def _request_has_authentication(
5152
5253def _get_jwt_payload (
5354 request : Request ,
54- authorization_header : Optional [ str ] ,
55+ authorization_header : str | None ,
5556 validator : AuthJwtValidator ,
5657) -> Payload :
5758 """Obtain and validate the JWT payload from the request authorization header or
@@ -75,9 +76,9 @@ def _get_jwt_payload(
7576def _get_jwt_payload_and_validator (
7677 request : Request ,
7778 response : Response ,
78- authorization_header : Optional [ str ] ,
79+ authorization_header : str | None ,
7980 validator : AuthJwtValidator ,
80- ) -> Tuple [Payload , AuthJwtValidator ]:
81+ ) -> tuple [Payload , AuthJwtValidator ]:
8182 try :
8283 payload = None
8384 exceptions = {}
@@ -116,15 +117,15 @@ def _get_jwt_payload_and_validator(
116117 raise HTTPException (status_code = HTTP_401_UNAUTHORIZED ) from e
117118
118119
119- def auth_jwt_default_validator_name () -> Union [ str , None ] :
120+ def auth_jwt_default_validator_name () -> str | None :
120121 return None
121122
122123
123124def auth_jwt_http_header_authorization (
124125 credentials : Annotated [
125- Optional [ HTTPAuthorizationCredentials ] ,
126+ HTTPAuthorizationCredentials | None ,
126127 Depends (HTTPBearer (auto_error = False )),
127- ]
128+ ],
128129):
129130 if credentials is None :
130131 return None
@@ -133,7 +134,7 @@ def auth_jwt_http_header_authorization(
133134
134135class BaseAuthJwt : # noqa: B903
135136 def __init__ (
136- self , validator_name : Optional [ str ] = None , allow_unauthenticated : bool = False
137+ self , validator_name : str | None = None , allow_unauthenticated : bool = False
137138 ):
138139 self .validator_name = validator_name
139140 self .allow_unauthenticated = allow_unauthenticated
@@ -145,18 +146,18 @@ def __call__(
145146 request : Request ,
146147 response : Response ,
147148 authorization_header : Annotated [
148- Optional [ str ] ,
149+ str | None ,
149150 Depends (auth_jwt_http_header_authorization ),
150151 ],
151152 default_validator_name : Annotated [
152- Union [ str , None ] ,
153+ str | None ,
153154 Depends (auth_jwt_default_validator_name ),
154155 ],
155156 env : Annotated [
156157 Environment ,
157158 Depends (odoo_env ),
158159 ],
159- ) -> Optional [ Payload ] :
160+ ) -> Payload | None :
160161 validator = _get_auth_jwt_validator (
161162 self .validator_name or default_validator_name , env
162163 )
@@ -175,11 +176,11 @@ def __call__(
175176 request : Request ,
176177 response : Response ,
177178 authorization_header : Annotated [
178- Optional [ str ] ,
179+ str | None ,
179180 Depends (auth_jwt_http_header_authorization ),
180181 ],
181182 default_validator_name : Annotated [
182- Union [ str , None ] ,
183+ str | None ,
183184 Depends (auth_jwt_default_validator_name ),
184185 ],
185186 env : Annotated [
@@ -215,11 +216,11 @@ def __call__(
215216 request : Request ,
216217 response : Response ,
217218 authorization_header : Annotated [
218- Optional [ str ] ,
219+ str | None ,
219220 Depends (auth_jwt_http_header_authorization ),
220221 ],
221222 default_validator_name : Annotated [
222- Union [ str , None ] ,
223+ str | None ,
223224 Depends (auth_jwt_default_validator_name ),
224225 ],
225226 env : Annotated [
0 commit comments