55from cryptography .fernet import Fernet
66from models_library .emails import LowerCaseEmailStr
77from models_library .invitations import InvitationContent , InvitationInputs
8- from pydantic import EmailStr , HttpUrl , ValidationError , parse_obj_as
8+ from pydantic import EmailStr , HttpUrl , TypeAdapter , ValidationError
99from rich .console import Console
1010from servicelib .utils_secrets import generate_password
1111from settings_library .utils_cli import (
@@ -96,19 +96,19 @@ def invite(
9696 ctx : typer .Context ,
9797 email : str = typer .Argument (
9898 ...,
99- callback = lambda v : parse_obj_as (LowerCaseEmailStr , v ),
99+ callback = lambda v : TypeAdapter (LowerCaseEmailStr ). validate_python ( v ),
100100 help = "Custom invitation for a given guest" ,
101101 ),
102102 issuer : str = typer .Option (
103- ..., help = InvitationInputs .__fields__ ["issuer" ]. field_info .description
103+ ..., help = InvitationInputs .model_fields ["issuer" ].description
104104 ),
105105 trial_account_days : int = typer .Option (
106106 None ,
107- help = InvitationInputs .__fields__ ["trial_account_days" ]. field_info .description ,
107+ help = InvitationInputs .model_fields ["trial_account_days" ].description ,
108108 ),
109109 product : str = typer .Option (
110110 None ,
111- help = InvitationInputs .__fields__ ["product" ]. field_info .description ,
111+ help = InvitationInputs .model_fields ["product" ].description ,
112112 ),
113113):
114114 """Creates an invitation link for user with 'email' and issued by 'issuer'"""
@@ -117,7 +117,7 @@ def invite(
117117
118118 invitation_data = InvitationInputs (
119119 issuer = issuer ,
120- guest = parse_obj_as (EmailStr , email ),
120+ guest = TypeAdapter (EmailStr ). validate_python ( email ),
121121 trial_account_days = trial_account_days ,
122122 extra_credits_in_usd = None ,
123123 product = product ,
@@ -142,14 +142,14 @@ def extract(ctx: typer.Context, invitation_url: str):
142142 try :
143143 invitation : InvitationContent = extract_invitation_content (
144144 invitation_code = extract_invitation_code_from_query (
145- parse_obj_as (HttpUrl , invitation_url )
145+ TypeAdapter (HttpUrl ). validate_python ( invitation_url )
146146 ),
147147 secret_key = settings .INVITATIONS_SECRET_KEY .get_secret_value ().encode (),
148148 default_product = settings .INVITATIONS_DEFAULT_PRODUCT ,
149149 )
150150 assert invitation .product is not None # nosec
151151
152- print (invitation .json (indent = 1 )) # noqa: T201
152+ print (invitation .model_dump_json (indent = 1 )) # noqa: T201
153153
154154 except (InvalidInvitationCodeError , ValidationError ):
155155 _err_console .print ("[bold red]Invalid code[/bold red]" )
0 commit comments