Skip to content

Commit b31b233

Browse files
committed
@bisgaard-itis review: tuples
1 parent 79c08cb commit b31b233

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

services/api-server/src/simcore_service_api_server/models/api_resources.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,31 @@ def compose_resource_name(*collection_or_resource_ids) -> RelativeResourceName:
5353
return TypeAdapter(RelativeResourceName).validate_python("/".join(quoted_parts))
5454

5555

56-
def split_resource_name(resource_name: RelativeResourceName) -> list[str]:
56+
def split_resource_name(resource_name: RelativeResourceName) -> tuple[str, ...]:
57+
"""
58+
Example:
59+
resource_name = "solvers/simcore%2Fservices%2Fcomp%2Fisolve/releases/1.3.4/jobs/f622946d-fd29-35b9-a193-abdd1095167c/outputs/output+22"
60+
returns ("solvers", "simcore/services/comp/isolve", "releases", "1.3.4", "jobs", "f622946d-fd29-35b9-a193-abdd1095167c", "outputs", "output 22")
61+
"""
5762
quoted_parts = resource_name.split("/")
58-
return [f"{urllib.parse.unquote_plus(p)}" for p in quoted_parts]
63+
return tuple(f"{urllib.parse.unquote_plus(p)}" for p in quoted_parts)
5964

6065

61-
def parse_collections_ids(resource_name: RelativeResourceName) -> list[str]:
66+
def parse_collections_ids(resource_name: RelativeResourceName) -> tuple[str, ...]:
6267
"""
6368
Example:
6469
resource_name = "solvers/simcore%2Fservices%2Fcomp%2Fisolve/releases/1.3.4/jobs/f622946d-fd29-35b9-a193-abdd1095167c/outputs/output+22"
65-
returns ["solvers", "releases", "jobs", "outputs"]
70+
returns ("solvers", "releases", "jobs", "outputs")
6671
"""
6772
parts = split_resource_name(resource_name)
6873
return parts[::2]
6974

7075

71-
def parse_resources_ids(resource_name: RelativeResourceName) -> list[str]:
76+
def parse_resources_ids(resource_name: RelativeResourceName) -> tuple[str, ...]:
7277
"""
7378
Example:
7479
resource_name = "solvers/simcore%2Fservices%2Fcomp%2Fisolve/releases/1.3.4/jobs/f622946d-fd29-35b9-a193-abdd1095167c/outputs/output+22"
75-
returns ["simcore/services/comp/isolve", "1.3.4", "f622946d-fd29-35b9-a193-abdd1095167c", "output 22"]
80+
returns ("simcore/services/comp/isolve", "1.3.4", "f622946d-fd29-35b9-a193-abdd1095167c", "output 22")
7681
"""
7782
parts = split_resource_name(resource_name)
7883
return parts[1::2]

services/api-server/tests/unit/test_models_api_resources.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
def test_parse_resource_id():
1919
resource_name = "solvers/simcore%2Fservices%2Fcomp%2Fisolve/releases/1.3.4/jobs/f622946d-fd29-35b9-a193-abdd1095167c/outputs/output+22"
20-
parts = [
20+
parts = (
2121
"solvers",
2222
"simcore/services/comp/isolve",
2323
"releases",
@@ -26,7 +26,7 @@ def test_parse_resource_id():
2626
"f622946d-fd29-35b9-a193-abdd1095167c",
2727
"outputs",
2828
"output 22",
29-
]
29+
)
3030

3131
# cannot use this because cannot convert into URL? except {:path} in starlette ???
3232
assert str(Path(*parts)) == urllib.parse.unquote_plus(resource_name)
@@ -44,10 +44,10 @@ def test_parse_resource_id():
4444

4545
collection_to_resource_id_map = split_resource_name_as_dict(resource_name)
4646
# Collection-ID -> Resource-ID
47-
assert list(collection_to_resource_id_map.keys()) == parse_collections_ids(
47+
assert tuple(collection_to_resource_id_map.keys()) == parse_collections_ids(
4848
resource_name
4949
)
50-
assert list(collection_to_resource_id_map.values()) == parse_resources_ids(
50+
assert tuple(collection_to_resource_id_map.values()) == parse_resources_ids(
5151
resource_name
5252
)
5353

0 commit comments

Comments
 (0)