Skip to content

Commit d73165d

Browse files
authored
⬆️ Maintenance: Datcore-adapter grand update (#5600)
1 parent 795db0f commit d73165d

File tree

7 files changed

+173
-338
lines changed

7 files changed

+173
-338
lines changed

services/datcore-adapter/requirements/_base.txt

Lines changed: 82 additions & 231 deletions
Large diffs are not rendered by default.
Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,46 @@
1-
anyio==3.6.2
2-
# via httpcore
1+
anyio==4.3.0
2+
# via httpx
33
asgi-lifespan==2.1.0
4-
certifi==2023.7.22
4+
certifi==2024.2.2
55
# via
66
# httpcore
77
# httpx
88
# requests
9-
charset-normalizer==3.1.0
9+
charset-normalizer==3.3.2
1010
# via requests
11-
coverage==7.3.2
11+
coverage==7.4.4
1212
# via pytest-cov
13-
exceptiongroup==1.1.3
14-
# via pytest
13+
exceptiongroup==1.2.0
14+
# via
15+
# anyio
16+
# pytest
1517
execnet==2.0.2
1618
# via pytest-xdist
17-
faker==19.13.0
18-
h11==0.12.0
19+
faker==24.4.0
20+
h11==0.14.0
1921
# via httpcore
20-
httpcore==0.15.0
22+
httpcore==1.0.5
2123
# via httpx
22-
httpx==0.24.0
24+
httpx==0.27.0
2325
# via respx
2426
icdiff==2.0.7
2527
# via pytest-icdiff
26-
idna==3.4
28+
idna==3.6
2729
# via
2830
# anyio
2931
# httpx
3032
# requests
3133
iniconfig==2.0.0
3234
# via pytest
33-
packaging==23.2
35+
packaging==24.0
3436
# via
3537
# pytest
3638
# pytest-sugar
37-
pluggy==1.3.0
39+
pluggy==1.4.0
3840
# via pytest
3941
pprintpp==0.4.0
4042
# via pytest-icdiff
41-
pytest==7.4.3
43+
pytest==8.1.1
4244
# via
4345
# pytest-asyncio
4446
# pytest-cov
@@ -48,30 +50,31 @@ pytest==7.4.3
4850
# pytest-sugar
4951
# pytest-xdist
5052
pytest-asyncio==0.21.1
51-
pytest-cov==4.1.0
52-
pytest-icdiff==0.8
53+
pytest-cov==5.0.0
54+
pytest-icdiff==0.9
5355
pytest-instafail==0.5.0
54-
pytest-mock==3.12.0
55-
pytest-runner==6.0.0
56-
pytest-sugar==0.9.7
57-
pytest-xdist==3.3.1
58-
python-dateutil==2.8.2
56+
pytest-mock==3.14.0
57+
pytest-runner==6.0.1
58+
pytest-sugar==1.0.0
59+
pytest-xdist==3.5.0
60+
python-dateutil==2.9.0.post0
5961
# via faker
6062
requests==2.31.0
61-
respx==0.20.2
63+
respx==0.21.1
6264
six==1.16.0
6365
# via python-dateutil
64-
sniffio==1.3.0
66+
sniffio==1.3.1
6567
# via
6668
# anyio
6769
# asgi-lifespan
68-
# httpcore
6970
# httpx
70-
termcolor==2.3.0
71+
termcolor==2.4.0
7172
# via pytest-sugar
7273
tomli==2.0.1
7374
# via
7475
# coverage
7576
# pytest
76-
urllib3==1.26.12
77+
typing-extensions==4.10.0
78+
# via anyio
79+
urllib3==2.2.1
7780
# via requests
Lines changed: 21 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,56 @@
1-
aiohttp==3.8.5
2-
# via black
3-
aiosignal==1.3.1
4-
# via aiohttp
5-
astroid==3.0.2
1+
astroid==3.1.0
62
# via pylint
7-
async-timeout==4.0.2
8-
# via aiohttp
9-
attrs==21.4.0
10-
# via aiohttp
11-
black==23.12.0
12-
build==1.0.3
3+
black==24.3.0
4+
build==1.2.1
135
# via pip-tools
146
bump2version==1.0.1
157
cfgv==3.4.0
168
# via pre-commit
17-
charset-normalizer==3.1.0
18-
# via aiohttp
19-
click==8.1.3
9+
click==8.1.7
2010
# via
2111
# black
2212
# pip-tools
23-
dill==0.3.7
13+
dill==0.3.8
2414
# via pylint
2515
distlib==0.3.8
2616
# via virtualenv
27-
filelock==3.13.1
17+
filelock==3.13.3
2818
# via virtualenv
29-
frozenlist==1.3.3
30-
# via
31-
# aiohttp
32-
# aiosignal
33-
identify==2.5.33
19+
identify==2.5.35
3420
# via pre-commit
35-
idna==3.4
36-
# via yarl
3721
isort==5.13.2
3822
# via pylint
3923
mccabe==0.7.0
4024
# via pylint
41-
multidict==6.0.3
42-
# via
43-
# aiohttp
44-
# yarl
4525
mypy-extensions==1.0.0
4626
# via black
4727
nodeenv==1.8.0
4828
# via pre-commit
49-
packaging==23.2
29+
packaging==24.0
5030
# via
5131
# black
5232
# build
5333
pathspec==0.12.1
5434
# via black
5535
pip==24.0
5636
# via pip-tools
57-
pip-tools==7.3.0
58-
platformdirs==4.1.0
37+
pip-tools==7.4.1
38+
platformdirs==4.2.0
5939
# via
6040
# black
6141
# pylint
6242
# virtualenv
63-
pre-commit==3.6.0
64-
pylint==3.0.3
43+
pre-commit==3.7.0
44+
pylint==3.1.0
6545
pyproject-hooks==1.0.0
66-
# via build
46+
# via
47+
# build
48+
# pip-tools
6749
pyyaml==6.0.1
6850
# via
6951
# pre-commit
7052
# watchdog
71-
ruff==0.1.8
53+
ruff==0.3.5
7254
setuptools==69.2.0
7355
# via
7456
# nodeenv
@@ -80,16 +62,14 @@ tomli==2.0.1
8062
# pip-tools
8163
# pylint
8264
# pyproject-hooks
83-
tomlkit==0.12.3
65+
tomlkit==0.12.4
8466
# via pylint
85-
typing-extensions==4.4.0
67+
typing-extensions==4.10.0
8668
# via
8769
# astroid
8870
# black
89-
virtualenv==20.25.0
71+
virtualenv==20.25.1
9072
# via pre-commit
91-
watchdog==3.0.0
92-
wheel==0.42.0
73+
watchdog==4.0.0
74+
wheel==0.43.0
9375
# via pip-tools
94-
yarl==1.9.2
95-
# via aiohttp

services/datcore-adapter/src/simcore_service_datcore_adapter/api/routes/datasets.py

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import logging
2-
from typing import Final
2+
from typing import Annotated, Final
33

44
from aiocache import cached
55
from fastapi import APIRouter, Depends, Header, Request
@@ -35,10 +35,10 @@
3535
)
3636
async def list_datasets(
3737
request: Request,
38-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
39-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
40-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
41-
params: Params = Depends(),
38+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
39+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
40+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
41+
params: Annotated[Params, Depends()],
4242
) -> Page[DatasetsOut]:
4343
assert request # nosec
4444
raw_params: RawParams = resolve_params(params).to_raw_params()
@@ -48,7 +48,7 @@ async def list_datasets(
4848
limit=raw_params.limit,
4949
offset=raw_params.offset,
5050
)
51-
return create_page(items=datasets, total=total, params=params)
51+
return create_page(datasets, total=total, params=params)
5252

5353

5454
@router.get(
@@ -65,10 +65,10 @@ async def list_datasets(
6565
async def list_dataset_top_level_files(
6666
request: Request,
6767
dataset_id: str,
68-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
69-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
70-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
71-
params: Params = Depends(),
68+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
69+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
70+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
71+
params: Annotated[Params, Depends()],
7272
) -> Page[FileMetaDataOut]:
7373
assert request # nosec
7474
raw_params: RawParams = resolve_params(params).to_raw_params()
@@ -80,7 +80,7 @@ async def list_dataset_top_level_files(
8080
limit=raw_params.limit,
8181
offset=raw_params.offset,
8282
)
83-
return create_page(items=file_metas, total=total, params=params)
83+
return create_page(file_metas, total=total, params=params)
8484

8585

8686
@router.get(
@@ -98,10 +98,10 @@ async def list_dataset_collection_files(
9898
request: Request,
9999
dataset_id: str,
100100
collection_id: str,
101-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
102-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
103-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
104-
params: Params = Depends(),
101+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
102+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
103+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
104+
params: Annotated[Params, Depends()],
105105
) -> Page[FileMetaDataOut]:
106106
assert request # nosec
107107
raw_params: RawParams = resolve_params(params).to_raw_params()
@@ -114,7 +114,7 @@ async def list_dataset_collection_files(
114114
dataset_id=dataset_id,
115115
collection_id=collection_id,
116116
)
117-
return create_page(items=file_metas, total=total, params=params)
117+
return create_page(file_metas, total=total, params=params)
118118

119119

120120
@router.get(
@@ -131,14 +131,13 @@ async def list_dataset_collection_files(
131131
async def list_dataset_files_legacy(
132132
request: Request,
133133
dataset_id: str,
134-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
135-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
136-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
134+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
135+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
136+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
137137
) -> list[FileMetaDataOut]:
138138
assert request # nosec
139-
file_metas = await pennsieve_client.list_all_dataset_files(
139+
return await pennsieve_client.list_all_dataset_files(
140140
api_key=x_datcore_api_key,
141141
api_secret=x_datcore_api_secret,
142142
dataset_id=dataset_id,
143143
)
144-
return file_metas

services/datcore-adapter/src/simcore_service_datcore_adapter/api/routes/files.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import logging
2-
from typing import Any
2+
from typing import Annotated, Any
33

44
from fastapi import APIRouter, Depends, Header, Request
55
from pydantic import AnyUrl, parse_obj_as
@@ -24,9 +24,9 @@
2424
async def download_file(
2525
request: Request,
2626
file_id: str,
27-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
28-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
29-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
27+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
28+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
29+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
3030
) -> FileDownloadOut:
3131
assert request # nosec
3232
presigned_download_link = await pennsieve_client.get_presigned_download_link(
@@ -44,9 +44,9 @@ async def download_file(
4444
async def delete_file(
4545
request: Request,
4646
file_id: str,
47-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
48-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
49-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
47+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
48+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
49+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
5050
):
5151
assert request # nosec
5252
await pennsieve_client.delete_object(
@@ -66,9 +66,9 @@ async def delete_file(
6666
async def get_package(
6767
request: Request,
6868
package_id: str,
69-
x_datcore_api_key: str = Header(..., description="Datcore API Key"),
70-
x_datcore_api_secret: str = Header(..., description="Datcore API Secret"),
71-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
69+
x_datcore_api_key: Annotated[str, Header(..., description="Datcore API Key")],
70+
x_datcore_api_secret: Annotated[str, Header(..., description="Datcore API Secret")],
71+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
7272
) -> list[dict[str, Any]]:
7373
assert request # nosec
7474
return await pennsieve_client.get_package_files(

services/datcore-adapter/src/simcore_service_datcore_adapter/api/routes/health.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
2-
from datetime import datetime
3-
from typing import Callable
2+
from collections.abc import Callable
3+
from datetime import datetime, timezone
4+
from typing import Annotated
45

56
from fastapi import APIRouter, Depends
67
from models_library.app_diagnostics import AppStatusCheck
@@ -23,13 +24,13 @@
2324
status_code=status.HTTP_200_OK,
2425
)
2526
async def get_service_alive():
26-
return f"{__name__}@{datetime.utcnow().isoformat()}"
27+
return f"{__name__}@{datetime.now(timezone.utc).isoformat()}"
2728

2829

2930
@router.get("/ready", status_code=status.HTTP_200_OK, response_model=AppStatusCheck)
3031
async def get_service_ready(
31-
pennsieve_client: PennsieveApiClient = Depends(get_pennsieve_api_client),
32-
url_for: Callable = Depends(get_reverse_url_mapper),
32+
pennsieve_client: Annotated[PennsieveApiClient, Depends(get_pennsieve_api_client)],
33+
url_for: Annotated[Callable, Depends(get_reverse_url_mapper)],
3334
):
3435
pennsieve_health_ok = await pennsieve_client.is_responsive()
3536
return AppStatusCheck(

0 commit comments

Comments
 (0)