From 9bd3c3e45b5f523ab96580e8ea3620aa31e09965 Mon Sep 17 00:00:00 2001 From: Siarhei Siniak Date: Thu, 24 Jul 2025 11:13:07 +0300 Subject: [PATCH] [+] partially deploy summarizer as service 1. add views, schema for transform module; 2. partially added injection of singleton instances, like Summarizer; --- deps/test-task-2025-07-17-v2/Makefile | 4 ++++ .../docker/web/Dockerfile | 4 ++-- .../docker/web/summarizer.env | 1 + .../test_task_2025_07_17_v2/payloads/views.py | 4 ++-- .../test_task_2025_07_17_v2/transform/app.py | 16 ++++++++++++++ .../transform/schema.py | 4 ++++ .../transform/views.py | 21 +++++++++++++++++++ 7 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 deps/test-task-2025-07-17-v2/docker/web/summarizer.env create mode 100644 deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/app.py create mode 100644 deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/schema.py create mode 100644 deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/views.py diff --git a/deps/test-task-2025-07-17-v2/Makefile b/deps/test-task-2025-07-17-v2/Makefile index 5317b47..9c0f07a 100644 --- a/deps/test-task-2025-07-17-v2/Makefile +++ b/deps/test-task-2025-07-17-v2/Makefile @@ -55,10 +55,14 @@ ruff: ruff_format_check ruff_check compose_env: cat docker/postgresql/.env .env/postgresql.env > .env/postgresql.patched.env cat docker/web/.env .env/web.env > .env/web.patched.env + cat docker/web/summarizer.env .env/summarizer.env > .env/summarizer.patched.env compose_build_web: $(COMPOSE) build web +compose_build_summarizer: + $(COMPOSE) build summarizer + git-release: mkdir -p releases/tar git archive \ diff --git a/deps/test-task-2025-07-17-v2/docker/web/Dockerfile b/deps/test-task-2025-07-17-v2/docker/web/Dockerfile index f47e210..c31ccc8 100644 --- a/deps/test-task-2025-07-17-v2/docker/web/Dockerfile +++ b/deps/test-task-2025-07-17-v2/docker/web/Dockerfile @@ -40,11 +40,11 @@ RUN \ --break-system-packages \ --no-index \ -f releases/whl \ - 'online.fxreader.pr34.test_task_2025_06_30_v1==0.1' + 'online.fxreader.pr34.test_task_2025_07_17_v2==0.1.1' ENTRYPOINT ["tini", "--"] CMD [ \ "python3", \ "-m", \ - "online.fxreader.pr34.test_task_2025_06_30_v1.async_api.app" \ + "online.fxreader.pr34.test_task_2025_07_17_v2.async_api.fastapi" \ ] diff --git a/deps/test-task-2025-07-17-v2/docker/web/summarizer.env b/deps/test-task-2025-07-17-v2/docker/web/summarizer.env new file mode 100644 index 0000000..5aa4403 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/docker/web/summarizer.env @@ -0,0 +1 @@ +FASTAPI_APPS=["online.fxreader.iot.test_task_2025_07_17_v2.transform.app"] diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/payloads/views.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/payloads/views.py index 0c9fce3..5af68a6 100644 --- a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/payloads/views.py +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/payloads/views.py @@ -6,7 +6,7 @@ from . import schema router = fastapi.APIRouter() @router.post('payload') -def payload_create( +async def payload_create( list_1: Annotated[ list[str], fastapi.Body(), @@ -19,7 +19,7 @@ def payload_create( raise NotImplementedError @router.get('payload/{paylaod_id}') -def payload_read( +async def payload_read( payload_id: int, ) -> schema.Payload: raise NotImplementedError diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/app.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/app.py new file mode 100644 index 0000000..d1436b2 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/app.py @@ -0,0 +1,16 @@ + +import fastapi + +from typing import (Annotated, Any,) +from . import schema + +router = fastapi.APIRouter() + +@router.post('summarize') +def summarize( + data: Annotated[ + list[str], + fastapi.Body(), + ], +) -> schema.Payload: + raise NotImplementedError diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/schema.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/schema.py new file mode 100644 index 0000000..eced4c4 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/schema.py @@ -0,0 +1,4 @@ +import pydantic + +class Summary(pydantic.BaseModel): + data: list[str] diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/views.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/views.py new file mode 100644 index 0000000..35bd171 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/views.py @@ -0,0 +1,21 @@ +import fastapi + +from typing import (Annotated, Any,) +from . import schema +from .worker import Summarizer + +router = fastapi.APIRouter() + +@router.post('summarize') +async def summarize( + data: Annotated[ + list[str], + fastapi.Body(), + ], + summarizer: Summarizer +) -> schema.Summary: + return schema.Summary( + data=summarizer.summarize( + data, + ) + )