Skip to content

Commit 9829b84

Browse files
author
Andrei Neagu
committed
simcore sdk
1 parent a3175d5 commit 9829b84

File tree

8 files changed

+34
-23
lines changed

8 files changed

+34
-23
lines changed

packages/models-library/src/models_library/clusters.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ class JupyterHubTokenAuthentication(BaseAuthentication):
9595
class NoAuthentication(BaseAuthentication):
9696
type: Literal["none"] = "none"
9797

98-
class Config(BaseAuthentication.Config):
99-
schema_extra: ClassVar[dict[str, Any]] = {"examples": [{"type": "none"}]}
98+
model_config = ConfigDict(json_schema_extra={"examples": [{"type": "none"}]})
10099

101100

102101
class TLSAuthentication(BaseAuthentication):

packages/pytest-simcore/src/pytest_simcore/simcore_storage_service.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,17 @@ async def storage_service(
4545
) -> URL:
4646
await wait_till_storage_responsive(storage_endpoint)
4747

48-
def correct_ip(url: AnyUrl):
48+
def correct_ip(url: str):
49+
any_url = AnyUrl(url)
4950
assert storage_endpoint.host is not None
5051
assert storage_endpoint.port is not None
5152

5253
return AnyUrl.build(
53-
scheme=url.scheme,
54+
scheme=any_url.scheme,
5455
host=storage_endpoint.host,
55-
port=f"{storage_endpoint.port}",
56-
path=url.path,
57-
query=url.query,
56+
port=storage_endpoint.port,
57+
path=any_url.path,
58+
query=any_url.query,
5859
)
5960

6061
# NOTE: Mock to ensure container IP agrees with host IP when testing

packages/service-library/src/servicelib/minio_utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ class ServiceRetryPolicyUponInitialization:
1414
def __init__(self, logger: logging.Logger | None = None):
1515
logger = logger or log
1616

17-
self.kwargs = dict(
18-
wait=wait_fixed(self.WAIT_SECS),
19-
stop=stop_after_attempt(self.ATTEMPTS_COUNT),
20-
before_sleep=before_sleep_log(logger, logging.INFO),
21-
reraise=True,
22-
)
17+
self.kwargs = {
18+
"wait": wait_fixed(self.WAIT_SECS),
19+
"stop": stop_after_attempt(self.ATTEMPTS_COUNT),
20+
"before_sleep": before_sleep_log(logger, logging.INFO),
21+
"reraise": True,
22+
}

packages/service-library/src/servicelib/progress_bar.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from inspect import isawaitable
55
from typing import Final, Optional, Protocol, runtime_checkable
66

7+
from common_library.pydantic_basic_types import IDStr
78
from models_library.progress_bar import (
89
ProgressReport,
910
ProgressStructuredMessage,

packages/simcore-sdk/src/simcore_sdk/node_ports_v2/nodeports_v2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ async def _set_with_notifications(
238238
# groups all ValidationErrors pre-pending 'port_key' to loc and raises ValidationError
239239
if error_details := [
240240
_get_error_details(r, port_key)
241-
for port_key, r in zip(port_values.keys(), results)
241+
for port_key, r in zip(port_values.keys(), results, strict=True)
242242
if r is not None
243243
]:
244244
raise ValidationError.from_exception_data(

packages/simcore-sdk/tests/integration/test_node_data_data_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from models_library.projects import ProjectID
1818
from models_library.projects_nodes_io import NodeID, SimcoreS3FileID
1919
from models_library.users import UserID
20-
from pydantic import parse_obj_as
20+
from pydantic import TypeAdapter
2121
from servicelib.progress_bar import ProgressBarData
2222
from settings_library.aws_s3_cli import AwsS3CliSettings
2323
from settings_library.r_clone import RCloneSettings
@@ -263,8 +263,8 @@ async def test_delete_legacy_archive(
263263
user_id=user_id,
264264
store_id=SIMCORE_LOCATION,
265265
store_name=None,
266-
s3_object=parse_obj_as(
267-
SimcoreS3FileID, f"{project_id}/{node_uuid}/{legacy_archive_name.name}"
266+
s3_object=TypeAdapter(SimcoreS3FileID).validate_python(
267+
f"{project_id}/{node_uuid}/{legacy_archive_name.name}"
268268
),
269269
path_to_upload=legacy_archive_name,
270270
io_log_redirect_cb=None,

packages/simcore-sdk/tests/unit/test_node_ports_common_r_clone_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from unittest.mock import AsyncMock
33

44
import pytest
5-
from pydantic import parse_raw_as
5+
from pydantic import TypeAdapter
66
from simcore_sdk.node_ports_common.r_clone_utils import (
77
SyncProgressLogParser,
88
_RCloneSyncMessageBase,
@@ -68,7 +68,7 @@
6868
],
6969
)
7070
async def test_rclone_stbc_message_parsing_regression(log_message: str, expected: type):
71-
parsed_log = parse_raw_as(_RCloneSyncMessages, log_message) # type: ignore[arg-type]
71+
parsed_log = TypeAdapter(_RCloneSyncMessages).validate_json(log_message)
7272
assert isinstance(parsed_log, expected)
7373

7474
progress_log_parser = SyncProgressLogParser(AsyncMock())

packages/simcore-sdk/tests/unit/test_node_ports_v2_nodeports_v2.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
from unittest.mock import AsyncMock
1010

1111
import pytest
12+
from common_library.pydantic_basic_types import IDStr
1213
from faker import Faker
13-
from pydantic import ValidationError
14+
from pydantic import BaseModel, ValidationError
1415
from pytest_mock import MockFixture
1516
from servicelib.progress_bar import ProgressBarData
1617
from simcore_sdk.node_ports_common.filemanager import UploadedFile
@@ -231,9 +232,13 @@ async def test_node_ports_v2_packages(
231232
def mock_port_set(mocker: MockFixture) -> None:
232233
async def _always_raise_error(*args, **kwargs):
233234
async def _i_raise_errors():
234-
raise ValidationError("invalid")
235+
class User(BaseModel):
236+
name: str
237+
age: int
235238

236-
return asyncio.create_task(_i_raise_errors())
239+
User(**kwargs)
240+
241+
return await asyncio.create_task(_i_raise_errors())
237242

238243
mocker.patch(
239244
"simcore_sdk.node_ports_v2.port.Port._set", side_effect=_always_raise_error
@@ -269,7 +274,11 @@ async def _mock_callback(*args, **kwargs):
269274
node_port_creator_cb=_mock_callback,
270275
auto_update=False,
271276
)
272-
async with ProgressBarData(num_steps=1, description=faker.pystr()) as progress_bar:
277+
278+
callback = AsyncMock()
279+
async with ProgressBarData(
280+
num_steps=1, description=IDStr(faker.pystr())
281+
) as progress_bar:
273282
with pytest.raises(ValidationError):
274283
await node_ports.set_multiple(
275284
{
@@ -278,4 +287,5 @@ async def _mock_callback(*args, **kwargs):
278287
+ list(original_outputs.values())
279288
},
280289
progress_bar=progress_bar,
290+
outputs_callbacks=callback,
281291
)

0 commit comments

Comments
 (0)