From 468eac45a22664cc1b895f20839c9bdb28228456 Mon Sep 17 00:00:00 2001 From: Siarhei Siniak Date: Fri, 25 Jul 2025 12:40:06 +0300 Subject: [PATCH] [+] fix singleton for summarizer 1. use explicit singleton class variable for Summarizer, instead of relying on fastapi Depends caching; --- deps/test-task-2025-07-17-v2/docker/web/Dockerfile | 2 +- deps/test-task-2025-07-17-v2/pyproject.toml | 2 +- .../pr34/test_task_2025_07_17_v2/transform/app.py | 6 +++--- .../test_task_2025_07_17_v2/transform/dependencies.py | 3 ++- .../pr34/test_task_2025_07_17_v2/transform/worker.py | 11 ++++++++++- ...34_test_task_2025_07_17_v2-0.1.11-py3-none-any.whl | 3 +++ 6 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.11-py3-none-any.whl 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 634007a..acbfc14 100644 --- a/deps/test-task-2025-07-17-v2/docker/web/Dockerfile +++ b/deps/test-task-2025-07-17-v2/docker/web/Dockerfile @@ -45,7 +45,7 @@ RUN \ --break-system-packages \ --no-index \ -f releases/whl \ - 'online.fxreader.pr34.test_task_2025_07_17_v2==0.1.10' + 'online.fxreader.pr34.test_task_2025_07_17_v2==0.1.11' ENTRYPOINT ["tini", "--"] CMD [ \ diff --git a/deps/test-task-2025-07-17-v2/pyproject.toml b/deps/test-task-2025-07-17-v2/pyproject.toml index d2f8960..92a7ad4 100644 --- a/deps/test-task-2025-07-17-v2/pyproject.toml +++ b/deps/test-task-2025-07-17-v2/pyproject.toml @@ -9,7 +9,7 @@ classifiers = [ ] name = 'online.fxreader.pr34.test_task_2025_07_17_v2' -version = '0.1.10' +version = '0.1.11' dependencies = [ 'alembic', 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 index 082e00f..f7bfa22 100644 --- 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 @@ -12,9 +12,9 @@ from typing import (Annotated,) def get_app_router() -> fastapi.APIRouter: logger.info(dict(msg='started')) router = fastapi.APIRouter( - dependencies=[ - fastapi.Depends(summarizer_dependency,) - ] + # dependencies=[ + # fastapi.Depends(summarizer_dependency,) + # ] ) router.include_router( diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/dependencies.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/dependencies.py index bdf04c3..8517e9f 100644 --- a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/dependencies.py +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/dependencies.py @@ -9,7 +9,8 @@ from typing import (Annotated,) async def create_summarizer( ) -> Summarizer: - return Summarizer() + # return Summarizer() + return Summarizer.singleton() AnnotatedSummarizer = Annotated[ Summarizer, fastapi.Depends(create_summarizer) diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/worker.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/worker.py index 748dd36..e979797 100644 --- a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/worker.py +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/worker.py @@ -6,7 +6,7 @@ logger = logging.getLogger(__name__) from typing import ( Any, cast, Callable, Protocol, Literal, TypedDict, - TypeAlias, + TypeAlias, ClassVar, Optional, ) class SummarizerPipeline(Protocol): @@ -69,3 +69,12 @@ class Summarizer: assert len(res) == 1 return res[0]['summary_text'].split() + + _singleton: ClassVar[Optional['Summarizer']] = None + + @classmethod + def singleton(cls) -> 'Summarizer': + if cls._singleton is None: + cls._singleton = Summarizer() + + return cls._singleton diff --git a/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.11-py3-none-any.whl b/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.11-py3-none-any.whl new file mode 100644 index 0000000..1165b5d --- /dev/null +++ b/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.11-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bc4cf640914c2b198fd3f9418cc80c5903cce4a36b01ac67124ecaf9bec3730 +size 14227