Skip to content

Commit f4376b9

Browse files
YunchuWangCopilot
andcommitted
Move sandbox normalization helpers to private module
Keep shared on-demand sandbox normalization logic out of the public client and declaration modules by centralizing it in a private normalization module. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 28c04b0 commit f4376b9

4 files changed

Lines changed: 28 additions & 20 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
from typing import Iterable, Optional
5+
6+
7+
def _normalize_required(value: Optional[str], message: str) -> str:
8+
if not value or not value.strip():
9+
raise ValueError(message)
10+
return value.strip()
11+
12+
13+
def _resolve_activity_names(activity_names: str | Iterable[str]) -> list[str]:
14+
resolved: list[str] = []
15+
seen: set[str] = set()
16+
names = [activity_names] if isinstance(activity_names, str) else activity_names
17+
for name in names:
18+
normalized = name.strip()
19+
if normalized and normalized not in seen:
20+
resolved.append(normalized)
21+
seen.add(normalized)
22+
return resolved

durabletask-azuremanaged/durabletask/azuremanaged/preview/on_demand_sandbox/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import grpc
77
from azure.core.credentials import TokenCredential
88

9+
from durabletask.azuremanaged.preview.on_demand_sandbox._normalization import _normalize_required
910
from durabletask.azuremanaged.preview.on_demand_sandbox.declarations import (
1011
_build_profile_on_demand_sandbox_activity_declarations,
11-
_normalize_required,
1212
)
1313
from durabletask.azuremanaged.preview.on_demand_sandbox.transport import (
1414
OnDemandSandboxActivitiesGrpcTransport,

durabletask-azuremanaged/durabletask/azuremanaged/preview/on_demand_sandbox/declarations.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77

88
from durabletask import task
99
from durabletask.azuremanaged.internal import on_demand_sandbox_activities_service_pb2 as pb
10+
from durabletask.azuremanaged.preview.on_demand_sandbox._normalization import (
11+
_normalize_required,
12+
_resolve_activity_names,
13+
)
1014

1115

1216
DEFAULT_WORKER_PROFILE_ID = "default"
@@ -79,18 +83,6 @@ def decorator(cls: type) -> type:
7983
return decorator
8084

8185

82-
def _resolve_activity_names(activity_names: str | Iterable[str]) -> list[str]:
83-
resolved: list[str] = []
84-
seen: set[str] = set()
85-
names = [activity_names] if isinstance(activity_names, str) else activity_names
86-
for name in names:
87-
normalized = name.strip()
88-
if normalized and normalized not in seen:
89-
resolved.append(normalized)
90-
seen.add(normalized)
91-
return resolved
92-
93-
9486
def _build_on_demand_sandbox_activity_declaration(
9587
*,
9688
activity_names: str | Iterable[str],
@@ -230,12 +222,6 @@ def _normalize_optional_strings(values: Iterable[str]) -> list[str]:
230222
return [value.strip() for value in values if value and value.strip()]
231223

232224

233-
def _normalize_required(value: Optional[str], message: str) -> str:
234-
if not value or not value.strip():
235-
raise ValueError(message)
236-
return value.strip()
237-
238-
239225
def _normalize_cpu(value: str) -> str:
240226
normalized = _normalize_required(value, "On-demand sandbox activity declaration requires CPU resources.")
241227
milli_cpu = _try_parse_cpu_millicores(normalized)

durabletask-azuremanaged/durabletask/azuremanaged/preview/on_demand_sandbox/worker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99

1010
from azure.identity import ManagedIdentityCredential
1111

12+
from durabletask.azuremanaged.preview.on_demand_sandbox._normalization import _resolve_activity_names
1213
from durabletask.azuremanaged.preview.on_demand_sandbox.declarations import (
1314
DEFAULT_MAX_CONCURRENT_ACTIVITIES,
1415
DEFAULT_WORKER_PROFILE_ID,
1516
_build_on_demand_sandbox_worker_heartbeat,
1617
_build_on_demand_sandbox_worker_start,
17-
_resolve_activity_names,
1818
)
1919
from durabletask.azuremanaged.preview.on_demand_sandbox.transport import (
2020
OnDemandSandboxActivitiesGrpcTransport,

0 commit comments

Comments
 (0)