1010from typing import Annotated , Any , Final
1111
1212import pycountry
13+ from common_library .basic_types import DEFAULT_FACTORY
1314from models_library .api_schemas_webserver ._base import InputSchema
1415from models_library .api_schemas_webserver .users import PhoneNumberStr , UserAccountGet
1516from models_library .emails import LowerCaseEmailStr
16- from models_library .users import UserID
17- from pydantic import BaseModel , ConfigDict , Field , field_validator , model_validator
18- from servicelib .request_keys import RQT_USERID_KEY
17+ from pydantic import ConfigDict , Field , field_validator , model_validator
1918
20- from ....constants import RQ_PRODUCT_KEY
19+ from ....models import AuthenticatedRequestContext
2120
2221
23- class UsersRequestContext (BaseModel ):
24- user_id : UserID = Field (..., alias = RQT_USERID_KEY ) # type: ignore[literal-required]
25- product_name : str = Field (..., alias = RQ_PRODUCT_KEY ) # type: ignore[literal-required]
22+ class UsersRequestContext (AuthenticatedRequestContext ): ...
2623
2724
2825MAX_BYTES_SIZE_EXTRAS : Final [int ] = 512
@@ -34,15 +31,15 @@ class PreRegisteredUserGet(InputSchema):
3431 first_name : str
3532 last_name : str
3633 email : LowerCaseEmailStr
37- institution : str | None = Field (
38- default = None , description = "company, university, ..."
39- )
34+ institution : Annotated [
35+ str | None , Field ( description = "company, university, ..." )
36+ ] = None
4037 phone : PhoneNumberStr | None
4138
4239 # billing details
4340 address : str
4441 city : str
45- state : str | None = Field ( default = None )
42+ state : str | None = None
4643 postal_code : str
4744 country : str
4845 extras : Annotated [
@@ -51,7 +48,7 @@ class PreRegisteredUserGet(InputSchema):
5148 default_factory = dict ,
5249 description = "Keeps extra information provided in the request form." ,
5350 ),
54- ]
51+ ] = DEFAULT_FACTORY
5552
5653 model_config = ConfigDict (str_strip_whitespace = True , str_max_length = 200 )
5754
@@ -108,7 +105,7 @@ def _pre_check_and_normalize_country(cls, v):
108105 return v
109106
110107
111- # asserts field names are in sync
112- assert set ( PreRegisteredUserGet . model_fields ). issubset (
108+ assert set ( PreRegisteredUserGet . model_fields ). issubset ( # nosec
109+ # asserts field names are in sync
113110 UserAccountGet .model_fields
114- ) # nosec
111+ )
0 commit comments