Skip to content

Commit 5d3c5e5

Browse files
committed
replaces json.loads
1 parent 91e74d2 commit 5d3c5e5

File tree

13 files changed

+43
-36
lines changed

13 files changed

+43
-36
lines changed

services/director-v2/src/simcore_service_director_v2/modules/db/repositories/projects_networks.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import json
2-
31
import sqlalchemy as sa
42
from aiopg.sa.result import RowProxy
3+
from common_library.json_serialization import json_loads
54
from models_library.projects import ProjectID
65
from models_library.projects_networks import NetworksWithAliases, ProjectsNetworks
76
from sqlalchemy.dialects.postgresql import insert as pg_insert
@@ -33,7 +32,7 @@ async def upsert_projects_networks(
3332
)
3433

3534
async with self.db_engine.acquire() as conn:
36-
row_data = json.loads(projects_networks_to_insert.model_dump_json())
35+
row_data = json_loads(projects_networks_to_insert.model_dump_json())
3736
insert_stmt = pg_insert(projects_networks).values(**row_data)
3837
upsert_snapshot = insert_stmt.on_conflict_do_update(
3938
constraint=projects_networks.primary_key, set_=row_data

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/settings.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from collections import deque
44
from typing import Any, cast
55

6+
from common_library.json_serialization import json_loads
67
from models_library.basic_types import EnvVarKey, PortInt
78
from models_library.boot_options import BootOption
89
from models_library.docker import (
@@ -156,11 +157,15 @@ def update_service_params_from_settings(
156157
container_spec = create_service_params["task_template"]["ContainerSpec"]
157158
# set labels for CPU and Memory limits, for both service and container labels
158159
# NOTE: cpu-limit is a float not NanoCPUs!!
159-
container_spec["Labels"][
160-
f"{to_simcore_runtime_docker_label_key('cpu-limit')}"
161-
] = str(
162-
float(create_service_params["task_template"]["Resources"]["Limits"]["NanoCPUs"])
163-
/ (1 * 10**9)
160+
container_spec["Labels"][f"{to_simcore_runtime_docker_label_key('cpu-limit')}"] = (
161+
str(
162+
float(
163+
create_service_params["task_template"]["Resources"]["Limits"][
164+
"NanoCPUs"
165+
]
166+
)
167+
/ (1 * 10**9)
168+
)
164169
)
165170
create_service_params["labels"][
166171
f"{to_simcore_runtime_docker_label_key('cpu-limit')}"
@@ -401,7 +406,7 @@ def _get_boot_options(
401406
if boot_options_encoded is None:
402407
return None
403408

404-
boot_options = json.loads(boot_options_encoded)["boot-options"]
409+
boot_options = json_loads(boot_options_encoded)["boot-options"]
405410
log.debug("got boot_options=%s", boot_options)
406411
return {k: BootOption.model_validate(v) for k, v in boot_options.items()}
407412

@@ -443,13 +448,13 @@ async def get_labels_for_involved_services(
443448
# paths_mapping express how to map dynamic-sidecar paths to the compose-spec volumes
444449
# where the service expects to find its certain folders
445450

446-
labels_for_involved_services: dict[
447-
str, SimcoreServiceLabels
448-
] = await _extract_osparc_involved_service_labels(
449-
catalog_client=catalog_client,
450-
service_key=service_key,
451-
service_tag=service_tag,
452-
service_labels=simcore_service_labels,
451+
labels_for_involved_services: dict[str, SimcoreServiceLabels] = (
452+
await _extract_osparc_involved_service_labels(
453+
catalog_client=catalog_client,
454+
service_key=service_key,
455+
service_tag=service_tag,
456+
service_labels=simcore_service_labels,
457+
)
453458
)
454459
logging.info("labels_for_involved_services=%s", labels_for_involved_services)
455460
return labels_for_involved_services

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/scheduler/_core/_events_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# pylint: disable=relative-beyond-top-level
22

33
import asyncio
4-
import json
54
import logging
65
from typing import TYPE_CHECKING, Any, cast
76

7+
from common_library.json_serialization import json_loads
88
from fastapi import FastAPI
99
from models_library.api_schemas_long_running_tasks.base import ProgressPercent
1010
from models_library.products import ProductName
@@ -565,7 +565,7 @@ async def _restore_service_state_with_metrics() -> None:
565565
scheduler_data.key, scheduler_data.version
566566
)
567567
)
568-
service_outputs_labels = json.loads(
568+
service_outputs_labels = json_loads(
569569
simcore_service_labels.model_dump().get("io.simcore.outputs", "{}")
570570
).get("outputs", {})
571571
_logger.debug(

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/api/frontend/routes/_index.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22

33
import httpx
4+
from common_library.json_serialization import json_loads
45
from fastapi import FastAPI
56
from models_library.projects_nodes_io import NodeID
67
from nicegui import APIRouter, app, ui
@@ -39,7 +40,7 @@ def _render_service_details(node_id: NodeID, service: TrackedServiceModel) -> No
3940
service.dynamic_service_start.product_name,
4041
)
4142
service_status = (
42-
json.loads(service.service_status) if service.service_status else {}
43+
json_loads(service.service_status) if service.service_status else {}
4344
)
4445
dict_to_render["Service State"] = (
4546
"label",

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/api/frontend/routes/_service.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22

33
import httpx
4+
from common_library.json_serialization import json_loads
45
from models_library.api_schemas_dynamic_scheduler.dynamic_services import (
56
DynamicServiceStop,
67
)
@@ -89,7 +90,7 @@ async def service_details(node_id: NodeID):
8990

9091
scheduler_internals = service_model.model_dump(mode="json")
9192
service_status = scheduler_internals.pop("service_status", "{}")
92-
service_status = json.loads("{}" if service_status == "" else service_status)
93+
service_status = json_loads("{}" if service_status == "" else service_status)
9394
dynamic_service_start = scheduler_internals.pop("dynamic_service_start")
9495

9596
ui.markdown("**Service Status**")

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/api/rest/containers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# pylint: disable=too-many-arguments
22

3-
import json
43
import logging
54
from asyncio import Lock
65
from typing import Annotated, Any, Final
76

7+
from common_library.json_serialization import json_loads
88
from fastapi import APIRouter, Depends, HTTPException
99
from fastapi import Path as PathParam
1010
from fastapi import Query, Request, status
@@ -234,7 +234,7 @@ async def get_containers_name(
234234
"""
235235
_ = request
236236

237-
filters_dict: dict[str, str] = json.loads(filters)
237+
filters_dict: dict[str, str] = json_loads(filters)
238238
if not isinstance(filters_dict, dict):
239239
raise HTTPException(
240240
status.HTTP_422_UNPROCESSABLE_ENTITY,

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/core/validation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import json
21
import logging
32
import os
43
import re
54
from collections.abc import Generator
65
from typing import Any, NamedTuple
76

87
import yaml
8+
from common_library.json_serialization import json_loads
99
from servicelib.docker_constants import (
1010
DEFAULT_USER_SERVICES_NETWORK_NAME,
1111
SUFFIX_EGRESS_PROXY_NAME,
@@ -53,7 +53,7 @@ def _get_forwarded_env_vars(container_key: str) -> list[str]:
5353
new_entry_key = key.replace("FORWARD_ENV_", "")
5454

5555
# parsing `VAR={"destination_containers": ["destination_container"], "env_var": "PAYLOAD"}`
56-
new_entry_payload = json.loads(os.environ[key])
56+
new_entry_payload = json_loads(os.environ[key])
5757
if container_key not in new_entry_payload["destination_containers"]:
5858
continue
5959

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/modules/nodeports.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import magic
1515
from aiofiles.os import remove
1616
from aiofiles.tempfile import TemporaryDirectory as AioTemporaryDirectory
17+
from common_library.json_serialization import json_loads
1718
from models_library.projects import ProjectIDStr
1819
from models_library.projects_nodes_io import NodeIDStr
1920
from models_library.services_types import ServicePortKey
@@ -208,7 +209,7 @@ async def _archive_dir_notified(
208209
else:
209210
data_file = outputs_path / _KEY_VALUE_FILE_NAME
210211
if data_file.exists():
211-
data = json.loads(data_file.read_text())
212+
data = json_loads(data_file.read_text())
212213
if port.key in data and data[port.key] is not None:
213214
ports_values[port.key] = (data[port.key], None)
214215
else:
@@ -390,7 +391,7 @@ async def _get_date_from_port_notified(
390391
if data:
391392
data_file = target_dir / _KEY_VALUE_FILE_NAME
392393
if data_file.exists():
393-
current_data = json.loads(data_file.read_text())
394+
current_data = json_loads(data_file.read_text())
394395
# merge data
395396
data = {**current_data, **data}
396397
data_file.write_text(json.dumps(data))

services/storage/src/simcore_service_storage/utils/simcore_s3_dsm_utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from aws_library.s3 import S3MetaData, SimcoreS3API
88
from aws_library.s3._constants import STREAM_READER_CHUNK_SIZE
99
from aws_library.s3._models import S3ObjectKey
10+
from common_library.json_serialization import json_loads
1011
from models_library.api_schemas_storage.storage_schemas import S3BucketName
1112
from models_library.projects import ProjectID, ProjectIDStr
1213
from models_library.projects_nodes_io import (
@@ -250,7 +251,7 @@ async def list_child_paths_from_s3(
250251
"""
251252
objects_cursor = None
252253
if cursor is not None:
253-
cursor_params = orjson.loads(cursor)
254+
cursor_params = json_loads(cursor)
254255
assert cursor_params["file_filter"] == f"{file_filter}" # nosec
255256
objects_cursor = cursor_params["objects_next_cursor"]
256257
list_s3_objects, objects_next_cursor = await s3_client.list_objects(

services/web/server/src/simcore_service_webserver/db_listener/_db_comp_tasks_listening_task.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"""
55

66
import asyncio
7-
import json
87
import logging
98
from collections.abc import AsyncIterator
109
from contextlib import suppress
@@ -14,6 +13,7 @@
1413
from aiohttp import web
1514
from aiopg.sa import Engine
1615
from aiopg.sa.connection import SAConnection
16+
from commontypes.json_serialization import json_loads
1717
from models_library.errors import ErrorDict
1818
from models_library.projects import ProjectID
1919
from models_library.projects_nodes_io import NodeID
@@ -152,7 +152,7 @@ async def _listen(app: web.Application, db_engine: Engine) -> NoReturn:
152152
continue
153153
notification = conn.connection.notifies.get_nowait()
154154
# get the data and the info on what changed
155-
payload = _CompTaskNotificationPayload(**json.loads(notification.payload))
155+
payload = _CompTaskNotificationPayload(**json_loads(notification.payload))
156156
_logger.debug("received update from database: %s", f"{payload=}")
157157
await _handle_db_notification(app, payload, conn)
158158

0 commit comments

Comments
 (0)