diff --git a/deps/test-task-2025-07-17-v2/Makefile b/deps/test-task-2025-07-17-v2/Makefile index d83fcc1..1ff611e 100644 --- a/deps/test-task-2025-07-17-v2/Makefile +++ b/deps/test-task-2025-07-17-v2/Makefile @@ -35,11 +35,18 @@ venv: -p $(ENV_PATH) \ -r requirements.txt +PYRIGHT_ARGS ?= --threads 3 + pyright: $(ENV_PATH)/bin/python3 -m pyright \ -p pyproject.toml \ - --threads 3 \ - --pythonpath $(PYTHON_PATH) + --pythonpath $(PYTHON_PATH) \ + $(PYRIGHT_ARGS) + +pyright_watch: + make \ + PYRIGHT_ARGS=-w \ + pyright ruff_check: $(ENV_PATH)/bin/python3 -m ruff \ diff --git a/deps/test-task-2025-07-17-v2/docker-compose.yml b/deps/test-task-2025-07-17-v2/docker-compose.yml index bb3353a..b728d84 100644 --- a/deps/test-task-2025-07-17-v2/docker-compose.yml +++ b/deps/test-task-2025-07-17-v2/docker-compose.yml @@ -41,11 +41,15 @@ services: <<: *web image: online.fxreader.pr34.test_task_2025_07_17_v1:dev env_file: .env/summarizer.patched.env + ports: + - 127.0.0.1:9003:80 deploy: resources: limits: cpus: '4' memory: 3068M + volumes: + - ~/.cache/huggingface/hub:/root/.cache/huggingface/hub:ro postgresql: image: docker.io/postgres:14.18-bookworm@sha256:c0aab7962b283cf24a0defa5d0d59777f5045a7be59905f21ba81a20b1a110c9 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 0a01dd6..925dac1 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.5' + 'online.fxreader.pr34.test_task_2025_07_17_v2==0.1.8' ENTRYPOINT ["tini", "--"] CMD [ \ 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 index 2d29daf..a6e59c2 100644 --- a/deps/test-task-2025-07-17-v2/docker/web/summarizer.env +++ b/deps/test-task-2025-07-17-v2/docker/web/summarizer.env @@ -1 +1,3 @@ APPS=["online.fxreader.pr34.test_task_2025_07_17_v2.transform.app:get_app_router:"] +UVICORN_HOST=0.0.0.0 +UVICORN_PORT=80 diff --git a/deps/test-task-2025-07-17-v2/pyproject.toml b/deps/test-task-2025-07-17-v2/pyproject.toml index 1f93607..6fd042a 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.5' +version = '0.1.8' dependencies = [ 'alembic', diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/async_api/fastapi.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/async_api/fastapi.py index 751476b..ab4198e 100644 --- a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/async_api/fastapi.py +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/async_api/fastapi.py @@ -54,7 +54,9 @@ def create_app() -> fastapi.FastAPI: app = fastapi.FastAPI() + logger.info(dict(msg='started loading apps')) for app_config in APISettings.singleton().apps: + logger.info(dict(msg='start loading app = {}'.format(app_config))) app_module, app_method, app_prefix = app_config.split(':') app_router = cast( @@ -72,6 +74,8 @@ def create_app() -> fastapi.FastAPI: prefix=app_prefix, # prefix='/', ) + logger.info(dict(msg='done loading app = {}'.format(app_config))) + logger.info(dict(msg='done loading apps')) # app.websocket( # '/tickers/', @@ -86,10 +90,13 @@ def create_app() -> fastapi.FastAPI: def run(args: list[str]): + logging.basicConfig(level=logging.INFO) + log_config = copy.deepcopy(uvicorn.config.LOGGING_CONFIG) uvicorn.run( - create_app(), + # create_app(), + create_app, host=APISettings.singleton().uvicorn_host, port=APISettings.singleton().uvicorn_port, loop='uvloop', 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 18b40a4..082e00f 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 @@ -4,21 +4,11 @@ import fastapi logger = logging.getLogger(__name__) from . import views -from .worker import Summarizer + +from .dependencies import summarizer_dependency from typing import (Annotated,) -async def create_summarizer( -) -> Summarizer: - return Summarizer() - -async def summarizer_dependency( - summarizer: Annotated[ - Summarizer, fastapi.Depends(create_summarizer) - ] -) -> None: - pass - def get_app_router() -> fastapi.APIRouter: logger.info(dict(msg='started')) router = fastapi.APIRouter( 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 new file mode 100644 index 0000000..3ec12a1 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v2/transform/dependencies.py @@ -0,0 +1,19 @@ +import logging +import fastapi + +logger = logging.getLogger(__name__) + +from .worker import Summarizer + +from typing import (Annotated,) + +async def create_summarizer( +) -> Summarizer: + return Summarizer() + +async def summarizer_dependency( + summarizer: Annotated[ + Summarizer, fastapi.Depends(create_summarizer) + ] +) -> None: + pass 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 index eced4c4..1038ee1 100644 --- 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 @@ -2,3 +2,6 @@ import pydantic class Summary(pydantic.BaseModel): data: list[str] + +class SummaryRequest(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 index ef5c2e7..0d028f5 100644 --- 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 @@ -3,19 +3,25 @@ import fastapi from typing import (Annotated, Any,) from . import schema from .worker import Summarizer +from .dependencies import create_summarizer router = fastapi.APIRouter() -@router.post('summarize') +@router.post( + '/summarize', + # response_model=schema.Summary, +) async def summarize( - data: Annotated[ - list[str], + request: Annotated[ + schema.SummaryRequest, fastapi.Body(), ], - summarizer: Summarizer, + summarizer: Annotated[ + Summarizer, fastapi.Depends(create_summarizer) + ] ) -> schema.Summary: return schema.Summary( data=summarizer.summarize( - data, + request.data, ) ) diff --git a/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.6-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.6-py3-none-any.whl new file mode 100644 index 0000000..1197f67 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.6-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c384fa519f2f97c72e81d743ad45a8d7190cf23c78ebfaadd58ef26839d29e64 +size 13613 diff --git a/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.7-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.7-py3-none-any.whl new file mode 100644 index 0000000..f165527 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.7-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:867b399e63dc20198b54358efcfe648e1a840d874f1fabeee6ab0715b40a8c7d +size 14029 diff --git a/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.8-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.8-py3-none-any.whl new file mode 100644 index 0000000..b99d3d8 --- /dev/null +++ b/deps/test-task-2025-07-17-v2/releases/whl/online_fxreader_pr34_test_task_2025_07_17_v2-0.1.8-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adc79bfe3c75732e8706adf6a1a29b1ca2f9889c17a8aa23d5c70c4d345d869f +size 14031