Skip to content

Commit 44d97de

Browse files
continue fixing
1 parent 8015258 commit 44d97de

File tree

18 files changed

+78
-72
lines changed

18 files changed

+78
-72
lines changed

services/web/server/src/simcore_service_webserver/director_v2/_core_dynamic_services.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from models_library.api_schemas_directorv2.dynamic_services import DynamicServiceGet
1111
from models_library.projects import ProjectID
1212
from models_library.services import ServicePortKey
13-
from pydantic import BaseModel, NonNegativeInt, parse_obj_as
13+
from pydantic import BaseModel, NonNegativeInt, TypeAdapter
1414
from pydantic.types import PositiveInt
1515
from servicelib.logging_utils import log_decorator
1616
from yarl import URL
@@ -33,7 +33,7 @@ async def list_dynamic_services(
3333
project_id: str | None = None,
3434
) -> list[DynamicServiceGet]:
3535
params = _Params(user_id=user_id, project_id=project_id)
36-
params_dict = params.dict(exclude_none=True)
36+
params_dict = params.model_dump(exclude_none=True)
3737
settings: DirectorV2Settings = get_plugin_settings(app)
3838
if params_dict: # Update query doesnt work with no params to unwrap
3939
backend_url = (settings.base_url / "dynamic_services").update_query(
@@ -49,7 +49,7 @@ async def list_dynamic_services(
4949
if services is None:
5050
services = []
5151
assert isinstance(services, list) # nosec
52-
return parse_obj_as(list[DynamicServiceGet], services)
52+
return TypeAdapter(list[DynamicServiceGet]).validate_python(services)
5353

5454

5555
# NOTE: ANE https://github.com/ITISFoundation/osparc-simcore/issues/3191

services/web/server/src/simcore_service_webserver/exporter/_formatter/_sds.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from typing import Any, Final
66

77
from aiohttp import web
8-
from pydantic import parse_obj_as
98
from servicelib.pools import non_blocking_process_pool_executor
109

1110
from ...catalog.client import get_service
@@ -79,8 +78,7 @@ async def _add_rrid_entries(
7978
continue
8079

8180
rrid_entires.append(
82-
parse_obj_as(
83-
RRIDEntry,
81+
RRIDEntry.model_validate(
8482
{
8583
"rrid_term": scicrunch_resource.name,
8684
"rrid_identifier": scicrunch_resource.rrid,
@@ -158,8 +156,7 @@ async def create_sds_directory(
158156
_logger.debug("Project data: %s", project_data)
159157

160158
# assemble params here
161-
dataset_description_params = parse_obj_as(
162-
DatasetDescriptionParams,
159+
dataset_description_params = DatasetDescriptionParams.model_validate(
163160
{"name": project_data["name"], "description": project_data["description"]},
164161
)
165162

services/web/server/src/simcore_service_webserver/groups/_db.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from aiopg.sa.result import ResultProxy, RowProxy
77
from models_library.groups import GroupAtDB
88
from models_library.users import GroupID, UserID
9-
from pydantic import parse_obj_as
109
from simcore_postgres_database.utils_products import get_or_create_product_group
1110
from sqlalchemy import and_, literal_column
1211
from sqlalchemy.dialects.postgresql import insert
@@ -117,7 +116,7 @@ async def get_all_user_groups(conn: SAConnection, user_id: UserID) -> list[Group
117116
.where(user_to_groups.c.uid == user_id)
118117
)
119118
rows = await result.fetchall() or []
120-
return [parse_obj_as(GroupAtDB, row) for row in rows]
119+
return [GroupAtDB.model_validate(row) for row in rows]
121120

122121

123122
async def get_user_group(
@@ -409,5 +408,5 @@ async def get_group_from_gid(conn: SAConnection, gid: GroupID) -> GroupAtDB | No
409408
row: ResultProxy = await conn.execute(groups.select().where(groups.c.gid == gid))
410409
result = await row.first()
411410
if result:
412-
return GroupAtDB.from_orm(result)
411+
return GroupAtDB.model_validate(result)
413412
return None

services/web/server/src/simcore_service_webserver/invitations/_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
ApiInvitationInputs,
1111
)
1212
from models_library.utils.fastapi_encoders import jsonable_encoder
13-
from pydantic import AnyHttpUrl, parse_obj_as
13+
from pydantic import AnyHttpUrl
1414
from yarl import URL
1515

1616
from .._constants import APP_SETTINGS_KEY
@@ -86,7 +86,7 @@ async def extract_invitation(
8686
url=self._url_vtag("/invitations:extract"),
8787
json={"invitation_url": invitation_url},
8888
)
89-
return parse_obj_as(ApiInvitationContent, await response.json())
89+
return ApiInvitationContent.model_validate(await response.json())
9090

9191
async def generate_invitation(
9292
self, params: ApiInvitationInputs
@@ -95,7 +95,7 @@ async def generate_invitation(
9595
url=self._url_vtag("/invitations"),
9696
json=jsonable_encoder(params),
9797
)
98-
return parse_obj_as(ApiInvitationContentAndLink, await response.json())
98+
return ApiInvitationContentAndLink.model_validate(await response.json())
9999

100100

101101
#

services/web/server/src/simcore_service_webserver/invitations/_core.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
ApiInvitationInputs,
1010
)
1111
from models_library.emails import LowerCaseEmailStr
12-
from pydantic import AnyHttpUrl, ValidationError, parse_obj_as
12+
from pydantic import AnyHttpUrl, TypeAdapter, ValidationError
1313
from servicelib.aiohttp import status
1414

1515
from ..groups.api import is_user_by_email_in_group
@@ -92,7 +92,7 @@ async def validate_invitation_url(
9292

9393
with _handle_exceptions_as_invitations_errors():
9494
try:
95-
valid_url = parse_obj_as(AnyHttpUrl, invitation_url)
95+
valid_url = TypeAdapter(AnyHttpUrl).validate_python(invitation_url)
9696
except ValidationError as err:
9797
raise InvalidInvitationError(reason=MSG_INVALID_INVITATION_URL) from err
9898

@@ -143,7 +143,7 @@ async def extract_invitation(
143143

144144
with _handle_exceptions_as_invitations_errors():
145145
try:
146-
valid_url = parse_obj_as(AnyHttpUrl, invitation_url)
146+
valid_url = TypeAdapter(AnyHttpUrl).validate_python(invitation_url)
147147
except ValidationError as err:
148148
raise InvalidInvitationError(reason=MSG_INVALID_INVITATION_URL) from err
149149

services/web/server/src/simcore_service_webserver/invitations/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from typing import Final
99

1010
from aiohttp import web
11-
from pydantic import Field, SecretStr, parse_obj_as
11+
from pydantic import Field, SecretStr, TypeAdapter
1212
from settings_library.base import BaseCustomSettings
1313
from settings_library.basic_types import PortInt, VersionTag
1414
from settings_library.utils_service import (
@@ -19,7 +19,7 @@
1919

2020
from .._constants import APP_SETTINGS_KEY
2121

22-
_INVITATION_VTAG_V1: Final[VersionTag] = parse_obj_as(VersionTag, "v1")
22+
_INVITATION_VTAG_V1: Final[VersionTag] = TypeAdapter(VersionTag).validate_python("v1")
2323

2424

2525
class InvitationsSettings(BaseCustomSettings, MixinServiceSettings):

services/web/server/src/simcore_service_webserver/login/_auth_handlers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from aiohttp.web import RouteTableDef
55
from models_library.authentification import TwoFactorAuthentificationMethod
66
from models_library.emails import LowerCaseEmailStr
7-
from pydantic import BaseModel, Field, PositiveInt, SecretStr, parse_obj_as
7+
from pydantic import BaseModel, Field, PositiveInt, SecretStr, TypeAdapter
88
from servicelib.aiohttp import status
99
from servicelib.aiohttp.requests_validation import parse_request_body_as
1010
from servicelib.logging_utils import get_log_record_extra, log_context
@@ -137,9 +137,9 @@ async def login(request: web.Request):
137137
value=user_2fa_authentification_method,
138138
)
139139
else:
140-
user_2fa_authentification_method = parse_obj_as(
141-
TwoFactorAuthentificationMethod, user_2fa_preference.value
142-
)
140+
user_2fa_authentification_method = TypeAdapter(
141+
TwoFactorAuthentificationMethod
142+
).validate_python(user_2fa_preference.value)
143143

144144
if user_2fa_authentification_method == TwoFactorAuthentificationMethod.DISABLED:
145145
return await login_granted_response(request, user=user)

services/web/server/src/simcore_service_webserver/login/_registration_api.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from models_library.utils.fastapi_encoders import jsonable_encoder
1010
from models_library.utils.json_serialization import json_dumps
1111
from PIL.Image import Image
12-
from pydantic import EmailStr, PositiveInt, ValidationError, parse_obj_as
12+
from pydantic import EmailStr, PositiveInt, TypeAdapter, ValidationError
1313
from servicelib.utils_secrets import generate_passcode
1414

1515
from ..email.utils import send_email_from_template
@@ -66,7 +66,9 @@ async def send_account_request_email_to_support(
6666
support_email = product.support_email
6767
email_template_path = await get_product_template_path(request, template_name)
6868
try:
69-
user_email = parse_obj_as(LowerCaseEmailStr, request_form.get("email", None))
69+
user_email = TypeAdapter(LowerCaseEmailStr).validate_python(
70+
request_form.get("email", None)
71+
)
7072
except ValidationError:
7173
user_email = None
7274

@@ -80,7 +82,7 @@ async def send_account_request_email_to_support(
8082
context={
8183
"host": request.host,
8284
"name": "support-team",
83-
"product": product.dict(
85+
"product": product.model_dump(
8486
include={
8587
"name",
8688
"display_name",

services/web/server/src/simcore_service_webserver/login/handlers_confirmation.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
Field,
1313
PositiveInt,
1414
SecretStr,
15+
TypeAdapter,
1516
ValidationError,
16-
parse_obj_as,
17-
validator,
17+
field_validator,
1818
)
1919
from servicelib.aiohttp import status
2020
from servicelib.aiohttp.requests_validation import (
@@ -73,7 +73,7 @@ def _parse_extra_credits_in_usd_or_none(
7373
) -> PositiveInt | None:
7474
with suppress(ValidationError, JSONDecodeError):
7575
confirmation_data = confirmation.get("data", "EMPTY") or "EMPTY"
76-
invitation = InvitationData.parse_raw(confirmation_data)
76+
invitation = InvitationData.model_validate_json(confirmation_data)
7777
return invitation.extra_credits_in_usd
7878
return None
7979

@@ -110,7 +110,11 @@ async def _handle_confirm_change_email(
110110
# update and consume confirmation token
111111
await db.delete_confirmation_and_update_user(
112112
user_id=user_id,
113-
updates={"email": parse_obj_as(LowerCaseEmailStr, confirmation["data"])},
113+
updates={
114+
"email": TypeAdapter(LowerCaseEmailStr).validate_python(
115+
confirmation["data"]
116+
)
117+
},
114118
confirmation=confirmation,
115119
)
116120

@@ -265,9 +269,7 @@ class ResetPasswordConfirmation(InputSchema):
265269
password: SecretStr
266270
confirm: SecretStr
267271

268-
_password_confirm_match = validator("confirm", allow_reuse=True)(
269-
check_confirm_password_match
270-
)
272+
_password_confirm_match = field_validator("confirm")(check_confirm_password_match)
271273

272274

273275
@routes.post("/v0/auth/reset-password/{code}", name="auth_reset_password_allowed")

services/web/server/src/simcore_service_webserver/payments/_methods_api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from models_library.products import ProductName
1616
from models_library.users import UserID
1717
from models_library.wallets import WalletID
18-
from pydantic import HttpUrl, parse_obj_as
18+
from pydantic import HttpUrl, TypeAdapter
1919
from servicelib.logging_utils import log_decorator
2020
from simcore_postgres_database.models.payments_methods import InitPromptAckFlowState
2121
from yarl import URL
@@ -97,7 +97,7 @@ async def _fake_init_creation_of_wallet_payment_method(
9797
return PaymentMethodInitiated(
9898
wallet_id=wallet_id,
9999
payment_method_id=payment_method_id,
100-
payment_method_form_url=parse_obj_as(HttpUrl, f"{form_link}"),
100+
payment_method_form_url=TypeAdapter(HttpUrl).validate_python(f"{form_link}"),
101101
)
102102

103103

0 commit comments

Comments
 (0)