Skip to content

Commit cc14fd4

Browse files
authored
Merge branch 'pydantic_v2_migration' into upgrade-py2-migration
2 parents 9829b84 + 42c0a68 commit cc14fd4

File tree

38 files changed

+401
-242
lines changed

38 files changed

+401
-242
lines changed

packages/common-library/src/common_library/serialization.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from common_library.pydantic_fields_extension import get_type
55
from pydantic import BaseModel, SecretStr
6+
from pydantic_core import Url
67

78

89
def model_dump_with_secrets(
@@ -19,11 +20,15 @@ def model_dump_with_secrets(
1920
if isinstance(field_data, timedelta):
2021
data[field_name] = field_data.total_seconds()
2122

22-
if isinstance(field_data, SecretStr):
23+
elif isinstance(field_data, SecretStr):
2324
if show_secrets:
2425
data[field_name] = field_data.get_secret_value()
2526
else:
2627
data[field_name] = str(field_data)
28+
29+
elif isinstance(field_data, Url):
30+
data[field_name] = str(field_data)
31+
2732
elif isinstance(field_data, dict):
2833
field_type = get_type(settings_obj.model_fields[field_name])
2934
if issubclass(field_type, BaseModel):

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class InvitationContent(InvitationInputs):
5050
created: datetime = Field(..., description="Timestamp for creation")
5151

5252
def as_invitation_inputs(self) -> InvitationInputs:
53-
return self.copy(exclude={"created"})
53+
return self.model_validate(self.model_dump(exclude={"created"})) # copy excluding "created"
5454

5555
@classmethod
5656
def create_from_inputs(

services/clusters-keeper/requirements/_base.txt

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ aiormq==6.8.0
4646
# via aio-pika
4747
aiosignal==1.3.1
4848
# via aiohttp
49+
annotated-types==0.7.0
50+
# via pydantic
4951
anyio==4.3.0
5052
# via
5153
# fast-depends
@@ -129,20 +131,8 @@ email-validator==2.1.1
129131
# via pydantic
130132
fast-depends==2.4.2
131133
# via faststream
132-
fastapi==0.99.1
134+
fastapi==0.115.0
133135
# via
134-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
135-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
136-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
137-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
138-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
139-
# -c requirements/../../../packages/aws-library/requirements/../../../requirements/constraints.txt
140-
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
141-
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
142-
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
143-
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
144-
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
145-
# -c requirements/../../../requirements/constraints.txt
146136
# -r requirements/../../../packages/service-library/requirements/_fastapi.in
147137
# -r requirements/_base.in
148138
# prometheus-fastapi-instrumentator
@@ -351,7 +341,7 @@ psutil==6.0.0
351341
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in
352342
# -r requirements/../../../packages/service-library/requirements/_base.in
353343
# distributed
354-
pydantic==1.10.15
344+
pydantic==2.9.2
355345
# via
356346
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
357347
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
@@ -362,7 +352,6 @@ pydantic==1.10.15
362352
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
363353
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
364354
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
365-
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
366355
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
367356
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
368357
# -c requirements/../../../requirements/constraints.txt
@@ -379,6 +368,26 @@ pydantic==1.10.15
379368
# -r requirements/../../../packages/settings-library/requirements/_base.in
380369
# fast-depends
381370
# fastapi
371+
# pydantic-extra-types
372+
# pydantic-settings
373+
pydantic-core==2.23.4
374+
# via pydantic
375+
pydantic-extra-types==2.9.0
376+
# via
377+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/_base.in
378+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
379+
# -r requirements/../../../packages/models-library/requirements/_base.in
380+
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
381+
pydantic-settings==2.5.2
382+
# via
383+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/_base.in
384+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
385+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
386+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/settings-library/requirements/_base.in
387+
# -r requirements/../../../packages/models-library/requirements/_base.in
388+
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
389+
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
390+
# -r requirements/../../../packages/settings-library/requirements/_base.in
382391
pygments==2.18.0
383392
# via rich
384393
pyinstrument==4.6.2
@@ -389,6 +398,8 @@ python-dateutil==2.9.0.post0
389398
# via
390399
# arrow
391400
# botocore
401+
python-dotenv==1.0.1
402+
# via pydantic-settings
392403
pyyaml==6.0.1
393404
# via
394405
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
@@ -465,7 +476,7 @@ sortedcontainers==2.4.0
465476
# via
466477
# -c requirements/../../../services/dask-sidecar/requirements/_dask-distributed.txt
467478
# distributed
468-
starlette==0.27.0
479+
starlette==0.38.6
469480
# via
470481
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
471482
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
@@ -531,6 +542,7 @@ typing-extensions==4.11.0
531542
# faststream
532543
# opentelemetry-sdk
533544
# pydantic
545+
# pydantic-core
534546
# typer
535547
# types-aiobotocore
536548
# types-aiobotocore-ec2

services/clusters-keeper/requirements/_test.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ aiosignal==1.3.1
1111
# via
1212
# -c requirements/_base.txt
1313
# aiohttp
14+
annotated-types==0.7.0
15+
# via
16+
# -c requirements/_base.txt
17+
# pydantic
1418
antlr4-python3-runtime==4.13.2
1519
# via moto
1620
anyio==4.3.0
@@ -201,11 +205,15 @@ py-partiql-parser==0.5.6
201205
# via moto
202206
pycparser==2.22
203207
# via cffi
204-
pydantic==1.10.15
208+
pydantic==2.9.2
205209
# via
206210
# -c requirements/../../../requirements/constraints.txt
207211
# -c requirements/_base.txt
208212
# aws-sam-translator
213+
pydantic-core==2.23.4
214+
# via
215+
# -c requirements/_base.txt
216+
# pydantic
209217
pyparsing==3.1.4
210218
# via moto
211219
pytest==8.3.3
@@ -231,7 +239,9 @@ python-dateutil==2.9.0.post0
231239
# faker
232240
# moto
233241
python-dotenv==1.0.1
234-
# via -r requirements/_test.in
242+
# via
243+
# -c requirements/_base.txt
244+
# -r requirements/_test.in
235245
pyyaml==6.0.1
236246
# via
237247
# -c requirements/../../../requirements/constraints.txt
@@ -306,6 +316,7 @@ typing-extensions==4.11.0
306316
# aws-sam-translator
307317
# cfn-lint
308318
# pydantic
319+
# pydantic-core
309320
urllib3==2.2.1
310321
# via
311322
# -c requirements/../../../requirements/constraints.txt

services/clusters-keeper/src/simcore_service_clusters_keeper/_meta.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,21 @@
99

1010
from models_library.basic_types import VersionStr, VersionTag
1111
from packaging.version import Version
12-
from pydantic import parse_obj_as
12+
from pydantic import TypeAdapter
1313

1414
_current_distribution = distribution("simcore-service-clusters-keeper")
1515
__version__: str = version("simcore-service-clusters-keeper")
1616

1717

1818
APP_NAME: Final[str] = _current_distribution.metadata["Name"]
19-
API_VERSION: Final[VersionStr] = parse_obj_as(VersionStr, __version__)
19+
API_VERSION: Final[VersionStr] = TypeAdapter(VersionStr).validate_python(__version__)
2020
VERSION: Final[Version] = Version(__version__)
21-
API_VTAG: Final[VersionTag] = parse_obj_as(VersionTag, f"v{VERSION.major}")
22-
RPC_VTAG: Final[VersionTag] = parse_obj_as(VersionTag, f"v{VERSION.major}")
21+
API_VTAG: Final[VersionTag] = TypeAdapter(VersionTag).validate_python(
22+
f"v{VERSION.major}"
23+
)
24+
RPC_VTAG: Final[VersionTag] = TypeAdapter(VersionTag).validate_python(
25+
f"v{VERSION.major}"
26+
)
2327

2428

2529
def get_summary() -> str:

services/clusters-keeper/src/simcore_service_clusters_keeper/core/application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828

2929
def create_app(settings: ApplicationSettings) -> FastAPI:
30-
logger.info("app settings: %s", settings.json(indent=1))
30+
logger.info("app settings: %s", settings.model_dump_json(indent=1))
3131

3232
app = FastAPI(
3333
debug=settings.CLUSTERS_KEEPER_DEBUG,

services/clusters-keeper/src/simcore_service_clusters_keeper/core/errors.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from pydantic.errors import PydanticErrorMixin
1+
from common_library.errors_classes import OsparcErrorMixin
22

33

4-
class ClustersKeeperRuntimeError(PydanticErrorMixin, RuntimeError):
4+
class ClustersKeeperRuntimeError(OsparcErrorMixin, RuntimeError):
55
msg_template: str = "clusters-keeper unexpected error"
66

77

0 commit comments

Comments
 (0)