Skip to content

Commit 42c0a68

Browse files
Upgrade clusters keeper service (Pydantic v2) (#6519)
1 parent bbe92a2 commit 42c0a68

File tree

18 files changed

+147
-116
lines changed

18 files changed

+147
-116
lines changed

services/clusters-keeper/requirements/_base.txt

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ aiormq==6.8.0
4343
# via aio-pika
4444
aiosignal==1.3.1
4545
# via aiohttp
46+
annotated-types==0.7.0
47+
# via pydantic
4648
anyio==4.3.0
4749
# via
4850
# fast-depends
@@ -54,13 +56,10 @@ arrow==1.3.0
5456
# -r requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/_base.in
5557
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
5658
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in
59+
# -r requirements/../../../packages/aws-library/requirements/_base.in
5760
# -r requirements/../../../packages/models-library/requirements/_base.in
5861
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
5962
# -r requirements/../../../packages/service-library/requirements/_base.in
60-
async-timeout==4.0.3
61-
# via
62-
# aiohttp
63-
# redis
6463
attrs==23.2.0
6564
# via
6665
# aiohttp
@@ -116,24 +115,10 @@ dnspython==2.6.1
116115
# via email-validator
117116
email-validator==2.1.1
118117
# via pydantic
119-
exceptiongroup==1.2.1
120-
# via anyio
121118
fast-depends==2.4.2
122119
# via faststream
123-
fastapi==0.99.1
120+
fastapi==0.115.0
124121
# via
125-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
126-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
127-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
128-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
129-
# -c requirements/../../../packages/aws-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
130-
# -c requirements/../../../packages/aws-library/requirements/../../../requirements/constraints.txt
131-
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
132-
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
133-
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
134-
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
135-
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
136-
# -c requirements/../../../requirements/constraints.txt
137122
# -r requirements/../../../packages/service-library/requirements/_fastapi.in
138123
# -r requirements/_base.in
139124
# prometheus-fastapi-instrumentator
@@ -269,7 +254,7 @@ psutil==5.9.8
269254
# via
270255
# -c requirements/../../../services/dask-sidecar/requirements/_dask-distributed.txt
271256
# distributed
272-
pydantic==1.10.15
257+
pydantic==2.9.2
273258
# via
274259
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
275260
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
@@ -280,7 +265,6 @@ pydantic==1.10.15
280265
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
281266
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
282267
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
283-
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
284268
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
285269
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
286270
# -c requirements/../../../requirements/constraints.txt
@@ -297,6 +281,26 @@ pydantic==1.10.15
297281
# -r requirements/../../../packages/settings-library/requirements/_base.in
298282
# fast-depends
299283
# fastapi
284+
# pydantic-extra-types
285+
# pydantic-settings
286+
pydantic-core==2.23.4
287+
# via pydantic
288+
pydantic-extra-types==2.9.0
289+
# via
290+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/_base.in
291+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
292+
# -r requirements/../../../packages/models-library/requirements/_base.in
293+
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
294+
pydantic-settings==2.5.2
295+
# via
296+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/_base.in
297+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
298+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
299+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/settings-library/requirements/_base.in
300+
# -r requirements/../../../packages/models-library/requirements/_base.in
301+
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
302+
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
303+
# -r requirements/../../../packages/settings-library/requirements/_base.in
300304
pygments==2.18.0
301305
# via rich
302306
pyinstrument==4.6.2
@@ -307,6 +311,8 @@ python-dateutil==2.9.0.post0
307311
# via
308312
# arrow
309313
# botocore
314+
python-dotenv==1.0.1
315+
# via pydantic-settings
310316
pyyaml==6.0.1
311317
# via
312318
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
@@ -375,7 +381,7 @@ sortedcontainers==2.4.0
375381
# via
376382
# -c requirements/../../../services/dask-sidecar/requirements/_dask-distributed.txt
377383
# distributed
378-
starlette==0.27.0
384+
starlette==0.38.6
379385
# via
380386
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
381387
# -c requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
@@ -437,16 +443,15 @@ typing-extensions==4.11.0
437443
# via
438444
# aiodebug
439445
# aiodocker
440-
# anyio
441446
# fastapi
442447
# faststream
443448
# pydantic
449+
# pydantic-core
444450
# typer
445451
# types-aiobotocore
446452
# types-aiobotocore-ec2
447453
# types-aiobotocore-s3
448454
# types-aiobotocore-ssm
449-
# uvicorn
450455
urllib3==2.2.1
451456
# via
452457
# -c requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt

services/clusters-keeper/requirements/_test.txt

Lines changed: 13 additions & 18 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
@@ -19,11 +23,6 @@ anyio==4.3.0
1923
# httpx
2024
asgi-lifespan==2.1.0
2125
# via -r requirements/_test.in
22-
async-timeout==4.0.3
23-
# via
24-
# -c requirements/_base.txt
25-
# aiohttp
26-
# redis
2726
attrs==23.2.0
2827
# via
2928
# -c requirements/_base.txt
@@ -82,11 +81,6 @@ docker==7.1.0
8281
# via
8382
# -r requirements/_test.in
8483
# moto
85-
exceptiongroup==1.2.1
86-
# via
87-
# -c requirements/_base.txt
88-
# anyio
89-
# pytest
9084
faker==27.0.0
9185
# via -r requirements/_test.in
9286
fakeredis==2.23.5
@@ -209,11 +203,15 @@ py-partiql-parser==0.5.5
209203
# via moto
210204
pycparser==2.22
211205
# via cffi
212-
pydantic==1.10.15
206+
pydantic==2.9.2
213207
# via
214208
# -c requirements/../../../requirements/constraints.txt
215209
# -c requirements/_base.txt
216210
# aws-sam-translator
211+
pydantic-core==2.23.4
212+
# via
213+
# -c requirements/_base.txt
214+
# pydantic
217215
pyparsing==3.1.2
218216
# via moto
219217
pytest==8.3.2
@@ -239,7 +237,9 @@ python-dateutil==2.9.0.post0
239237
# faker
240238
# moto
241239
python-dotenv==1.0.1
242-
# via -r requirements/_test.in
240+
# via
241+
# -c requirements/_base.txt
242+
# -r requirements/_test.in
243243
pyyaml==6.0.1
244244
# via
245245
# -c requirements/../../../requirements/constraints.txt
@@ -302,21 +302,16 @@ sortedcontainers==2.4.0
302302
# fakeredis
303303
sympy==1.13.2
304304
# via cfn-lint
305-
tomli==2.0.1
306-
# via
307-
# coverage
308-
# pytest
309305
types-pyyaml==6.0.12.20240808
310306
# via -r requirements/_test.in
311307
typing-extensions==4.11.0
312308
# via
313309
# -c requirements/_base.txt
314310
# aiodocker
315-
# anyio
316311
# aws-sam-translator
317312
# cfn-lint
318-
# fakeredis
319313
# pydantic
314+
# pydantic-core
320315
urllib3==2.2.1
321316
# via
322317
# -c requirements/../../../requirements/constraints.txt

services/clusters-keeper/requirements/_tools.txt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,22 +74,12 @@ setuptools==73.0.1
7474
# via
7575
# -c requirements/_test.txt
7676
# pip-tools
77-
tomli==2.0.1
78-
# via
79-
# -c requirements/_test.txt
80-
# black
81-
# build
82-
# mypy
83-
# pip-tools
84-
# pylint
8577
tomlkit==0.13.2
8678
# via pylint
8779
typing-extensions==4.11.0
8880
# via
8981
# -c requirements/_base.txt
9082
# -c requirements/_test.txt
91-
# astroid
92-
# black
9383
# mypy
9484
virtualenv==20.26.3
9585
# via pre-commit

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
@@ -25,7 +25,7 @@
2525

2626

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

3030
app = FastAPI(
3131
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)