Skip to content

Commit 4892c0d

Browse files
✨ introducing inputs_required to workbench (#5838)
1 parent 2f82eb1 commit 4892c0d

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

packages/models-library/src/models_library/api_schemas_webserver/projects_nodes.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any, ClassVar, Literal, TypeAlias
22

3-
from models_library.projects_nodes import InputsDict
3+
from models_library.projects_nodes import InputID, InputsDict
44
from pydantic import Field
55

66
from ..api_schemas_directorv2.dynamic_services import RetrieveDataOut
@@ -27,11 +27,12 @@ class NodeCreate(InputSchemaWithoutCamelCase):
2727

2828
class NodePatch(InputSchemaWithoutCamelCase):
2929
service_version: ServiceVersion = FieldNotRequired(alias="version")
30-
label: str = Field(None)
31-
inputs: InputsDict = Field(None)
30+
label: str = FieldNotRequired()
31+
inputs: InputsDict = FieldNotRequired()
32+
inputs_required: list[InputID] = FieldNotRequired(alias="inputsRequired")
3233
input_nodes: list[NodeID] = FieldNotRequired(alias="inputNodes")
33-
progress: float | None = Field(
34-
None, ge=0, le=100
34+
progress: float | None = FieldNotRequired(
35+
ge=0, le=100
3536
) # NOTE: it is used by frontend for File Picker progress
3637
boot_options: BootOptions = FieldNotRequired(alias="bootOptions")
3738

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,11 @@ class Node(BaseModel):
156156
inputs: InputsDict | None = Field(
157157
default_factory=dict, description="values of input properties"
158158
)
159+
inputs_required: list[InputID] = Field(
160+
default_factory=list,
161+
description="Defines inputs that are required in order to run the service",
162+
alias="inputsRequired",
163+
)
159164
inputs_units: dict[InputID, UnitStr] | None = Field(
160165
default=None,
161166
description="Overrides default unit (if any) defined in the service for each port",

services/web/server/tests/unit/with_dbs/02/test_projects_nodes_handlers__patch.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,18 @@ async def test_patch_project_node(
118118
data=json.dumps(_patch_inputs),
119119
)
120120
await assert_status(resp, expected)
121+
# inputs required
122+
_patch_inputs_required = {
123+
"inputsRequired": [
124+
"input_1",
125+
"input_3",
126+
]
127+
}
128+
resp = await client.patch(
129+
f"{base_url}",
130+
data=json.dumps(_patch_inputs_required),
131+
)
132+
await assert_status(resp, expected)
121133
# input nodes
122134
_patch_input_nodes = {
123135
"inputNodes": [
@@ -148,5 +160,6 @@ async def test_patch_project_node(
148160
assert _tested_node["progress"] == None
149161
assert _tested_node["version"] == _patch_version["version"]
150162
assert _tested_node["inputs"] == _patch_inputs["inputs"]
163+
assert _tested_node["inputsRequired"] == _patch_inputs_required["inputsRequired"]
151164
assert _tested_node["inputNodes"] == _patch_input_nodes["inputNodes"]
152165
assert _tested_node["bootOptions"] == _patch_boot_options["bootOptions"]

0 commit comments

Comments
 (0)