Skip to content

Commit f887e3e

Browse files
remove workbench
1 parent c4a00e6 commit f887e3e

File tree

2 files changed

+36
-26
lines changed

2 files changed

+36
-26
lines changed

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

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@
1111
from models_library.basic_types import ConstrainedStr
1212
from models_library.folders import FolderID
1313
from models_library.workspaces import WorkspaceID
14-
from pydantic import BaseModel, ConfigDict, Field, HttpUrl, field_validator
14+
from pydantic import (
15+
BaseModel,
16+
BeforeValidator,
17+
ConfigDict,
18+
Field,
19+
HttpUrl,
20+
field_validator,
21+
)
1522

1623
from .basic_regex import DATE_RE, UUID_RE_BASE
1724
from .emails import LowerCaseEmailStr
@@ -65,32 +72,28 @@ class BaseProjectModel(BaseModel):
6572
name: str = Field(
6673
..., description="project name", examples=["Temporal Distortion Simulator"]
6774
)
68-
description: str = Field(
69-
...,
70-
description="longer one-line description about the project",
71-
examples=["Dabbling in temporal transitions ..."],
72-
)
73-
thumbnail: HttpUrl | None = Field(
74-
...,
75-
description="url of the project thumbnail",
76-
examples=["https://placeimg.com/171/96/tech/grayscale/?0.jpg"],
77-
)
75+
description: Annotated[
76+
str,
77+
BeforeValidator(none_to_empty_str_pre_validator),
78+
Field(
79+
...,
80+
description="longer one-line description about the project",
81+
examples=["Dabbling in temporal transitions ..."],
82+
),
83+
]
84+
thumbnail: Annotated[
85+
HttpUrl | None,
86+
BeforeValidator(empty_str_to_none_pre_validator),
87+
Field(
88+
...,
89+
description="url of the project thumbnail",
90+
examples=["https://placeimg.com/171/96/tech/grayscale/?0.jpg"],
91+
),
92+
]
7893

7994
creation_date: datetime = Field(...)
8095
last_change_date: datetime = Field(...)
8196

82-
# Pipeline of nodes (SEE projects_nodes.py)
83-
workbench: Annotated[NodesDict, Field(..., description="Project's pipeline")]
84-
85-
# validators
86-
_empty_thumbnail_is_none = field_validator("thumbnail", mode="before")(
87-
empty_str_to_none_pre_validator
88-
)
89-
90-
_none_description_is_empty = field_validator("description", mode="before")(
91-
none_to_empty_str_pre_validator
92-
)
93-
9497

9598
class ProjectAtDB(BaseProjectModel):
9699
# Model used to READ from database

packages/pytest-simcore/src/pytest_simcore/db_entries_mocks.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,10 @@ async def creator(
8383
"prj_owner": user["id"],
8484
"access_rights": {"1": {"read": True, "write": True, "delete": True}},
8585
"thumbnail": "",
86-
"workbench": {},
8786
}
87+
workbench = {}
88+
if "workbench" in project_overrides:
89+
workbench.update(**project_overrides.pop("workbench"))
8890
project_config.update(**project_overrides)
8991
async with aiopg_engine.acquire() as con, con.begin():
9092
result = await con.execute(
@@ -96,14 +98,19 @@ async def creator(
9698
inserted_project = ProjectAtDB.model_validate(await result.first())
9799
project_nodes_repo = ProjectNodesRepo(project_uuid=project_uuid)
98100
# NOTE: currently no resources is passed until it becomes necessary
99-
default_node_config = {"required_resources": {}, "key": faker.pystr(), "version": faker.pystr(), "label": faker.pystr()}
101+
default_node_config = {
102+
"required_resources": {},
103+
"key": faker.pystr(),
104+
"version": faker.pystr(),
105+
"label": faker.pystr(),
106+
}
100107
if project_nodes_overrides:
101108
default_node_config.update(project_nodes_overrides)
102109
await project_nodes_repo.add(
103110
con,
104111
nodes=[
105112
ProjectNodeCreate(node_id=NodeID(node_id), **default_node_config)
106-
for node_id in inserted_project.workbench
113+
for node_id in workbench
107114
],
108115
)
109116
print(f"--> created {inserted_project=}")

0 commit comments

Comments
 (0)