Skip to content

Commit 2aa3386

Browse files
continue fixing
1 parent 1bef5ad commit 2aa3386

31 files changed

+123
-102
lines changed

services/web/server/src/simcore_service_webserver/activity/_handlers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import aiohttp
55
import aiohttp.web
66
from models_library.api_schemas_webserver.activity import ActivityStatusDict
7-
from pydantic import parse_obj_as
7+
from pydantic import TypeAdapter
88
from servicelib.aiohttp.client_session import get_client_session
99
from servicelib.mimetype_constants import MIMETYPE_APPLICATION_JSON
1010
from servicelib.request_keys import RQT_USERID_KEY
@@ -73,5 +73,5 @@ async def get_activity_status(request: aiohttp.web.Request):
7373
if not res:
7474
raise aiohttp.web.HTTPNoContent(content_type=MIMETYPE_APPLICATION_JSON)
7575

76-
assert parse_obj_as(ActivityStatusDict, res) is not None # nosec
76+
assert TypeAdapter(ActivityStatusDict).validate_python(res) is not None # nosec
7777
return dict(res)

services/web/server/src/simcore_service_webserver/catalog/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
)
2020
from models_library.services_resources import ServiceResourcesDict
2121
from models_library.users import UserID
22-
from pydantic import parse_obj_as
22+
from pydantic import TypeAdapter
2323
from servicelib.aiohttp import status
2424
from servicelib.aiohttp.client_session import get_client_session
2525
from servicelib.rest_constants import X_PRODUCT_NAME_HEADER
@@ -146,7 +146,7 @@ async def get_service_resources(
146146
async with session.get(url) as resp:
147147
resp.raise_for_status()
148148
dict_response = await resp.json()
149-
return parse_obj_as(ServiceResourcesDict, dict_response)
149+
return TypeAdapter(ServiceResourcesDict).validate_python(dict_response)
150150

151151

152152
async def get_service_access_rights(

services/web/server/src/simcore_service_webserver/clusters/_handlers.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
ClusterPing,
1212
)
1313
from models_library.users import UserID
14-
from pydantic import BaseModel, Field, parse_obj_as
14+
from pydantic import BaseModel, Field, TypeAdapter
1515
from servicelib.aiohttp import status
1616
from servicelib.aiohttp.requests_validation import (
1717
parse_request_body_as,
@@ -100,7 +100,7 @@ async def list_clusters(request: web.Request) -> web.Response:
100100
app=request.app,
101101
user_id=req_ctx.user_id,
102102
)
103-
assert parse_obj_as(list[ClusterGet], clusters) is not None # nosec
103+
assert TypeAdapter(list[ClusterGet]).validate_python(clusters) is not None # nosec
104104
return envelope_json_response(clusters)
105105

106106

@@ -117,7 +117,7 @@ async def get_cluster(request: web.Request) -> web.Response:
117117
user_id=req_ctx.user_id,
118118
cluster_id=path_params.cluster_id,
119119
)
120-
assert parse_obj_as(ClusterGet, cluster) is not None # nosec
120+
assert TypeAdapter(ClusterGet).validate_python(cluster) is not None # nosec
121121
return envelope_json_response(cluster)
122122

123123

@@ -137,7 +137,7 @@ async def update_cluster(request: web.Request) -> web.Response:
137137
cluster_patch=cluster_patch,
138138
)
139139

140-
assert parse_obj_as(ClusterGet, updated_cluster) is not None # nosec
140+
assert TypeAdapter(ClusterGet).validate_python(updated_cluster) is not None # nosec
141141
return envelope_json_response(updated_cluster)
142142

143143

@@ -173,7 +173,9 @@ async def get_cluster_details(request: web.Request) -> web.Response:
173173
user_id=req_ctx.user_id,
174174
cluster_id=path_params.cluster_id,
175175
)
176-
assert parse_obj_as(ClusterDetails, cluster_details) is not None # nosec
176+
assert (
177+
TypeAdapter(ClusterDetails).validate_python(cluster_details) is not None
178+
) # nosec
177179
return envelope_json_response(cluster_details)
178180

179181

services/web/server/src/simcore_service_webserver/diagnostics/_handlers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from aiohttp import ClientError, ClientSession, web
1111
from models_library.app_diagnostics import AppStatusCheck
1212
from models_library.utils.pydantic_tools_extension import FieldNotRequired
13-
from pydantic import BaseModel, parse_obj_as
13+
from pydantic import BaseModel, TypeAdapter
1414
from servicelib.aiohttp.client_session import get_client_session
1515
from servicelib.aiohttp.requests_validation import parse_request_query_parameters_as
1616
from servicelib.utils import logged_gather
@@ -62,7 +62,7 @@ async def get_app_diagnostics(request: web.Request):
6262
top_tracemalloc=get_tracemalloc_info(top=query_params.top_tracemalloc)
6363
)
6464

65-
assert parse_obj_as(StatusDiagnosticsGet, data) is not None # nosec
65+
assert TypeAdapter(StatusDiagnosticsGet).validate_python(data) is not None # nosec
6666
return envelope_json_response(data)
6767

6868

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from models_library.projects import ProjectID
33
from models_library.users import UserID
44
from models_library.wallets import WalletID, WalletInfo
5-
from pydantic import parse_obj_as
5+
from pydantic import TypeAdapter
66

77
from ..application_settings import get_application_settings
88
from ..products.api import Product
@@ -35,7 +35,9 @@ async def get_wallet_info(
3535
)
3636
if user_default_wallet_preference is None:
3737
raise UserDefaultWalletNotFoundError(uid=user_id)
38-
project_wallet_id = parse_obj_as(WalletID, user_default_wallet_preference.value)
38+
project_wallet_id = TypeAdapter(WalletID).validate_python(
39+
user_default_wallet_preference.value
40+
)
3941
await projects_api.connect_wallet_to_project(
4042
app,
4143
product_name=product_name,

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from models_library.projects_pipeline import ComputationTask
2727
from models_library.users import UserID
2828
from models_library.utils.fastapi_encoders import jsonable_encoder
29-
from pydantic import parse_obj_as
29+
from pydantic import TypeAdapter
3030
from pydantic.types import PositiveInt
3131
from servicelib.aiohttp import status
3232
from servicelib.logging_utils import log_decorator
@@ -234,7 +234,7 @@ async def create_cluster(
234234
),
235235
)
236236
assert isinstance(cluster, dict) # nosec
237-
assert parse_obj_as(ClusterGet, cluster) is not None # nosec
237+
assert TypeAdapter(ClusterGet).validate_python(cluster) is not None # nosec
238238
return cluster
239239

240240

@@ -248,7 +248,7 @@ async def list_clusters(app: web.Application, user_id: UserID) -> list[DataType]
248248
)
249249

250250
assert isinstance(clusters, list) # nosec
251-
assert parse_obj_as(list[ClusterGet], clusters) is not None # nosec
251+
assert TypeAdapter(list[ClusterGet]).validate_python(clusters) is not None # nosec
252252
return clusters
253253

254254

@@ -276,7 +276,7 @@ async def get_cluster(
276276
)
277277

278278
assert isinstance(cluster, dict) # nosec
279-
assert parse_obj_as(ClusterGet, cluster) is not None # nosec
279+
assert TypeAdapter(ClusterGet).validate_python(cluster) is not None # nosec
280280
return cluster
281281

282282

@@ -304,7 +304,7 @@ async def get_cluster_details(
304304
},
305305
)
306306
assert isinstance(cluster, dict) # nosec
307-
assert parse_obj_as(ClusterDetails, cluster) is not None # nosec
307+
assert TypeAdapter(ClusterDetails).validate_python(cluster) is not None # nosec
308308
return cluster
309309

310310

@@ -342,7 +342,7 @@ async def update_cluster(
342342
)
343343

344344
assert isinstance(cluster, dict) # nosec
345-
assert parse_obj_as(ClusterGet, cluster) is not None # nosec
345+
assert TypeAdapter(ClusterGet).validate_python(cluster) is not None # nosec
346346
return cluster
347347

348348

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

Lines changed: 2 additions & 2 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
@@ -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/director_v2/_handlers.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from models_library.projects import ProjectID
99
from models_library.users import UserID
1010
from models_library.utils.json_serialization import json_dumps
11-
from pydantic import BaseModel, Field, ValidationError, parse_obj_as
11+
from pydantic import BaseModel, Field, TypeAdapter, ValidationError
1212
from pydantic.types import NonNegativeInt
1313
from servicelib.aiohttp.rest_responses import (
1414
create_http_error,
@@ -81,7 +81,9 @@ async def start_computation(request: web.Request) -> web.Response:
8181

8282
if request.can_read_body:
8383
body = await request.json()
84-
assert parse_obj_as(ComputationStart, body) is not None # nosec
84+
assert (
85+
TypeAdapter(ComputationStart).validate_python(body) is not None
86+
) # nosec
8587

8688
subgraph = body.get("subgraph", [])
8789
force_restart = bool(body.get("force_restart", force_restart))
@@ -161,7 +163,9 @@ async def start_computation(request: web.Request) -> web.Response:
161163
if project_vc_commits:
162164
data["ref_ids"] = project_vc_commits
163165

164-
assert parse_obj_as(_ComputationStarted, data) is not None # nosec
166+
assert (
167+
TypeAdapter(_ComputationStarted).validate_python(data) is not None
168+
) # nosec
165169

166170
return envelope_json_response(data, status_cls=web.HTTPCreated)
167171

@@ -241,8 +245,7 @@ async def get_computation(request: web.Request) -> web.Response:
241245
request, project_id
242246
)
243247
_logger.debug("Project %s will get %d variants", project_id, len(project_ids))
244-
list_computation_tasks = parse_obj_as(
245-
list[ComputationTaskGet],
248+
list_computation_tasks = TypeAdapter(list[ComputationTaskGet]).validate_python(
246249
await asyncio.gather(
247250
*[
248251
computations.get(project_id=pid, user_id=user_id)
@@ -258,7 +261,7 @@ async def get_computation(request: web.Request) -> web.Response:
258261
for c in list_computation_tasks
259262
)
260263
return web.json_response(
261-
data={"data": list_computation_tasks[0].dict(by_alias=True)},
264+
data={"data": list_computation_tasks[0].model_dump(by_alias=True)},
262265
dumps=json_dumps,
263266
)
264267
except DirectorServiceError as exc:

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

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

77
from aiohttp import web
8-
from pydantic import parse_obj_as
8+
from pydantic import TypeAdapter
99
from servicelib.pools import non_blocking_process_pool_executor
1010

1111
from ...catalog.client import get_service
@@ -79,8 +79,7 @@ async def _add_rrid_entries(
7979
continue
8080

8181
rrid_entires.append(
82-
parse_obj_as(
83-
RRIDEntry,
82+
TypeAdapter(RRIDEntry).validate_python(
8483
{
8584
"rrid_term": scicrunch_resource.name,
8685
"rrid_identifier": scicrunch_resource.rrid,
@@ -158,8 +157,7 @@ async def create_sds_directory(
158157
_logger.debug("Project data: %s", project_data)
159158

160159
# assemble params here
161-
dataset_description_params = parse_obj_as(
162-
DatasetDescriptionParams,
160+
dataset_description_params = TypeAdapter(DatasetDescriptionParams).validate_python(
163161
{"name": project_data["name"], "description": project_data["description"]},
164162
)
165163

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
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
9+
from pydantic import TypeAdapter
1010
from simcore_postgres_database.utils_products import get_or_create_product_group
1111
from sqlalchemy import and_, literal_column
1212
from sqlalchemy.dialects.postgresql import insert
@@ -117,7 +117,7 @@ async def get_all_user_groups(conn: SAConnection, user_id: UserID) -> list[Group
117117
.where(user_to_groups.c.uid == user_id)
118118
)
119119
rows = await result.fetchall() or []
120-
return [parse_obj_as(GroupAtDB, row) for row in rows]
120+
return [TypeAdapter(GroupAtDB).validate_python(row) for row in rows]
121121

122122

123123
async def get_user_group(

0 commit comments

Comments
 (0)