From aff3e457ede0f9ed5142f720b588e61d519cba93 Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:25:51 +0200 Subject: [PATCH 1/8] module webserver schemas --- .../src/models_library/api_schemas_webserver/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/models-library/src/models_library/api_schemas_webserver/__init__.py diff --git a/packages/models-library/src/models_library/api_schemas_webserver/__init__.py b/packages/models-library/src/models_library/api_schemas_webserver/__init__.py new file mode 100644 index 00000000000..e69de29bb2d From a1889193af4a614f71ebf7712a78be09e6fdb8fa Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:41:35 +0200 Subject: [PATCH 2/8] moves model classes of api schemas to models_library --- .../webserver/scripts/openapi_projects_crud.py | 18 +++++++++--------- .../api_schemas_webserver/_base.py | 3 ++- .../api_schemas_webserver/projects.py | 18 +++++++++--------- .../projects_permalink.py | 6 ++++++ .../projects/_crud_create_utils.py | 2 +- .../projects/_crud_read_utils.py | 4 ++-- .../projects/_handlers_crud.py | 14 +++++++------- .../projects/_permalink_api.py | 8 +------- .../isolated/test_projects__rest_schemas.py | 14 +++++++------- 9 files changed, 44 insertions(+), 43 deletions(-) rename services/web/server/src/simcore_service_webserver/rest/schemas_base.py => packages/models-library/src/models_library/api_schemas_webserver/_base.py (96%) rename services/web/server/src/simcore_service_webserver/projects/_rest_schemas.py => packages/models-library/src/models_library/api_schemas_webserver/projects.py (85%) create mode 100644 packages/models-library/src/models_library/api_schemas_webserver/projects_permalink.py diff --git a/api/specs/webserver/scripts/openapi_projects_crud.py b/api/specs/webserver/scripts/openapi_projects_crud.py index 6d009beb40b..a4071a528aa 100644 --- a/api/specs/webserver/scripts/openapi_projects_crud.py +++ b/api/specs/webserver/scripts/openapi_projects_crud.py @@ -17,6 +17,15 @@ create_openapi_specs, ) from fastapi import FastAPI, Query, status +from models_library.api_schemas_webserver.projects import ( + ProjectCopyOverride, + ProjectCreateNew, + ProjectGet, + ProjectListItem, + ProjectReplace, + ProjectUpdate, + TaskGet, +) from models_library.generics import Envelope from models_library.projects import ProjectID from models_library.rest_pagination import DEFAULT_NUMBER_OF_ITEMS_PER_PAGE, Page @@ -29,15 +38,6 @@ _ProjectCreateParams, _ProjectListParams, ) -from simcore_service_webserver.projects._rest_schemas import ( - ProjectCopyOverride, - ProjectCreateNew, - ProjectGet, - ProjectListItem, - ProjectReplace, - ProjectUpdate, - TaskGet, -) app = FastAPI(redoc_url=None) diff --git a/services/web/server/src/simcore_service_webserver/rest/schemas_base.py b/packages/models-library/src/models_library/api_schemas_webserver/_base.py similarity index 96% rename from services/web/server/src/simcore_service_webserver/rest/schemas_base.py rename to packages/models-library/src/models_library/api_schemas_webserver/_base.py index f33b983ec86..1f0bfd64516 100644 --- a/services/web/server/src/simcore_service_webserver/rest/schemas_base.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/_base.py @@ -5,9 +5,10 @@ from typing import Any -from models_library.utils.change_case import snake_to_camel from pydantic import BaseModel, Extra +from ..utils.change_case import snake_to_camel + class InputSchema(BaseModel): class Config: # type: ignore[pydantic-alias] diff --git a/services/web/server/src/simcore_service_webserver/projects/_rest_schemas.py b/packages/models-library/src/models_library/api_schemas_webserver/projects.py similarity index 85% rename from services/web/server/src/simcore_service_webserver/projects/_rest_schemas.py rename to packages/models-library/src/models_library/api_schemas_webserver/projects.py index eb1378dd25d..acea17923d5 100644 --- a/services/web/server/src/simcore_service_webserver/projects/_rest_schemas.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/projects.py @@ -7,18 +7,18 @@ from typing import Any, Literal, TypeAlias -from models_library.emails import LowerCaseEmailStr -from models_library.projects import ClassifierID, DateTimeStr, NodesDict, ProjectID -from models_library.projects_access import AccessRights, GroupIDStr -from models_library.projects_nodes import HttpUrlWithCustomMinLength -from models_library.projects_state import ProjectState -from models_library.projects_ui import StudyUI -from models_library.utils.common_validators import empty_str_to_none, none_to_empty_str from pydantic import BaseModel, Extra, Field, validator from servicelib.aiohttp.long_running_tasks.server import TaskGet -from ..rest.schemas_base import InputSchema, OutputSchema -from ._permalink_api import ProjectPermalink +from ..emails import LowerCaseEmailStr +from ..projects import ClassifierID, DateTimeStr, NodesDict, ProjectID +from ..projects_access import AccessRights, GroupIDStr +from ..projects_nodes import HttpUrlWithCustomMinLength +from ..projects_state import ProjectState +from ..projects_ui import StudyUI +from ..utils.common_validators import empty_str_to_none, none_to_empty_str +from ._base import InputSchema, OutputSchema +from .projects_permalink import ProjectPermalink NOT_REQUIRED = Field(default=None) diff --git a/packages/models-library/src/models_library/api_schemas_webserver/projects_permalink.py b/packages/models-library/src/models_library/api_schemas_webserver/projects_permalink.py new file mode 100644 index 00000000000..f409d9d70df --- /dev/null +++ b/packages/models-library/src/models_library/api_schemas_webserver/projects_permalink.py @@ -0,0 +1,6 @@ +from pydantic import BaseModel, HttpUrl + + +class ProjectPermalink(BaseModel): + url: HttpUrl + is_public: bool diff --git a/services/web/server/src/simcore_service_webserver/projects/_crud_create_utils.py b/services/web/server/src/simcore_service_webserver/projects/_crud_create_utils.py index d05ca1ed28e..ce6caeeb3f4 100644 --- a/services/web/server/src/simcore_service_webserver/projects/_crud_create_utils.py +++ b/services/web/server/src/simcore_service_webserver/projects/_crud_create_utils.py @@ -6,6 +6,7 @@ from aiohttp import web from jsonschema import ValidationError as JsonSchemaValidationError +from models_library.api_schemas_webserver.projects import ProjectGet from models_library.projects import ProjectID from models_library.projects_nodes_io import NodeID, NodeIDStr from models_library.projects_state import ProjectStatus @@ -30,7 +31,6 @@ from ..users.api import get_user_name from . import projects_api from ._permalink_api import update_or_pop_permalink_in_project -from ._rest_schemas import ProjectGet from .db import ProjectDBAPI from .exceptions import ProjectInvalidRightsError, ProjectNotFoundError from .models import ProjectDict diff --git a/services/web/server/src/simcore_service_webserver/projects/_crud_read_utils.py b/services/web/server/src/simcore_service_webserver/projects/_crud_read_utils.py index d53faf00fe1..0467bf8c955 100644 --- a/services/web/server/src/simcore_service_webserver/projects/_crud_read_utils.py +++ b/services/web/server/src/simcore_service_webserver/projects/_crud_read_utils.py @@ -7,6 +7,8 @@ from enum import Enum from aiohttp import web +from models_library.api_schemas_webserver._base import OutputSchema +from models_library.api_schemas_webserver.projects import ProjectListItem from models_library.projects import ProjectID from models_library.users import UserID from pydantic import BaseModel, Extra, Field, NonNegativeInt, PositiveInt @@ -14,10 +16,8 @@ from simcore_postgres_database.webserver_models import ProjectType as ProjectTypeDB from ..catalog.client import get_services_for_user_in_product -from ..rest.schemas_base import OutputSchema from . import projects_api from ._permalink_api import update_or_pop_permalink_in_project -from ._rest_schemas import ProjectListItem from .db import ProjectDBAPI from .models import ProjectDict, ProjectTypeAPI diff --git a/services/web/server/src/simcore_service_webserver/projects/_handlers_crud.py b/services/web/server/src/simcore_service_webserver/projects/_handlers_crud.py index 56c66826723..52c1a987c56 100644 --- a/services/web/server/src/simcore_service_webserver/projects/_handlers_crud.py +++ b/services/web/server/src/simcore_service_webserver/projects/_handlers_crud.py @@ -8,6 +8,13 @@ from aiohttp import web from jsonschema import ValidationError as JsonSchemaValidationError +from models_library.api_schemas_webserver.projects import ( + EmptyModel, + ProjectCopyOverride, + ProjectCreateNew, + ProjectGet, + ProjectUpdate, +) from models_library.projects import Project, ProjectID from models_library.projects_state import ProjectLocked from models_library.rest_pagination import DEFAULT_NUMBER_OF_ITEMS_PER_PAGE, Page @@ -42,13 +49,6 @@ from . import _crud_create_utils, _crud_read_utils, projects_api from ._crud_read_utils import OrderDirection, ProjectListFilters, ProjectOrderBy from ._permalink_api import update_or_pop_permalink_in_project -from ._rest_schemas import ( - EmptyModel, - ProjectCopyOverride, - ProjectCreateNew, - ProjectGet, - ProjectUpdate, -) from .db import ProjectDBAPI from .exceptions import ( ProjectDeleteError, diff --git a/services/web/server/src/simcore_service_webserver/projects/_permalink_api.py b/services/web/server/src/simcore_service_webserver/projects/_permalink_api.py index 4af2715ac4f..7239cabd136 100644 --- a/services/web/server/src/simcore_service_webserver/projects/_permalink_api.py +++ b/services/web/server/src/simcore_service_webserver/projects/_permalink_api.py @@ -3,8 +3,8 @@ from typing import Any, Callable, Coroutine, cast from aiohttp import web +from models_library.api_schemas_webserver.projects_permalink import ProjectPermalink from models_library.projects import ProjectID -from pydantic import BaseModel, HttpUrl from .exceptions import PermalinkFactoryError, PermalinkNotAllowedError from .models import ProjectDict @@ -12,12 +12,6 @@ _PROJECT_PERMALINK = f"{__name__}" _logger = logging.getLogger(__name__) - -class ProjectPermalink(BaseModel): - url: HttpUrl - is_public: bool - - _CreateLinkCallable = Callable[ [web.Request, ProjectID], Coroutine[Any, Any, ProjectPermalink] ] diff --git a/services/web/server/tests/unit/isolated/test_projects__rest_schemas.py b/services/web/server/tests/unit/isolated/test_projects__rest_schemas.py index f114bf8a932..b8e4fcbdc47 100644 --- a/services/web/server/tests/unit/isolated/test_projects__rest_schemas.py +++ b/services/web/server/tests/unit/isolated/test_projects__rest_schemas.py @@ -5,6 +5,13 @@ import pytest +from models_library.api_schemas_webserver.projects import ( + ProjectCreateNew, + ProjectGet, + ProjectListItem, + ProjectReplace, + TaskProjectGet, +) from models_library.generics import Envelope from models_library.rest_pagination import Page from pydantic import parse_obj_as @@ -19,13 +26,6 @@ REPLACE_PROJECT_ON_MODIFIED, HttpApiCallCapture, ) -from simcore_service_webserver.projects._rest_schemas import ( - ProjectCreateNew, - ProjectGet, - ProjectListItem, - ProjectReplace, - TaskProjectGet, -) @pytest.mark.parametrize( From c0c5652194d6f494e1ef0d792a4087c240d305f8 Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Tue, 27 Jun 2023 12:35:59 +0200 Subject: [PATCH 3/8] exports --- .../models_library/api_schemas_webserver/_base.py | 10 +++++++++- .../api_schemas_webserver/projects.py | 15 ++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/models-library/src/models_library/api_schemas_webserver/_base.py b/packages/models-library/src/models_library/api_schemas_webserver/_base.py index 1f0bfd64516..ce92e12de2b 100644 --- a/packages/models-library/src/models_library/api_schemas_webserver/_base.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/_base.py @@ -5,10 +5,18 @@ from typing import Any -from pydantic import BaseModel, Extra +from pydantic import BaseModel, Extra, Field from ..utils.change_case import snake_to_camel +NOT_REQUIRED = Field(default=None) + + +class EmptyModel(BaseModel): + # Used to represent body={} + class Config: + extra = Extra.forbid + class InputSchema(BaseModel): class Config: # type: ignore[pydantic-alias] diff --git a/packages/models-library/src/models_library/api_schemas_webserver/projects.py b/packages/models-library/src/models_library/api_schemas_webserver/projects.py index acea17923d5..0b2791f4b0c 100644 --- a/packages/models-library/src/models_library/api_schemas_webserver/projects.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/projects.py @@ -7,7 +7,7 @@ from typing import Any, Literal, TypeAlias -from pydantic import BaseModel, Extra, Field, validator +from pydantic import Field, validator from servicelib.aiohttp.long_running_tasks.server import TaskGet from ..emails import LowerCaseEmailStr @@ -17,17 +17,9 @@ from ..projects_state import ProjectState from ..projects_ui import StudyUI from ..utils.common_validators import empty_str_to_none, none_to_empty_str -from ._base import InputSchema, OutputSchema +from ._base import NOT_REQUIRED, EmptyModel, InputSchema, OutputSchema from .projects_permalink import ProjectPermalink -NOT_REQUIRED = Field(default=None) - - -class EmptyModel(BaseModel): - # Used to represent body={} - class Config: - extra = Extra.forbid - class ProjectCreateNew(InputSchema): uuid: ProjectID | None = None # NOTE: suggested uuid! but could be different! @@ -123,8 +115,9 @@ class ProjectUpdate(InputSchema): __all__: tuple[str, ...] = ( - "ProjectCreateNew", + "EmptyModel", "ProjectCopyOverride", + "ProjectCreateNew", "ProjectGet", "ProjectListItem", "ProjectReplace", From 0cc30699d469ad496354c4190bf5cf9b3a215f45 Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Tue, 27 Jun 2023 12:36:14 +0200 Subject: [PATCH 4/8] updates tests models --- .../models-library/tests/test_api_schemas_webserver_projects.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename services/web/server/tests/unit/isolated/test_projects__rest_schemas.py => packages/models-library/tests/test_api_schemas_webserver_projects.py (100%) diff --git a/services/web/server/tests/unit/isolated/test_projects__rest_schemas.py b/packages/models-library/tests/test_api_schemas_webserver_projects.py similarity index 100% rename from services/web/server/tests/unit/isolated/test_projects__rest_schemas.py rename to packages/models-library/tests/test_api_schemas_webserver_projects.py From 86d5c0624765de5a69e0b7112e9064c0007f2b72 Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Tue, 27 Jun 2023 12:57:18 +0200 Subject: [PATCH 5/8] moves long-running tasks api-models and base to models_library --- .../__init__.py | 0 .../api_schemas_long_running_tasks/base.py | 50 +++++++++ .../api_schemas_long_running_tasks/tasks.py | 32 ++++++ .../servicelib/long_running_tasks/_models.py | 104 ++++-------------- 4 files changed, 105 insertions(+), 81 deletions(-) create mode 100644 packages/models-library/src/models_library/api_schemas_long_running_tasks/__init__.py create mode 100644 packages/models-library/src/models_library/api_schemas_long_running_tasks/base.py create mode 100644 packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py diff --git a/packages/models-library/src/models_library/api_schemas_long_running_tasks/__init__.py b/packages/models-library/src/models_library/api_schemas_long_running_tasks/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/models-library/src/models_library/api_schemas_long_running_tasks/base.py b/packages/models-library/src/models_library/api_schemas_long_running_tasks/base.py new file mode 100644 index 00000000000..e7aa11c9dd4 --- /dev/null +++ b/packages/models-library/src/models_library/api_schemas_long_running_tasks/base.py @@ -0,0 +1,50 @@ +import logging + +from pydantic import BaseModel, ConstrainedFloat, Field, validate_arguments, validator + +_logger = logging.getLogger(__name__) + +TaskId = str + +ProgressMessage = str + + +class ProgressPercent(ConstrainedFloat): + ge = 0.0 + le = 1.0 + + +class TaskProgress(BaseModel): + """ + Helps the user to keep track of the progress. Progress is expected to be + defined as a float bound between 0.0 and 1.0 + """ + + message: ProgressMessage = Field(default="") + percent: ProgressPercent = Field(default=0.0) + + @validate_arguments + def update( + self, + *, + message: ProgressMessage | None = None, + percent: ProgressPercent | None = None, + ) -> None: + """`percent` must be between 0.0 and 1.0 otherwise ValueError is raised""" + if message: + self.message = message + if percent: + if not (0.0 <= percent <= 1.0): + raise ValueError(f"{percent=} must be in range [0.0, 1.0]") + self.percent = percent + + _logger.debug("Progress update: %s", f"{self}") + + @classmethod + def create(cls) -> "TaskProgress": + return cls.parse_obj(dict(message="", percent=0.0)) + + @validator("percent") + @classmethod + def round_value_to_3_digit(cls, v): + return round(v, 3) diff --git a/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py b/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py new file mode 100644 index 00000000000..40b0a101911 --- /dev/null +++ b/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py @@ -0,0 +1,32 @@ +import urllib.parse +from datetime import datetime +from typing import Any + +from pydantic import BaseModel, validator + +from .base import TaskId, TaskProgress + + +class TaskStatus(BaseModel): + task_progress: TaskProgress + done: bool + started: datetime + + +class TaskResult(BaseModel): + result: Any | None + error: Any | None + + +class TaskGet(BaseModel): + task_id: TaskId + task_name: str + status_href: str + result_href: str + abort_href: str + + @validator("task_name") + @classmethod + def unquote_str(cls, v) -> str: + return urllib.parse.unquote(v) + return urllib.parse.unquote(v) diff --git a/packages/service-library/src/servicelib/long_running_tasks/_models.py b/packages/service-library/src/servicelib/long_running_tasks/_models.py index b90fbaf787b..69b4e564591 100644 --- a/packages/service-library/src/servicelib/long_running_tasks/_models.py +++ b/packages/service-library/src/servicelib/long_running_tasks/_models.py @@ -1,75 +1,27 @@ -import logging -import urllib.parse from asyncio import Task from datetime import datetime from typing import Any, Awaitable, Callable, Coroutine -from pydantic import ( - BaseModel, - ConstrainedFloat, - Field, - PositiveFloat, - validate_arguments, - validator, +from models_library.api_schemas_long_running_tasks.base import ( + ProgressMessage, + ProgressPercent, + TaskId, ) - -logger = logging.getLogger(__name__) +from models_library.api_schemas_long_running_tasks.tasks import ( + TaskGet, + TaskProgress, + TaskResult, + TaskStatus, +) +from pydantic import BaseModel, Field, PositiveFloat TaskName = str -TaskId = str -TaskType = Callable[..., Coroutine[Any, Any, Any]] - -ProgressMessage = str - - -class ProgressPercent(ConstrainedFloat): - ge = 0.0 - le = 1.0 +TaskType = Callable[..., Coroutine[Any, Any, Any]] ProgressCallback = Callable[[ProgressMessage, ProgressPercent, TaskId], Awaitable[None]] -class MarkOptions(BaseModel): - unique: bool = False - - -class TaskProgress(BaseModel): - """ - Helps the user to keep track of the progress. Progress is expected to be - defined as a float bound between 0.0 and 1.0 - """ - - message: ProgressMessage = Field(default="") - percent: ProgressPercent = Field(default=0.0) - - @validate_arguments - def update( - self, - *, - message: ProgressMessage | None = None, - percent: ProgressPercent | None = None, - ) -> None: - """`percent` must be between 0.0 and 1.0 otherwise ValueError is raised""" - if message: - self.message = message - if percent: - if not (0.0 <= percent <= 1.0): - raise ValueError(f"{percent=} must be in range [0.0, 1.0]") - self.percent = percent - - logger.debug("Progress update: %s", f"{self}") - - @classmethod - def create(cls) -> "TaskProgress": - return cls.parse_obj(dict(message="", percent=0.0)) - - @validator("percent") - @classmethod - def round_value_to_3_digit(cls, v): - return round(v, 3) - - class TrackedTask(BaseModel): task_id: str task: Task @@ -95,30 +47,20 @@ class Config: arbitrary_types_allowed = True -class TaskStatus(BaseModel): - task_progress: TaskProgress - done: bool - started: datetime - - -class TaskResult(BaseModel): - result: Any | None - error: Any | None - - class ClientConfiguration(BaseModel): router_prefix: str default_timeout: PositiveFloat -class TaskGet(BaseModel): - task_id: TaskId - task_name: str - status_href: str - result_href: str - abort_href: str +# explicit export of models for api-schemas - @validator("task_name") - @classmethod - def unquote_str(cls, v) -> str: - return urllib.parse.unquote(v) +assert TaskResult # nosec +assert TaskGet # nosec +assert TaskStatus # nosec + +__all__: tuple[str, ...] = ( + "TaskGet", + "TaskId", + "TaskResult", + "TaskStatus", +) From 03b7649ff5234858529227e142f1a28cc0de6d39 Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Tue, 27 Jun 2023 13:11:51 +0200 Subject: [PATCH 6/8] fixes model schema --- .../src/models_library/api_schemas_webserver/projects.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/models-library/src/models_library/api_schemas_webserver/projects.py b/packages/models-library/src/models_library/api_schemas_webserver/projects.py index 0b2791f4b0c..458d371b220 100644 --- a/packages/models-library/src/models_library/api_schemas_webserver/projects.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/projects.py @@ -8,8 +8,8 @@ from typing import Any, Literal, TypeAlias from pydantic import Field, validator -from servicelib.aiohttp.long_running_tasks.server import TaskGet +from ..api_schemas_long_running_tasks.tasks import TaskGet from ..emails import LowerCaseEmailStr from ..projects import ClassifierID, DateTimeStr, NodesDict, ProjectID from ..projects_access import AccessRights, GroupIDStr From a850227a26be717ac1f5e5cdfa32a4f0374f4d9c Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Tue, 27 Jun 2023 13:18:43 +0200 Subject: [PATCH 7/8] fix --- .../src/models_library/api_schemas_long_running_tasks/tasks.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py b/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py index 40b0a101911..dd0e0c0a72b 100644 --- a/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py +++ b/packages/models-library/src/models_library/api_schemas_long_running_tasks/tasks.py @@ -29,4 +29,3 @@ class TaskGet(BaseModel): @classmethod def unquote_str(cls, v) -> str: return urllib.parse.unquote(v) - return urllib.parse.unquote(v) From a99bd303bbbe1e5fa2e7d9d022bf25c8aa0a3e41 Mon Sep 17 00:00:00 2001 From: Pedro Crespo <32402063+pcrespov@users.noreply.github.com> Date: Tue, 27 Jun 2023 13:52:44 +0200 Subject: [PATCH 8/8] installs models_library to service_lib --- packages/service-library/requirements/_base.in | 4 ++++ packages/service-library/requirements/ci.txt | 1 + packages/service-library/requirements/ci[aiohttp].txt | 1 + packages/service-library/requirements/ci[all].txt | 1 + packages/service-library/requirements/ci[fastapi].txt | 1 + packages/service-library/requirements/dev.txt | 1 + packages/service-library/requirements/dev[aiohttp].txt | 1 + packages/service-library/requirements/dev[all].txt | 1 + packages/service-library/requirements/dev[fastapi].txt | 1 + 9 files changed, 12 insertions(+) diff --git a/packages/service-library/requirements/_base.in b/packages/service-library/requirements/_base.in index 1460479ab80..b10e95f1eee 100644 --- a/packages/service-library/requirements/_base.in +++ b/packages/service-library/requirements/_base.in @@ -4,6 +4,10 @@ --constraint ../../../requirements/constraints.txt --constraint ./constraints.txt +# intra-repo required dependencies +--requirement ../../../packages/models-library/requirements/_base.in +--requirement ../../../packages/settings-library/requirements/_base.in + aiodebug aiodocker aiofiles diff --git a/packages/service-library/requirements/ci.txt b/packages/service-library/requirements/ci.txt index 21133de95e0..ef456141c12 100644 --- a/packages/service-library/requirements/ci.txt +++ b/packages/service-library/requirements/ci.txt @@ -11,6 +11,7 @@ --requirement _test.txt # installs this repo's packages +../models-library/ ../settings-library/ ../pytest-simcore/ diff --git a/packages/service-library/requirements/ci[aiohttp].txt b/packages/service-library/requirements/ci[aiohttp].txt index 25a23441216..999be8513b7 100644 --- a/packages/service-library/requirements/ci[aiohttp].txt +++ b/packages/service-library/requirements/ci[aiohttp].txt @@ -12,6 +12,7 @@ --requirement _test.txt # installs this repo's packages +../models-library/ ../settings-library/ ../pytest-simcore/ diff --git a/packages/service-library/requirements/ci[all].txt b/packages/service-library/requirements/ci[all].txt index 81e9018cc9f..e1577366746 100644 --- a/packages/service-library/requirements/ci[all].txt +++ b/packages/service-library/requirements/ci[all].txt @@ -13,6 +13,7 @@ --requirement _test.txt # installs this repo's packages +../models-library/ ../settings-library/ ../pytest-simcore/ diff --git a/packages/service-library/requirements/ci[fastapi].txt b/packages/service-library/requirements/ci[fastapi].txt index 2e9ac0f68a6..66004bb0a0d 100644 --- a/packages/service-library/requirements/ci[fastapi].txt +++ b/packages/service-library/requirements/ci[fastapi].txt @@ -12,6 +12,7 @@ --requirement _test.txt # installs this repo's packages +../models-library/ ../settings-library/ ../pytest-simcore/ diff --git a/packages/service-library/requirements/dev.txt b/packages/service-library/requirements/dev.txt index e54aeb608c2..05d9f6b3127 100644 --- a/packages/service-library/requirements/dev.txt +++ b/packages/service-library/requirements/dev.txt @@ -12,6 +12,7 @@ --requirement _tools.txt # installs this repo's packages +--editable ../models-library/ --editable ../settings-library/ --editable ../pytest-simcore/ diff --git a/packages/service-library/requirements/dev[aiohttp].txt b/packages/service-library/requirements/dev[aiohttp].txt index 298d255dd6a..3fe16a99369 100644 --- a/packages/service-library/requirements/dev[aiohttp].txt +++ b/packages/service-library/requirements/dev[aiohttp].txt @@ -13,6 +13,7 @@ --requirement _tools.txt # installs this repo's packages +--editable ../models-library/ --editable ../settings-library/ --editable ../pytest-simcore/ diff --git a/packages/service-library/requirements/dev[all].txt b/packages/service-library/requirements/dev[all].txt index c9d4ba4cd94..1f86df11a25 100644 --- a/packages/service-library/requirements/dev[all].txt +++ b/packages/service-library/requirements/dev[all].txt @@ -14,6 +14,7 @@ --requirement _tools.txt # installs this repo's packages +--editable ../models-library/ --editable ../settings-library/ --editable ../pytest-simcore/ diff --git a/packages/service-library/requirements/dev[fastapi].txt b/packages/service-library/requirements/dev[fastapi].txt index 126db34eb20..6c5c5ccbe45 100644 --- a/packages/service-library/requirements/dev[fastapi].txt +++ b/packages/service-library/requirements/dev[fastapi].txt @@ -13,6 +13,7 @@ --requirement _tools.txt # installs this repo's packages +--editable ../models-library/ --editable ../settings-library/ --editable ../pytest-simcore/