diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8e5c944 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,46 @@ +# Git +.git +.gitignore + +# Python +__pycache__ +*.pyc +*.pyo +*.pyd +.Python +env +pip-log.txt +pip-delete-this-directory.txt +.tox +.coverage +.coverage.* +.pytest_cache +htmlcov + +# Virtual environments +.venv +.env +venv/ +ENV/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Project specific +uv.lock +.mypy_cache +.opencode + +# Documentation build +DOCS/ + +# Keep data directory for testing +!data/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..64d2908 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +FROM python:3.13-slim + +# Set working directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + && rm -rf /var/lib/apt/lists/* + +# Copy pyproject.toml first for better caching +COPY pyproject.toml ./ + +# Install Python dependencies +RUN pip install --no-cache-dir -e . + +# Copy application code +COPY ./app ./app +COPY ./data ./data +COPY ./tests ./tests + +# Set Python path +ENV PYTHONPATH=/app + +# Expose port +EXPOSE 8000 + +# Command will be overridden by docker-compose +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/apple/__init__.py b/app/__init__.py similarity index 100% rename from apple/__init__.py rename to app/__init__.py diff --git a/obsidian/__init__.py b/app/api/__init__.py similarity index 100% rename from obsidian/__init__.py rename to app/api/__init__.py diff --git a/parsers/__init__.py b/app/api/v1/__init__.py similarity index 100% rename from parsers/__init__.py rename to app/api/v1/__init__.py diff --git a/app/api/v1/api.py b/app/api/v1/api.py new file mode 100644 index 0000000..f367ec9 --- /dev/null +++ b/app/api/v1/api.py @@ -0,0 +1,7 @@ +from fastapi import APIRouter +from app.api.v1.endpoints import parser, health + +api_router = APIRouter() + +api_router.include_router(health.router, prefix="/health", tags=["health"]) +api_router.include_router(parser.router, prefix="/parser", tags=["parser"]) \ No newline at end of file diff --git a/utils/__init__.py b/app/api/v1/endpoints/__init__.py similarity index 100% rename from utils/__init__.py rename to app/api/v1/endpoints/__init__.py diff --git a/app/api/v1/endpoints/health.py b/app/api/v1/endpoints/health.py new file mode 100644 index 0000000..702d576 --- /dev/null +++ b/app/api/v1/endpoints/health.py @@ -0,0 +1,13 @@ +from fastapi import APIRouter +from datetime import datetime + +router = APIRouter() + + +@router.get("/") +async def health_check(): + return { + "status": "healthy", + "timestamp": datetime.now().isoformat(), + "service": "fitness-parser-api" + } \ No newline at end of file diff --git a/app/api/v1/endpoints/parser.py b/app/api/v1/endpoints/parser.py new file mode 100644 index 0000000..f86665b --- /dev/null +++ b/app/api/v1/endpoints/parser.py @@ -0,0 +1,27 @@ +from fastapi import APIRouter, HTTPException +from typing import List +from app.schemas.parser import ParseRequest, ParseResponse +from app.core.services.parser_service import ParserService + +router = APIRouter() +parser_service = ParserService() + + +@router.post("/parse", response_model=List[ParseResponse]) +async def parse_training_data(request: ParseRequest): + try: + result = await parser_service.parse_data(request) + return result + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/supported-formats") +async def get_supported_formats(): + return { + "formats": [ + {"name": "apple", "description": "Apple Notes format"}, + {"name": "obsidian", "description": "Obsidian Markdown format"}, + {"name": "text", "description": "Plain text format"} + ] + } \ No newline at end of file diff --git a/app/config.py b/app/config.py new file mode 100644 index 0000000..79864a8 --- /dev/null +++ b/app/config.py @@ -0,0 +1,14 @@ +from pydantic_settings import BaseSettings +from typing import Optional + + +class Settings(BaseSettings): + app_name: str = "Fitness Parser API" + version: str = "0.1.0" + debug: bool = False + + class Config: + env_file = ".env" + + +settings = Settings() \ No newline at end of file diff --git a/conftest.py b/app/core/__init__.py similarity index 100% rename from conftest.py rename to app/core/__init__.py diff --git a/parser.py b/app/core/models/__init__.py similarity index 100% rename from parser.py rename to app/core/models/__init__.py diff --git a/obsidian/py_models.py b/app/core/models/training.py similarity index 96% rename from obsidian/py_models.py rename to app/core/models/training.py index 25fe1c9..d429b64 100644 --- a/obsidian/py_models.py +++ b/app/core/models/training.py @@ -18,5 +18,6 @@ class Training(BaseModel): date: date exercises: Optional[List[Exercise]] + class Coach(BaseModel): - name: str + name: str \ No newline at end of file diff --git a/app/core/parsers/__init__.py b/app/core/parsers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apple/notes_parser.py b/app/core/parsers/apple.py similarity index 91% rename from apple/notes_parser.py rename to app/core/parsers/apple.py index 035cb1b..956701f 100644 --- a/apple/notes_parser.py +++ b/app/core/parsers/apple.py @@ -2,9 +2,9 @@ import re from typing import List, Tuple from datetime import datetime -from obsidian.py_models import Training -from apple.mapper import unique_apple_exercises_mapper -from parsers.base_parser import BaseNotesParser +from app.core.models.training import Training +from app.core.parsers.apple_mapper import unique_apple_exercises_mapper +from app.core.parsers.base import BaseNotesParser class AppleNotesParser(BaseNotesParser): diff --git a/apple/mapper.py b/app/core/parsers/apple_mapper.py similarity index 100% rename from apple/mapper.py rename to app/core/parsers/apple_mapper.py diff --git a/parsers/base_parser.py b/app/core/parsers/base.py similarity index 97% rename from parsers/base_parser.py rename to app/core/parsers/base.py index 770fa03..c8e960a 100644 --- a/parsers/base_parser.py +++ b/app/core/parsers/base.py @@ -1,8 +1,8 @@ import os from typing import List, Tuple, Dict, Optional -from obsidian.py_models import Approach, Exercise, Training -from utils.date_refactor import parse_training_date +from app.core.models.training import Approach, Exercise, Training +from app.core.utils.date_refactor import parse_training_date class BaseNotesParser: diff --git a/obsidian/notes_parser.py b/app/core/parsers/obsidian.py similarity index 86% rename from obsidian/notes_parser.py rename to app/core/parsers/obsidian.py index a349a87..968a43a 100644 --- a/obsidian/notes_parser.py +++ b/app/core/parsers/obsidian.py @@ -1,9 +1,9 @@ import re from typing import List, Tuple -from obsidian.py_models import Training -from obsidian.mapper import obsidian_unique_exercies_mapping -from parsers.base_parser import BaseNotesParser +from app.core.models.training import Training +from app.core.parsers.obsidian_mapper import obsidian_unique_exercies_mapping +from app.core.parsers.base import BaseNotesParser class ObsidianNotesParser(BaseNotesParser): diff --git a/obsidian/mapper.py b/app/core/parsers/obsidian_mapper.py similarity index 100% rename from obsidian/mapper.py rename to app/core/parsers/obsidian_mapper.py diff --git a/parsers/text_data_parser.py b/app/core/parsers/text_data.py similarity index 76% rename from parsers/text_data_parser.py rename to app/core/parsers/text_data.py index 693ddbe..13dcfaa 100644 --- a/parsers/text_data_parser.py +++ b/app/core/parsers/text_data.py @@ -1,7 +1,7 @@ from typing import List -from apple.notes_parser import AppleNotesParser -from obsidian.notes_parser import ObsidianNotesParser -from obsidian.py_models import Training +from app.core.parsers.apple import AppleNotesParser +from app.core.parsers.obsidian import ObsidianNotesParser +from app.core.models.training import Training def parse_old_data() -> List[Training]: """Method for parsing all old data from apple and obsidian notes with exercise mapping applied diff --git a/app/core/services/__init__.py b/app/core/services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/services/parser_service.py b/app/core/services/parser_service.py new file mode 100644 index 0000000..dd801a8 --- /dev/null +++ b/app/core/services/parser_service.py @@ -0,0 +1,27 @@ +from typing import List +from app.schemas.parser import ParseRequest, ParseResponse, ParseFormat +from app.core.parsers.text_data import parse_old_data +from app.core.parsers.apple import AppleNotesParser +from app.core.parsers.obsidian import ObsidianNotesParser + + +class ParserService: + def __init__(self): + self._apple_parser = AppleNotesParser() + self._obsidian_parser = ObsidianNotesParser() + + async def parse_data(self, request: ParseRequest) -> List[ParseResponse]: + if request.format == ParseFormat.text: + trainings = parse_old_data() + return [ParseResponse(**training.model_dump()) for training in trainings] + + elif request.format == ParseFormat.apple: + trainings = self._apple_parser.parse(request.data) + return [ParseResponse(**training.model_dump()) for training in trainings] + + elif request.format == ParseFormat.obsidian: + trainings = self._obsidian_parser.parse(request.data) + return [ParseResponse(**training.model_dump()) for training in trainings] + + else: + raise ValueError(f"Unsupported format: {request.format}") diff --git a/app/core/utils/__init__.py b/app/core/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/utils/date_refactor.py b/app/core/utils/date_refactor.py similarity index 100% rename from utils/date_refactor.py rename to app/core/utils/date_refactor.py diff --git a/utils/enums.py b/app/core/utils/enums.py similarity index 100% rename from utils/enums.py rename to app/core/utils/enums.py diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..aafde3e --- /dev/null +++ b/app/main.py @@ -0,0 +1,16 @@ +from fastapi import FastAPI +from app.api.v1.api import api_router +from app.config import settings + +app = FastAPI( + title="Fitness Parser API", + description="API for parsing fitness training data from various sources", + version="0.1.0", +) + +app.include_router(api_router, prefix="/api/v1") + + +@app.get("/") +async def root(): + return {"message": "Fitness Parser API", "version": "0.1.0"} \ No newline at end of file diff --git a/app/schemas/__init__.py b/app/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/schemas/parser.py b/app/schemas/parser.py new file mode 100644 index 0000000..a9492c6 --- /dev/null +++ b/app/schemas/parser.py @@ -0,0 +1,31 @@ +from pydantic import BaseModel +from typing import List, Optional +from datetime import date +from enum import Enum + + +class ParseFormat(str, Enum): + apple = "apple" + obsidian = "obsidian" + text = "text" + + +class ParseRequest(BaseModel): + data: str + format: ParseFormat + + +class ApproachResponse(BaseModel): + weight: float + reps: int + + +class ExerciseResponse(BaseModel): + name: str + splitted_weight: bool = False + approaches: List[ApproachResponse] + + +class ParseResponse(BaseModel): + date: date + exercises: Optional[List[ExerciseResponse]] \ No newline at end of file diff --git a/apple/examples/apple_full.md b/apple/examples/apple_full.md deleted file mode 100644 index 142cee1..0000000 --- a/apple/examples/apple_full.md +++ /dev/null @@ -1,1132 +0,0 @@ -**08.09.2023 (с28)** - -| Упражнение | Вес | Подходы | -| ---------------------------------- | ------------------ | ----------- | -| Обратные подтягивания | Фиолетовая резинка | 5-4-4 | -| Тяга на себя сидя | 46-49 | 12-10-10-10 | -| Гребная тяга сидя с упором в грудт | 10 | 12-12-12 | -| Жим гантелей лежа | 16х16 | 12-12-12-12 | -| Отжимания на брусьях | +47 | 12-9-9 | - -**11.09.2023 (с29)** - -| Упражнение | Вес | Подходы | -| ------------------------ | -------------- | ----------------- | -| Жим ногами | 50-100-125-150 | 15-12-12-12-12-10 | -| Гипекстензия | 12 | 12-12-12 | -| Разведение рук в стрроны | 37 | 15-15-15 | -| Разгибание рук сидя | 77 | 12-12-12-10 | -| Гантели-молот | 9 | 12-12-12-12 | - -**15.09.2023 (с30)**  - -| Упражнение | Вес | Подходы | -| ---------------------------------- | ----- | ----------- | -| Гравитрон | 67-77 | 12-12-9-8 | -| Гребная тяга сидя с упором в грудь | 30 | 9-10-10-10 | -| Тяга вниз сидя | 45.3 | 10-10-10-10 | -| Жим гантелей лежа | 28-32 | 12-12-12-12 | -| Сведение рук сидя | 37-27 | 10-9-12 | - -**18.09.2023 (с31)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Сгибание ног лежа|27-37|15-12-12-12| -|Приседания|22-28|12-12-12-12| -|Разведение рук в стороны|37|15-15-15-15| -|Разведение рук сидя|17|12-12-12| -|Разгибание рук сидя|77|12-12-12| -|Гантели|18|10х2-10х2-10х2| - -**21.09.2023 (с32)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|57|12-11-10| -|Гребная тяга с упором на грудь|27-30|12-12-12| -|Тяга вниз обратным хватом сидя (фитнес станция)|37|15-15| -|Жим гантелей|28-32|12-12-11-10| -|Отжимания||8-8-8| - -**23.09.2023 (с33)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|49.8-58.9-63.4|12-12-12-12| -|Гакк присед|0|12-12-12| -|Гиперэкстензия|10|12-12-12| -|Разведение рук в стороны|37-37-47-47|12-15-12-12| -|Жим от плеч вверх|27|12-12-11-10| - -**23.09.2023 (с34)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом|0-синяя резинка х 3|2-6-6-5| -|Гребная тяга сидя (одна рука)|12.5|12-12-12| -|Тяга верхнего блока|25-30-30|12-12-12| -|Жим от груди сидя|30-35-35-35|12-12-12-12| -|Баттерфляй|47|12-12-12| -|Отжимания на брусьях|-47|8-8-8| - -**02.10.2023 (solo)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя (4х10)|58.9-63.4|12-10-10-12| -|Жим ногами (3х15)|125|12-12-12-10| -|Сгибание ног сидя (3х12)|72|12-12-12| -|Жим в тренажере на плечи блочный (3х12)|20-25|12-12-7| -|Отведение назад в тренажере пэк дэк (3х12)|17|12-15-12| -|Сгибание со штангой стоя (3х12)|20|12-12-11| -|Разгибание рук в трицепс машине (3х10)|67-77|15-12-12| - -**04.10.2023 (с36)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|Синяя резинка|7-5-4-4| -|Горизонтальная тяга блока|45|12-12-12-12| -|Тяга вертикального блока обратным хватом|49.8х2-45|10-10-9| -|Жим от груди сидя|67|15-15-12| -|Отжимания|+5|4-5-4| -|Подъёмы ног на турнике||10-10-8| - -**06.10.2023 (с37)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Сгибание ног лежа|27-37|12-12-12-10| -|Гакк машина|0-10|12-12-12-12| -|Пек дек (отведение назад)|17|15-15-15-15| -|Отведение руки стоя снизу вверх|6.5|12-15-14| -|Жим от плеч вверх|27|12-12-12| - -**09.10.2023 (с38)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом|0|3-2-2| -|Тяга т грифа|10-12.5|12-12-12-10| -|Тяга вертикального блока|45.3|12-12-10| -|Жим от груди в тренажере сидя|67-77|12-12-12-12| -|Отжимания на брусьях|-47|10-8-10-10| - -**11.10.2023 (с39)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Сгибание ног сидя|58-58-68|12-12-10-10-10| -|Гиперэкстензия|10|12-12-12| -|Приседания|30|10-10-10| -|Отведение руки стоя|9|12-12-12| -|Жим от плеч вверх|27|12-12-10| -|Отведение в рук в наклоне||12-12-12| - -**16.10.2023 (с40)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|47|9-6-7-6| -|Тяга гантелей в наклоне|12х12|12-12-12-12| -|Тяга верхнего блока|30|12-12-12| -|Жим гантелей 45⁰|14х14|12-12-12-12| -|Отжимания на брусьях|-47|11-12-9| - -**18.10.2023 (с41)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гакк машина|0-15|12-12-12-11| -|Сгибание ног сидя|58.9-68|15-12-12-12| -|Разведение рук стоя|6-7 х2|12-12-12-12| -|Жим от плеч вверх|27|12-12-12-10| -|Подъем ног на турнике||10-10-9| - -**20.10.2023 (solo)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания в гравитроне|57|15-12-10-10| -|Тяга вертикального блока обратным хватом|36-41-41-45.3|12-15-15| -|Тяга горизонтального блока узким хватом|37-47|15-10-12-10| -|Жим гантелей лежа|16х16|15-12-12-11| -|Сведение рук в тренажере (пек-дек)|27-27-37-37|15-15-15-15| -|Подъем ног на турнике||10-8-7| - -**23.10.2023 (solo)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами|125-135-135-140|12-12-12-12| -|Гиперэкстензия|10|12-12-12-12| -|Отведение в кроссовере одной рукой|9|12-12-12-12| -|Отведение назад в тренажере пек дэк|17|15-12-12-12| -|Жим в тренажёре вверх|27|15-12-12-9| - -**25.10.2023 (с42)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-синяя резинка|2-10-7-7| -|Тяга штанги в наклоне к поясу обратным хватом|25-30|12-12-12-12| -|Тяга вертикального блока|37-47|12-10-10-10| -|Баттерфляй|47-57|15-12-9-10| -|Жим гантелей на скамье 45⁰|32-32-28-28|11-10-10| - -**27.10.2023 (с43)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами|50-100-125-150-150|15-12-12-10-10| -|Болгарский присед|15-12-12|0-3-3| -|Отведение в кроссовере одной рукой|9|12-12-12-12| -|Отведение назад в тренажере пек дек|17|12-12-12| -|Скручивания на мяче||12-12-12| - -**27.10.2023 (с44)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания в гравитроне|57-57-47|12-12-8-8| -|Тяга гантели к поясу|16|12-12-12-12| -|Тяга вертикального блока обратным хватом|49.8|10-9-9| -|Гребная тяга с упором на грудь|37|12-12-12| -|Отжимания на брусьях|47|12-12-11| -|Разгибание из за головы|6|10-10-10| - -**01.11.2023 (с45)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Сведение рук в тренажёре пёк дек|27-37|15-15-12-11| -|Жим гантелей лежа|14х2-16х2|12-12-12-10| -|Отжимания на брусьях широким хватом|47|10-10-8| -|Разведение рук в стороны (дельт-машина)|37|15-15-15-15| -|Жим в тренажере вверх|27|10-10-10-8| -|||| - -**06.11.2023 (с46)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом|0|4-3-4| -|Гребная тяга с упором в грудь|10-15|12-12-12-12| -|Тяга горизонтального блока|45-45-45-40|12-12-12-12| -|Разгибание спины|67-77|15-12-12| -|Отжимания на брусьях узким хватом|37|10-10-7| -|Разгибание локтей в наклоне|5х2|12-12-12| - - -**10.11.2023 (с48)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног|49-63-68|12-12-12-10| -|Жим ногами|90-120-130|12-12-12-12| -|Сгибание ног|58-68|12-12-12-12| -|Разведение рук в стороны с гантелям|7х2-8х2|15-15-15-15| -|Разведение рук в наклоне|5х2|15-15-15| -|||| - -**13.11.2023 (с49)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом|0-0-красная|4-3-6-4| -|Тяга в наклоне|20-30|12-12-12-12| -|Тяга вертикального блока|45-45-40|10-10-12| -|Гребная тяга  упором в грудьс|37|12-12-12| -|Отжимания на брусьях|37|12-12-8| -|Разгибание рук стоя с канатом|27|12-12-12| - -**15.11.2023 (с50)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим лежа|0-20-25-27.5|15-10-10-10| -|Жим сидя 45⁰|32-32-28|10-10-11| -|Баттерфляй|47|15-15-14| -|Бицепс на лавке 45⁰|14-16|15-15-12| -|Молот трицепс стоя|18|12-12-12| -|||| - -**17.11.2023 (с51)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|57-63-72|15-12-10-10| -|Приседания|+30|10-10-10| -|Гиперэкстензия|+12|12-12-12| -|Отведение руки стоя|9-11|12-12-12-12| -|Жим вверх 80⁰|28|9-8-10-10| -|||| - -**20.11.2023 (с52)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|Красная|8-6-5| -|Тяга штанги в наклоне|25-30|12-12-12-12| -|Тяга вертикального блока|47|12-11-9-8| -|Отжимания на брусьях|0|6-7-6| -|Трицепс вниз у стойки|39|15-12-12-12| -|||| - -**22.11.2023 (solo)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим гантелей|32|12-12-12-12| -|Отжимания|-|9-10-8-8| -|Сведение рук в тренажере|27-37|15-15-15-15| -|Сгибание со штангой стоя|20|12-12-10-10| -|Сгибание с гантелями молот вместе|18-20|12-12-11-11| -|Пресс на шаре||15-12-12-12| - -**24.11.2023 (с53)**  - -| Упражнение | Вес | Подходы | -| -------------------------------- | ------- | ----------- | -| Гакк машина | 0-15-20 | 10-10-10-10 | -| Сгибание ног сидя | 77 | 15-15-14 | -| Разведение рук в стороны | 37-47 | 15-12-12-12 | -| Пек дек разведение рук в стороны | 27 | 10-8-8 | -| Жим гантелей вверх 90⁰ | 24 | 12-12-12-12 | -| | | | - -**27.11.2023 (с54)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|57-47|10-10-8-7| -|Тяга штанги в наклоне|20-40|12-12-12-12-8| -|Тяга одной рукой в кроссовере|31.7-36.2|12-12-12-12| -|Брусья|0-0-черная-черная|6-6-7-7| -|Трацепс|18-11|6-8-9| - -**29.11.2023 (с55)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим штанги сидя 45⁰|40-50|12-11-10-10| -|Жим гантелей лежа|32-36|12-8-10| -|Сведение рук в пек дек|37|12-12-12-12| -|Жим штанги стоя|20|12-11-9-9| -|Молоты|20-20-18-18-18|10-9-12| - -**01.12.2023 (с56)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Приседания|22-30-30-34|12-12-12-10| -|Сгибание ног лёжа|37-47|12-8-8-8| -|Жим от плеч сидя зэ|20-25|12-12-9-10| -|Отведение рук в кроссовере|9-13|12-10-10| -|Разведение рук в пек дек|27|10-8-8| - -**11.12.2023 (с57)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|57-47|12-9-8-6| -|Тяга гантелей в наклоне|20-24|12-12-12-12| -|Тяга вертикального блока обратным хватом|37|12-12-12-12-12| -|Отжимания на брусьях|0|7-6-5-5| -|Молот назад двумя руками|14|11-9-10| - -**13.12.2023 (соло)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим гантелей|32|15-15-11-11| -|Сведение рук в тренажере|27|15-15-15-15| -|Отжимания||9-7-7-6| -|Сгибания рук со штангой стоя|20-25-20-20|12-8-11-10| -|Сгибание гантелей в стиле молот одновременно|18|12-15-13-14| - -**15.12.2023 (соло)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами|100-110-120-130|12-12-12-12| -|Сгибание ног сидя|77|15-12-12-10| -|Отведение рук с гантелями стоя|18|12-12-12-12| -|Жим от плечей вверх|27|15-12-9-9| -|Отведение назад в пек дек|17-27-27-17|15-11-10-12| - -**20.12.2023 (с58)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания||4.5-4-3-2.5| -|Жис гантелей лежа|32-36|12-12-10-9| -|Тяга горизонтального блокай|45.3-49.3|12-12-12-12| -|Сведение на скамейке|10|12-12-10| -|Тяга гантели одной рукой в стойке|18|12-11-10| - -**23.12.2023 (с59)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами|60-85-110-110-130|15-15-12-12-12| -|Жим гантелей 90⁰|28-32|12-11-10-10| -|Отведение руки в кроссовере|11|12-12-12| -|Разведение рук в пек дек|17|12-12-12-12| - -**27.12.2023 (с60)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-фиолетовая|4-4-4-4| -|Жим лежа|20-40-45|12-12-10-8| -|Тяга штанги к поясу стоя|20-40-45|12-12-12-12| -|Сведение рук в пек дек|37-47-47-37|12-10-10-10| -|Гравитрон|36-57|10-10-7| - -**27.12.2023 (с61)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|57-77|12-12-12| -|Жим ногами|100-125-140|12-12-12-12| -|Жим гантелей 90⁰|24-28|12-12-12-13| -|Разведение рук в стороны|37|12-12-12| -|Разведение рук пек дек|27|11-9-10| - - -**12.01.2024 (соло)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гантели молот|18-20|12-12-12-12| -|Гравитрон|57-47|12-9-7-6| -|Жим гантелей лежа|32|12-12-12-10| -|Сведение рук пек дек|27-37|12-12-10-7| -|Жим от плеч вверх|27|12-12-11-9| - -**15.01.2024 (с63)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|57-47|12-9-7-6| -|Гребная тяга с упором на грудь|37|12-12-12| -|Тяга гантели в наклоне|18|12-12-12-12| -|Жим штанги стля|20|13-12-12| -|Жим гантелей стоя|10х2-10х2-8х2|7-7-12| - -**17.01.2024 (с64)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим штанги 45⁰|40-50|12-11-10-10| -|Сведение рук в пек дек|47-37|8-12-8-12| -|Отжимания||9-7-7-7| -|Разгибание рук в кроссовере|36.2|13-12-12| -|Трицепс машина|67-67-57|12-9-10| - -**19.01.2024 (с65)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|ГАК машина|0-15-20|10-10-10-8| -|Наклоны с прямой спиной|32|12-12-12| -|Разведение рук в стороны|37-47|12-12-12-12| -|Разведение рук в стороны пек дек|27|12-12-10| -|Жим от плеч вверх в тренажёре|27|12-12-10| - -**22.01.2024 (с66)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом||4-4-3| -|Жим штанги лежа|20-40|12-12-12-12| -|Тяга горизонтального блока|49.3|12-12-12| -|Жим гантелей 45⁰|32|12-10-8| -|Тяга горизонтального блока (1 рука)|18-22|12-12-12-12| -|Баттерфляй|47-57|12-12-9| - -**27.01.2024 (с67-7)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|67-72-77|12-12-12| -|Приседания|30|12-12-10| -|Гиперэкстензия|10|12-12-9| -|Жим от плеч сидя|20-25|12-9-8| -|Отведение руки в кроссовкре|9-11|12-12-12| -|Разведение рук в стороны (пек дек)|27|10| - -**29.01.2024 (с68-8)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрор|0-47|3-10-8-8| -|Отжимания|10-10-10-0|8-7-7-10| -|Тяга гантелей к поясу стоя в наклоне|28|12-12-12| -|Сведение рук пек дек (бабочка)|37-37-47-37|15-15-8-11| -|Тяга вертикального блока обратным хватом|49.8|12-10-8| - -**31.01.2024 (с69-9)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Присед на одну ногу|16-20|12-12-12| -|Румынская тяга|32|12-12-12| -|Разведение рук в стороны (дельт-машина)|47-57-47|12-10-12-12| -|Разведение рук в стороны|27|12-12-12-12| -|Жим гантелей 90⁰|28|12-12-11-10| - -**02.02.2024 (с70-10)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|0-47|4-10-10-8| -|Отжимания|10-10-5|10-6-9| -|Тяга горизонтального блока|49.8-54.5|12-10-12| -|Жим от груди сидя|77-87|12-10-10-8| -|Тяга гантели к поясу в стойке|20|12-12-12| - -**19.02.2024 (с71-11)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|47|12-10-8| -|Тяга гантели в наклоне (к поясу одной рукой)|18|12-12-12| -|Тяга горизонтального блока|45-49-45|12-9-12| -|Жим лежа|20-40-45|12-10-10-8| -|Баттерфляй|57-47|10-10-9| -|Брусья широким хватом|47|10-10| - -**21.02.2024 (с72-12)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног|63|12-12-12| -|Румынская тяна|36-40|12-12-12-12| -|Жим гантелей сидя 90⁰|28|12-12-12| -|Разведение рук в стороны|47-47-37-37|12-11-12-12| -|Отведение рук в стороны с гантелями в наклоне 90⁰|14ш|12-12-12| -|||| - -**26.02.2024 (с73-13)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом||5.5-5-4| -|Тяга горизонтального блока|49.9|12-12-12| -|Тяга вертикального блока|45-40|11-12-12| -|Жим гантелей лежа 15⁰|32|12-12-12| -|Баттерфляй|47|12-11-10| -|Отжимания||9-8| - -**28.02.2024 (с74-14)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|72.5|12-12-12-8| -|Жим ногами|75-115|12-12-12-12| -|Сгибание ног лежа|37|12-9-9| -|Жим от плеч вверх|27|12-12-12| -|Разведение рук в стороны|16|12-12-12| -|Разведение рук в стороны в наклоне 90⁰|12|12-12-12| - -**01.03.2024 (с75-15)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-0-47-47|4-3-9-8| -|Тяга штанги в наклоне|20-40|11-12-12-12| -|Тяга одной рукой в кроссовере на колене|41|12-12-12| -|Жим л груди в тренажёре|40|12-12-12| -|Сведение рук пек дек|47-37|6-11-10| -|||| - -**04.03.2024 (с76-16)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Приседания на одной ноге|0-12-14|10-10-10-10| -|Гиперэкстензия|5|12-12-12| -|Отведение рук в стороны||| -|Разведение рук в стороны|14|12-15-15-15| -|Жим от плеч вверх|27|12-12-12| -|Разведение рук в стороны в наклоне 90⁰|12|12-12-12| - -**06.03.2024 (с77-17)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-желтая резинка|3-12-12-12| -|Тяга гантели к корпусу в наклоне же|20|12-12-12| -|Гребная тяга с упором на грудь|37|12-12-12| -|Отжимания|15-10-10|7-8-5| -|Баттерфляй|57-47|10-15-9-11| -|Трицепс сидя|67-77-67|12-10-12| - -**13.03.2024 (с78-18)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|57-47|12-12-12| -|Тяга обратным хватом штанги к поясу|20-30|12-12-12-12| -|Тяга горизонтального блока|49.5-49.5-45.3|12-12-11| -|Жим гантелей лёжа|32-36|12-12-11| -|Жим от груди|30|12-12-12| -|Сведение рук в пек дек|37|9-11| - -**15.03.2024 (с79-19)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|68-68-72.5|12-12-12-12-10| -|Сгибание ног сидя|63-72|15-12-12| -|Разведение рук сидя|27|12-12-11| -|Разведение рук стоя с гантелями|16|12-12-12| -|Жим гантелей 80⁰|28|12-12-11| - -**18.03.2024 (с80-20)** - -| Упражнение | Вес | Подходы | -| -------------------------------------- | ------- | -------------- | -| Тяга вертикального блока | 45-54 | 12-12-10-10 | -| Жим штанги в наклоне | 20-40 | 12-12-12-12 | -| Тяга горизонтального блока одной рукой | 18-22 | 12х2-12х2-12х2 | -| Жим от груди сидя | 40-50 | 12-12-12 | -| Отжимания на брусьях широким хватом | 47-37 | 12-11-10 | - -**28.03.2024 (с81-21)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Тяга вертикального блока|41-50-54|12-12-10-10| -|Тяга штанги в наклоне|30-35|12-12-12-12| -|Гребная тяга сидя одной рукой|15|12-12| -|Жим гантелей лёжа|28-40-40-36|12-10-8-8| -|Жим от груди сидя в тренажёре|67-67-57|12-10-10| -|Брусья (гравитрон)|37-47|6-8| - -**01.04.2024 (с82-22)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-0|5-3| -|Подтягивания обратным хватом|0|5-3| -|Тяга горизонтального блок|41-49.8-49.8-45|12-12-12-12| -|Тяга гантели к поясу в наклоне одной рукой|20|12-12-12| -|Жим от груди сидя в тренажёре|40-45-45-40|12-12-10-10| -|Жим гантелей 45⁰|32|6-12-9| -|Сведение рук пек дек|47-37|9-12-11| - -**05.04.2024 (с83-23)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног|63-77-81-81-77|12-12-12-9-12| -|Сгибание ног лежа|37|12-12-11| -|Тяга руки в кроссовере до|9.6-11-13.6|12-12-12-10| -|Жим от плеч сидя хз|10-20-25-20|12-12-9-10| -|Разведение рук в пек дек|27|12-12-11| -|Подтягивание ног на турнике||10-10-10| - -**08.04.2024 (с84-24)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|Красная резинка|10-8-6-5| -|Тяга горизонтального блока|45-49|12-12-12-12| -|Тяга гантели одной рукой в наклоне|20|12-12-12| -|Жим штанги 45⁰|40-50-55|12-12-10-8| -|Сведение рук пек дек|47-37|8-11-10-10| -|||| - -**10.04.2024 (с85-25)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Приседания|22-30|12-12-12-12| -|Сгибания ног лежа|37|12-12-10| -|Жим гантелей сидя 90⁰|32|12-12-10| -|Отведение рук в стороны с гантелями стоя|16|12-12-12| -|Отведение рук назад в пек дек|27|10-10-9| -|||| - -**12.04.2024 (c86-26)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом||6-5-5| -|Тяга горизонтального блока|49-54-49-49|12-12-12-12| -|Тяга вертикального блока|49-45|9-10-12-10| -|Жим гантелей лежа|28-40|10-10-12-10-9| -|Жим от груди сидя в тренажёре|77|9-10-9| -|Сведение рук пек дек|37-47-37|12-8-11| - -**14.04.2024 (solo-27)**  - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|37|10-10-6| -|Тяга штанги к поясу в наклоне|50|12-12-12| -|тяга горизонтального блока|47|12-12-12| -|Гиперэкстензия|10|12-12-11| -|Тяга вертикального блока|49-49-45|11-9-11| -|Тяга гантели к поясу одной рукой у стойки|20|12-12-12| -|Жим от груди сидя в тренажере|67-77|15-12-7| - -**15.04.2024 (с87-28)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Румынская тяоа|32-38-40|12-12-12-12| -|Разгибание ног|67-77|12-12-12-10| -|Разведение рук в стороны в тренажёре|37-47|15-12-12-12| -|Жим гантелей 60⁰|32-23-28|12-10-10| -|Разведение рук пек дек|27-27-27-17|12-11-10-12| - -**19.04.2024 (с88-29)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтяотвания|0-0-0-47|5-4-3-11| -|Гантели к поясу лежа на скамье|28-36|12-12-12-12| -|Гребная тяга с упором в грудь|37-47|12-11-10| -|Жис сидя в тренажёре|40-50|12-12-12| -|Сведение рук в пек дек зэ|47-37|11-9-12-11| -|||| - -**22.04.2024 (с89-30)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|47-67-77|12-12-12-12| -|Румынская тяга с гантелями|44|12-12-12| -|Жим гантелей 80⁰|28-32|12-12-12-10| -|Разведение рук в стороны|47|12-12-12| -|Разведение рук в наклоне|8х2|12-12-12| -|||| - -**26.04.2024 (с90-31)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом||7-5-4-4| -|Тяга гантелей к поясу лёжа на скамейке 40⁰|32-40|12-12-12-12| -|Тяга вертикального блока|47|12-12-10| -|Отжимания|10|11-9-6| -|Брусья|47|12-12-12| -|Разгибание кик-бек|16-18-16|12-10-12| - -**01.05.2024 (с91-32)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами|50-100-125|12-12-12-12-12| -|Сгибание ног лежа|37-47-37|12-8-10| -|Отведение руки в кроссовере|9-13.6|12-12-12-12| -|Жим гантелей 80⁰|32|12-10-10| -|Разведение рук в налоне|16|12-12-11| -|||| - -**03.05.2024 (с92-33)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Тяга вертикального блока|45.3-54.4|12-12-12-11| -|Тяга штанги в наклоне обратным хватом|30-35-40|12-12-12-12| -|Жим от груди сидя в тренажере|40-60|12-10-9-8| -|Сведение рук сидя пек дек|37|12-12-11| -|Разгибание рук сидя (трицепс машина)|67-87-77|12-11-12| -|||| - -**06.05.2024 (с93-34)** - -| Упражнение | Вес | Подходы | -| ------------------------------------------- | -------- | -------------- | -| Разгибание ног сидя | 50-69-77 | 12-12-12-12-12 | -| Сгибание ног лежа | 37 | 12-12-12-11 | -| Отведение руки в кроссовере (по одной руке) | 13.9 | 12-12-12 | -| Разведение рук в пек дек | 27 | 12-11-12 | -| Жим от плеч вверх | 37 | 12-11-7 | -| | | | - -**08.05.2024 (solo-35)** - -| Упражнение | Вес | Подходы | -| -------------------------------------- | ------------------------------------- | ----------- | -| Гравитрон | 47 | 7 | -| Жим от груди сидя в тренажере | 67 | 12-12-12-12 | -| Тяга к поясу в наклоне | 18 на каждую руку - 20 на каждую руку | 12-12-12 | -| Тяга вертикального блока | 47 | 15-12-12-11 | -| Подъем штанги стоя | 20-20-25-25 | 15-15-7-8 | -| Трицепс машина | 77 | 15-15-12 | -| Разведение рук в кроссовере на трицепс | 27-33-27 | 12-12-12-12 | - - -**21.08.2024 (с123-69)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-37-37|7-10-7| -|Тяга гантелей лежа на животе на скамье 80°|36-48|12-12-12-12| -|Тяга вертикального блока|59|10-9-10| -|Жим от груди сидя в тренажере (рычаги)|40-60-60|12-12-10| -|Баттерфляй|57|12-12-12| -|||| - -**19.08.2024 (с122-68)** - -| **Упражнение** | **Вес** | **Подходы** | -| ------------------------------------ | -------------- | ------------- | -| Жим ногами | 50-100-150-175 | 12-12-12-12-8 | -| Румынская тяга | 22х2 | 12-12-12 | -| Разведение рук в стороны в тренажёре | 47 | 12-12-12 | -| Жим гантелей сидя 80⁰ | 16х2 | 12-12-12 | -| | | | -| | | | - -**14.08.2024 (с121-67)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|47-37|12-9-8-7| -|Тяга штанги в наклоне к груди|40-45-50|12-12-11-12| -|Тяга горизонтального блока одной рукой (поочерёдно)|31.7|12-12-12| -|Жим от груди сидя в тренажере рычаги|50-60|12-10-10-9| -|Баттерфляй|57|12-10-11| -|Брусья узким хватом за|37|9-10| - -**12.08.2024 (с120-66)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|57-87-107|12-12-12-12-12| -|Сгибание ног лёжа|37-47|12-12-10| -|Отведение руки в кроссовере на каждую руку|9.0-13.6|12-12-12-12| -|Жим гантелей сидя 80⁰|18х2|10-9-7| -|Разведение рук пек дек|37|12-10-10| -|||| - -**08.08.2024 (с119-65)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания||8-6-6-4| -|Тяга горизонтального блока|59|10-11-10| -|Тяга гантели к поясу у наклоне каждой рукой|24-28(л)|12-10-10| -|Жим гантелей лёжа на скамье|16х2-26х2-24х2|12-7-11-8| -|Баттерфляй|57|12-12-12| -|Отжимания на брусьях|37|8-10-9| - -**07.08.2024 (с118-64)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Присд на одну ногу (по очереди)|16-20|8-8-8-8| -|Румынская тяга|20х20|12-12-12| -|Разгибание прямых рук сидя|37-37-47-47|12-12-12-12| -|Жим гантелей вверх 80⁰|16х2-18х2|11-8-8-8| -|||| -|||| - -**05.08.2024 (с117-63)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0|8-6-5-4| -|Тяга штанги в наклоне к поясу|40-45|12-12-12| -|Тяга горизонтального блока одной рукой|27-31|12-12-12| -|Жим гантелей лёжа на скамье|16х2-22х2|12-12-12-8| -|Сведения рук пек дек|37|12-12-12| -|||| - -**02.08.2024 (с116-62)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Приседания|16-30|12-12-12-12-12| -|Гиперэкстензия|10|12-12-12| -|Жим от плеч вверх сидя 80⁰|24-32|12-12-12-12| -|Разведение рук в стороны|10х2|12-12-12| -|Разведение рук в стороны пек дек|37|10-10| -|||| - -**31.07.2024 (с115-61)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-0-0- синяя резинка|8-6-5-8| -|Тяга на себя с упором в грудь|57-47-47|12-12-12| -|Тяга горизонтального блока одной рукой|27|12-12-12| -|Сведение рук в пек дек|37-47|12-12-12-9| -|Отжимания|10|9-8-8| -|||| - -**29.07.2024 (с114-60)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Приседания|22-26-30|12-12-12-12| -|Румынская тяна|22х2|12-12-12-12| -|Жим от плеч сидя (рычаги)|20-30-30-25|12-12-10-12| -|Отведение рук стоя с гантелями|10х2|12-12-12-12| - -**26.07.2024 (с113-59)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом|0|9-6-5-5| -|Тяга горизонтального блока дю|47-57|12-12-12-12| -|Тяга гантели к поясу в наклоне|20|12-12-12| -|Отжимания|+10|12-10-8| -|Баттерфляй дю|57-57-47|10-12-12-12| -|||| - -**25.07.2024 (с112-58)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами|50-100-125|13-12-12-12-12| -|Сгибание ног лежа|47-47-37|12-10-12| -|Жим от плеч вверх сидя в тренажере|27-27-37|12-12-12| -|Разведение рук пек дек|27|12-12-12| -|Разведение рук в стороны стоя с гантелями|8х8-9х9|12-12-12-12| -|||| - -**22.07.2024 (с111-57)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|47-37|12-10-8-7| -|Гребная тяга с упором на грудь|47|12-12-12| -|Тяга горизонтального блока одной рукой|27-31|12-12-12| -|Отжимания|10-10-10|12-10-6| -|Сведение рук в пек дек|37|12-12-11| -|Разгибание рук сидя (локти в стороны)|77|12-12-12| - -**17.07.2024 (с110-56)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|58-77-86|12-12-12-10-10| -|Румынская тяга|40|12-12-12-12| -|Отведение рук в стороны стоя с гантелями|8х8-10х10|12-12-12| -|Разведение рук назад пек дек|27|12-12-10| -|Жим гантелей вверх сидя 90⁰|16х16|12-12| -|||| - -**15.07.2024 (с109-55)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания||8-6-4| -|Тяга горизонтального блока|58.6-58.6-54|12-12-12-12| -|Тяга вертикального блока обратным хватом|49.8|12-12-12| -|Жим от груди сидя в тренажёре (блинчики)|67-87|12-12-10-10| -|Брусья узким хватом|47|9-9-9| -|||| - -**10.07.2024 (с108-54)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|67-87|12-12-12-12| -|Румынская тяга|22х2|12-12-12-12| -|Жим от плеч сидя (рычаги)|15х2|12-11-11| -|Разведение рук сидя с прямыми руками в тренажере|37|12-12-12| -|Разведение рук назад в пек дек|27|12-11-11| -|||| - -**08.07.2024 (с107-53)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0|8-6-5-5| -|Тяга горизонтального блока|54.4-58.9|12-12-12-12| -|Жим от плеч (рычаги)|15х2-25х2|12-10-8| -|Сведение рук в пек дек|37|12-12-12| -|Отжимания на брусьях широким хватом|47|12-12-12-12| -|||| - -**28.06.2024 (с106-52)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|63-77-86|12-12-12-12| -|Присед на одну ногу (каждая)|20|12-10-10| -|Разведение рук в стороны стоя|7х2-9х2|15-12-12-12| -|Жим гантелей сидя|14х2|12-12-12| -|Разведение рук в стороны в пекдек|27|12-12-12| -|||| - -**26.06.2024 (с105-51)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания обратным хватом|0|8-6-5| -|Тяга штанги в наклоне|30-40-40-45|12-12-12-12| -|Гребная тяга сидя с упором в грудь (одной рукой рычаг)|10-15|12-12-12-12| -|Жим от груди сидя (блинчики)|20х2-25х2|12-12-11| -|Сведение рук пек дек|47-37|10-14-13| -|Брусья широким хватом|37|12-9-8| - -**21.06.2024 (solo-50)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|72.5-77|12-12-12-12| -|Сгибание ног лежа|37-47-37-37|12-10-12-11| -|Отведение руки в кроссовере (по одной руке)|15|11-12-12-12| -|Разведение рук в пек дек|17-27|12-11-11-8| -|Жим от плеч вверх|37|12-11-9-9| -|разведене рук с гантелями в наклоне||| - -**19.06.2024 (с104-49)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подтягивания|0-0|7-5-5| -|Гребная тяга с упором в грудь|47|12-12-12-12| -|Тяга верхнего блока обратным хватом|47|12-10-12| -|Жим гантелей лежа|32-40|12-12-9| -|Сведение рук пек дек|47|9-9-8| -|Брусья широким хватом|37|9-9-9| - -**17.06.2024 (с103-48)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Сгибание ног сидя|57-72-77|12-12-12-12| -|Жим ногами медленно|75-125|12-12-12-12| -|Отведение руки в кроссовере (одной рукой)|13.6|12-12-12-12| -|Жим от плеч вверх|27|12-12-12| -|Разведение рук в пек дек|17|12-12-12| -|||| - -**12.06.2024 (с102-47)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Тяга вертикального блока|46-54.4|12-12-12-12| -|Тяга штанги в наклоне|40|12-12-12| -|Тяга горизонтального блока одной рукой|22.7-27|12-12-12| -|Жим от груди сидя в тренажёре (рычаги)|40-45|12-12-12-12| -|Жим гантелей лёжа|36-32|10-12| -|||| - -**10.06.2024 (с101-46)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Жим ногами (медленно вниз)|50-100|12-12-12-12| -|Сгибание ног лежа (медленно разгибать)|37|12-10-10-10| -|Жим от плеч сидя (рычаги)|10-20-30|12-12-12-10| -|Разведение рук в стороны стоя с гантелями|8х2|12-12-12| -|Разведение рук в стороны в наклоне с гантелями|7х2-8х2|12-12-12| -|||| - -**07.06.2024 (соло-45)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|0-0-47-47|7-5-12-10| -|Тяга вертикального блока|49.8|11-12-10-12| -|Отведение руки в сторону в кроссовере (каждая рука)|15|12-10-10-12| -|Тяга штанги в наклоне|40-45|12-12-12-10| -|Разведение рук в стороны (дельт-машина)|37-47|15-12-12-12| -|||| - -**05.06.2024 (с100-44)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|57-57-47-47|12-12-12-12| -|Тяга горизонтального блока|47-57|12-12-12| -|Тяга гантели в наклоне одной рукой|22|12-12-12| -|Жим гантелей лежа|32-36|12-12-12-8| -|Сведение рук сидя|37|12-12-12-10| -|||| - -**03.06.2024 (соло-43)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Подъем штанги стоя|20|12-12-15-15| -|Тяга гантели в наклоне (гантеля поочередно)|20|12-12-12-12| -|Жим от плеч вверх сидя в тренажере|27-37|15-11-9–8| -|Тяга горизонтально блока|47|12-12-12-12| -|Жим гантелей лежа на скамье|32-36|12-12-12-11| -|||| - -**25.05.2024 (соло-42)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Тяга горизонтального блока|49.8-54.4-49.8|12-12-12-10| -|Подьем штанги стоя|20|12-12-12-12| -|Жим гантелей лежа|32-36|12-12-12-12| -|Жим от груди в тренажёре (кирпичики)|87-87-77|11-9-12-10| -|Трицепс машина|67-77|12-12-12-12| -|||| - -**20.05.2024 (c98-40)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|47-37|12-9-8| -|Тяга горизонтального блока|48.9-54.4|12-12-12-12| -|Тяга гантели в наклоне|22-22-24|12-12-12| -|Жим от груди сидя в тренажере (около трицепс машины)|77-97-97-87|12-12-10-8| -|Баттерфляй|57-47|10-12-12| -|||| - -**Маргарита Дмитрий в кепке, Святослав сломанный палец** - -**17.05.2024 (c97-39)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Разгибание ног сидя|68-81|12-12-12-12| -|Сгибание ног сидя|72.5-81.2|12-12-12-12| -|Разведение рук в стороны стоя|8х2|12-12-12-12| -|Жим от плеч вверх сидя|37|11-10-10| -|Сгибание рук с гантелями стоя|9х2-10х2|12-12-10| -|Трицепс машина|67-77|12-12-12| - - -**15.05.2024 (c96-38)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|0-0-47|6-4-11-10-9| -|Гребная тяга с упором в грудь как|47|12-12-12| -|Тяга гантели в наклоне|20х2|12-12-12| -|Жим гантелей лежа 30⁰|32-38|12-12-9| -|Брусья в тренажере|37|12-11-10| -|||| - -**13.05.2024 (c95-37)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гакк присед|0-15|12-10-10-10| -|Сгибание ног лежа|47|12-10-10| -|Жим гантелей сидя на скамейке|32-36-32|12-11-10| -|Отведение рук с гантелями стоя|14|12-15-15| -|Махи в наклоне с упором|12-14|12-12-12| -|||| - - - -**10.05.2024 (c94-36)** - -|Упражнение|Вес|Подходы| -|---|---|---| -|Гравитрон|47|12-12-9-10| -|Гребная тяга с упором в грудь|47|12-13-11| -|Тяга гантели в наклоне|20 на каждую руку|12-12-12| -|Жим от груди сидя (блинчики)|30-50|14-12-12-12| -|Сведение рук в пек дек|37|12-12-12| -|||| - diff --git a/apple/examples/full.txt b/apple/examples/full.txt deleted file mode 100644 index 4f7f01a..0000000 --- a/apple/examples/full.txt +++ /dev/null @@ -1,1545 +0,0 @@ -**21.06.2023 (с3)** - -| | | | -| ------------------------- | -------- | ----------- | -| Упражнение | Вес | Подходы | -| Гравитрон | 57-57-77 | 7-6-10 | -| Тяга гантелей в наклоне | 7-8-8-8 | 13-13-12-12 | -| Отжимания | | 8-6-7-5.5 | -| Тяга ногами | 41 | 12-12-12-12 | -| Гиперэкстензия | 0-10-10 | 12-12-12 | -| Подъем коленей на турнике | | 10-10-10 | - -**28.06.2023 (с4)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Тяга вниз||| -|Тяга на себя||| -|Отжимания в горизонтале||| -|Ноги на пузе||| -|Приседания|20|10-10-10| - -**02.07.2023 (с5)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Отжимания||8-8-6| -|Гравитрон|57|8-8-6| -|Горизонтальна тяга на себя|31.7|12-13-12| -|Брусья прямые ноги||10-11-12| -|Тяга ногами вниз|47.3|12-12-12| -|Разгибание ног сидя|37|12-12-12| - -**04.07.2023 (с6)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Жим от груди|37-57-57-57|12-13-12-12| -|Штанга|0-10-10-10|10-10-10-10| -|Тяга верхнего блока|20-30-35|12-12-12-12| -|Жим ногами лежа|75-100-100-100|12-12-10-8| -|Гиперэкстензия|10|10-10-10| - -**07.07.2023 (с7)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Отжимания||6-6-6| -|Подтягивания на резинке||4-4-4| -|Гребная тяга с упором в грудь|20-25|12-12-12-12| -|Приседания|22|10-10-10| -|Сгибание ног лежа|27|12-12-10| -|Скручивания на мяче||12-12-12| - -**14.07.2023 (с8)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|67-57|12-9-8-8| -|Штанга|0-10-15|11-12-10-10-10| -|Разгибание ног|45|11-12-12| -|Сгибание ног лежа|27|12-12-12| -|Подтягивание ног прямых вися на турнике||10-10-10| - -**19.07.2023 (с9)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|77-67|12-11-10-10| -|Наклонная тяга (скамья)|0-10-15|10-10-8-7| -|Гребная тяга|27-37|12-12-12-12| -|Сведение рук сидя|27|12-12-13-13| -|Тяга на себя сверху вниз|37?|12-12-12| -|Брусья-прямые ноги||12-12-12| - -**21.07.2023 (с10)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Сгибание ног|49.9|12-12-12-12| -|Гиперэкстензия|10-15|10-10-10-10| -|Приседания|+20|10-10-10-10| -|Разведение рук в стороны|27|15-15-15| -|Гантели|7-8|12-12-12-12| -|Трицепс-машина (разгибание рук сидя)||12-12| - -**24.07.2023 (с11)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Сгибание ног лежа|17-27|12-12-12-12| -|Приседания|+20|12-12-12| -|Подтягивания|Зеленая резинка|6-6-6| -|Тяга на себя|41|12-12-13| -|Жим от груди (сидя, тренажёр)|67|12-12-12| -|Подтягивание ног на турнике||10-10-10| - -**26.07.2023 (с12)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Штанга лежа|0-10-20|13-12-10-10-9| -|Баттерфляй|47|10-10-9| -|Отжимания||6-5.5| -|Гравитрон|67|10-10-10| -|Гребная тяга с упором в грудь|27|12-12-12| - -**29.07.2023 (solo)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Разгибание ног сидя|45-47|12-13-12| -|Гиперэкстензия|+10|12-12-12| -|Приседания|+20|12-10-10| -|Жим в тренажёре на плечи (силовой тренажёр: жим сидя)|10-15|12-12-12-11| -|Сгибание рук с гантелями стоя ям|7|12-12-13| -|Разгибание рук в тренажёре для трицепса|22.7|12-12-12-12| -|Гравитрон|67-57-67|10-9-7| - -**31.07.2023 (с13)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|77-67|12-12-12| -|Отжимания||10-10-8| -|Тяга на себя|41-45|10-10-10-10| -|Батерфляй|41|12-12-11-10| -|Разведение рук сидя|17|11-10-12| -|Подъем ног на турнике||10-10-10| - -**02.08.2023 (с14)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Разгибание ног сидя|47|20-20-20| -|Жим ногами|75-100|15-12-12-12| -|Сгибание ног сидя|68|12-12| -|Разведение рук в стороны|27-37|15-15-15| -|Разгибание рук сидя|57-57-67|12-12-12| - -**04.08.2023 (с15)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|77-67|15-15-15-10| -|Жим лежа|0-10-20|12-10-10-9| -|Тяга на себя|41-46.8|12-12-12| -|Гантели на лавках|12х12|12-12-12| -|Подъем ног на турнике||10-10-9| - -**07.08.2023 (с16)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Разгибание ног сидя|49.8-58.9|15-12-12| -|Приседания|20|12-12-12| -|Гиперэкстензия|10-15|12-12-12| -|Жим от плеч вверх|27|12-12-12| -|Гантели|8-8; 10-10|12-12-10| - -**10.08.2023 (с17)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Подтягивания|Зеленая резинка|6-5-5| -|Силовой тренажер|67-77|12-12-12| -|Тяга гантели в наклоне|8-8|12-12-12-12| -|Жим гантелей|14х14|12-12-11| -|Гребная тяга с упором в грудь|27|12-12-13| - -**11.08.2023 (с18)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Разгибание ног сидя|48-54|15-12-12-12| -|Сгибание ног лежа|27|13-12-12| -|Жим ногами|100|12-12-12| -|Штанга стоя|20|12-12-12-8| -|Разгибание рук сидя|77|12-12-12-10| -|Подъем ног на турнике||10-10-10| - -**14.08.2023 (с19)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Жим лежа|20-40-45|12-10-8-6| -|Жим гантелей на скамье|14х14|12-11-10-11| -|Баттерфляй|47|12-12-11-10| -|Подтягивания|Красная и фиолетовая|12-11-10| -|Гребная тяга|27-27-37|12-12-10-12| - -**16.08.2023 (с20)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гиперэкстензия|10|12-12-12| -|Жим ногами|60-100|15-12-15-15-15| -|Жим от плеч вверх|27|12-15-15-10| -|Разведение рук в стороны (дельта-машина)|37|13-12-11-10| - -**17.08.2023 (с21)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Тяга рычага к груди|45|12-12-12-12| -|Штанга в наклоне|20-40|12-10-8-6| -|Тяга на себя сидя|45-49|12-12-12-12| -|Жим гантелей лежа|12х12|12-12-12| -|Подтягивание на заднюю дельту в петлях||12-12-12| - -**26.08.2023 (с22)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|77-57-47-37-0|12-12-7-3-1| -|Тяга на себя сидя|41-45.3|12-12-12-12| -|Тяга сидя вниз обратным хватом|45.3|12-12-10| -|Жим от груди сидя|30-40|12-12-11-10| -|Баттерфляй|47|12-10-10| - -**28.08.2023 (с23)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Разгибание ног сидя|49.8-49.8-54.4-54.4|12-12-12-12| -|Сгибание ног лежа|27|12-15-15| -|Приседания|30|10-10-10| -|Жим гантелей сидя|24|10-10-10-10| -|Разведение рук в стороны|37|12-12-12| - -**30.08.2023 (с24)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Тяга вниз сидя|36-42|12-12-12-12| -|Тяга Т гриф|10|12-12-10| -|Жим лежа|20-30-40|12-12-12-10-11| -|Баттерфляй|37|12-12-12-12| -|Отжимания на брусьях|47|7-7-7-8| - -**01.09.2023 (с25)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Разгибание ног сидя|54.4 х3 - 58.9|12-12-12-12| -|Жим ногами|100-120|12-12-12-12-12| -|Жим от плеч сидя|10-15|12-12-12-12| -|Тяга штанги стоя|20|12-12-12-12| -|Разгибание рук сидя|77|12-11-10| - -**04.09.2023 (с26)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|57|12-10-8-8| -|Тяга на себя сидя|45.3|12-15-12-| -|Тяга одной рукой|18|(10-12)-(12-12)-(12-12)| -|Жим гантелей сидя|32|10-11-9| -|Отжимания||8-7-8| -|Баттерфляй|47|12-12-12| - -**06.09.2023 (с27)** - -| | | | -| --------------------------- | ----- | ----------- | -| Упражнение | Вес | Подходы | -| Разгибание ног сидя | 45-58 | 20-12-12-12 | -| Приседания | 28 | 12-12-12 | -| Отведение руки в сторону | 9 | 12-12-12 | -| Жим плечами вверх сидя | 27 | 12-10-10 | -| Жим гантелей стоя | 9х9 | 12-12-10 | -| Подтягивание ног на ручнике | | 10-10-10 | - -**08.09.2023 (с28)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Обратные подтягивания|Фиолетовая резинка|5-4-4| -|Тяга на себя сидя|46-49|12-10-10-10| -|Гребная тяга сидя с упором в грудт|10|12-12-12| -|Жим гантелей лежа|16х16|12-12-12-12| -|Отжимания на брусьях|+47|12-9-9| - -**11.09.2023 (с29)** - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Жим ногами|50-100-125-150|15-12-12-12-12-10| -|Гипекстензия|12|12-12-12| -|Разведение рук в стрроны|37|15-15-15| -|Разгибание рук сидя|77|12-12-12-10| -|Гантели-молот|9|12-12-12-12| - -**15.09.2023 (с30)**  - -| | | | -|---|---|---| -|Упражнение|Вес|Подходы| -|Гравитрон|67-77|12-12-9-8| -|Гребная тяга сидя с упором в грудь|30|9-10-10-10| -|Тяга вниз сидя|45.3|10-10-10-10| -|Жим гантелей лежа|28-32|12-12-12-12| -|Сведение рук сидя|37-27|10-9-12| - -**18.09.2023 (с31)** - -| | | | -| ------------------------ | ----- | -------------- | -| Упражнение | Вес | Подходы | -| Сгибание ног лежа | 27-37 | 15-12-12-12 | -| Приседания | 22-28 | 12-12-12-12 | -| Разведение рук в стороны | 37 | 15-15-15-15 | -| Разведение рук сидя | 17 | 12-12-12 | -| Разгибание рук сидя | 77 | 12-12-12 | -| Гантели | 18 | 10х2-10х2-10х2 | - -**21.09.2023 (с32)** - -| | | | -| ----------------------------------------------- | ----- | ----------- | -| Упражнение | Вес | Подходы | -| Гравитрон | 57 | 12-11-10 | -| Гребная тяга с упором на грудь | 27-30 | 12-12-12 | -| Тяга вниз обратным хватом сидя (фитнес станция) | 37 | 15-15 | -| Жим гантелей | 28-32 | 12-12-11-10 | -| Отжимания | | 8-8-8 | - -**23.09.2023 (с33)** - -| | | | -| ------------------------ | -------------- | ----------- | -| Упражнение | Вес | Подходы | -| Разгибание ног сидя | 49.8-58.9-63.4 | 12-12-12-12 | -| Гакк присед | 0 | 12-12-12 | -| Гиперэкстензия | 10 | 12-12-12 | -| Разведение рук в стороны | 37-37-47-47 | 12-15-12-12 | -| Жим от плеч вверх | 27 | 12-12-11-10 | - -**23.09.2023 (с34)** - -| | | | -| ----------------------------- | ------------------- | ----------- | -| **Упражнение** | **Вес** | **Подходы** | -| Подтягивания обратным хватом | 0-синяя резинка х 3 | 2-6-6-5 | -| Гребная тяга сидя (одна рука) | 12.5 | 12-12-12 | -| Тяга верхнего блока | 25-30-30 | 12-12-12 | -| Жим от груди сидя | 30-35-35-35 | 12-12-12-12 | -| Баттерфляй | 47 | 12-12-12 | -| Отжимания на брусьях | -47 | 8-8-8 | - -**02.10.2023 (solo)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя (4х10)|58.9-63.4|12-10-10-12| -|Жим ногами (3х15)|125|12-12-12-10| -|Сгибание ног сидя (3х12)|72|12-12-12| -|Жим в тренажере на плечи блочный (3х12)|20-25|12-12-7| -|Отведение назад в тренажере пэк дэк (3х12)|17|12-15-12| -|Сгибание со штангой стоя (3х12)|20|12-12-11| -|Разгибание рук в трицепс машине (3х10)|67-77|15-12-12| - -**04.10.2023 (с36)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|Синяя резинка|7-5-4-4| -|Горизонтальная тяга блока|45|12-12-12-12| -|Тяга вертикального блока обратным хватом|49.8х2-45|10-10-9| -|Жим от груди сидя|67|15-15-12| -|Отжимания|+5|4-5-4| -|Подъёмы ног на турнике||10-10-8| - -**06.10.2023 (с37)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Сгибание ног лежа|27-37|12-12-12-10| -|Гакк машина|0-10|12-12-12-12| -|Пек дек (отведение назад)|17|15-15-15-15| -|Отведение руки стоя снизу вверх|6.5|12-15-14| -|Жим от плеч вверх|27|12-12-12| - -**09.10.2023 (с38)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом|0|3-2-2| -|Тяга т грифа|10-12.5|12-12-12-10| -|Тяга вертикального блока|45.3|12-12-10| -|Жим от груди в тренажере сидя|67-77|12-12-12-12| -|Отжимания на брусьях|-47|10-8-10-10| - -**11.10.2023 (с39)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Сгибание ног сидя|58-58-68|12-12-10-10-10| -|Гиперэкстензия|10|12-12-12| -|Приседания|30|10-10-10| -|Отведение руки стоя|9|12-12-12| -|Жим от плеч вверх|27|12-12-10| -|Отведение в рук в наклоне||12-12-12| - -**16.10.2023 (с40)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|47|9-6-7-6| -|Тяга гантелей в наклоне|12х12|12-12-12-12| -|Тяга верхнего блока|30|12-12-12| -|Жим гантелей 45⁰|14х14|12-12-12-12| -|Отжимания на брусьях|-47|11-12-9| - -**18.10.2023 (с41)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гакк машина|0-15|12-12-12-11| -|Сгибание ног сидя|58.9-68|15-12-12-12| -|Разведение рук стоя|6-7 х2|12-12-12-12| -|Жим от плеч вверх|27|12-12-12-10| -|Подъем ног на турнике||10-10-9| - -**20.10.2023 (solo)** - -| | | | | -|---|---|---|---| -|**Упражнение**|**Вес**|**Подходы**|Цель| -|Подтягивания в гравитроне|57|15-12-10-10|15-15-15-15| -|Тяга вертикального блока обратным хватом|36-41-41-45.3|12-15-15|12-12-12| -|Тяга горизонтального блока узким хватом|37-47|15-10-12-10|10-10-10-10| -|Жим гантелей лежа|16х16|15-12-12-11|12-12-12-12| -|Сведение рук в тренажере (пек-дек)|27-27-37-37|15-15-15-15|15-15-15-15| -|Подъем ног на турнике||10-8-7|10-10-10| - -**23.10.2023 (solo)** - -| | | | | -|---|---|---|---| -|**Упражнение**|**Вес**|**Подходы**|Цель| -|Жим ногами|125-135-135-140|12-12-12-12|15-12-12-10| -|Гиперэкстензия|10|12-12-12-12|12-12-12-12| -|Отведение в кроссовере одной рукой|9|12-12-12-12|12-12-12-12| -|Отведение назад в тренажере пек дэк|17|15-12-12-12|12-12-12-12| -|Жим в тренажёре вверх|27|15-12-12-9|12-12-12| - -**25.10.2023 (с42)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-синяя резинка|2-10-7-7| -|Тяга штанги в наклоне к поясу обратным хватом|25-30|12-12-12-12| -|Тяга вертикального блока|37-47|12-10-10-10| -|Баттерфляй|47-57|15-12-9-10| -|Жим гантелей на скамье 45⁰|32-32-28-28|11-10-10| - -**27.10.2023 (с43)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|50-100-125-150-150|15-12-12-10-10| -|Болгарский присед|15-12-12|0-3-3| -|Отведение в кроссовере одной рукой|9|12-12-12-12| -|Отведение назад в тренажере пек дек|17|12-12-12| -|Скручивания на мяче||12-12-12| - -**27.10.2023 (с44)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания в гравитроне|57-57-47|12-12-8-8| -|Тяга гантели к поясу|16|12-12-12-12| -|Тяга вертикального блока обратным хватом|49.8|10-9-9| -|Гребная тяга с упором на грудь|37|12-12-12| -|Отжимания на брусьях|47|12-12-11| -|Разгибание из за головы|6|10-10-10| - -**01.11.2023 (с45)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Сведение рук в тренажёре пёк дек|27-37|15-15-12-11| -|Жим гантелей лежа|14х2-16х2|12-12-12-10| -|Отжимания на брусьях широким хватом|47|10-10-8| -|Разведение рук в стороны (дельт-машина)|37|15-15-15-15| -|Жим в тренажере вверх|27|10-10-10-8| -|||| - -**06.11.2023 (с46)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом|0|4-3-4| -|Гребная тяга с упором в грудь|10-15|12-12-12-12| -|Тяга горизонтального блока|45-45-45-40|12-12-12-12| -|Разгибание спины|67-77|15-12-12| -|Отжимания на брусьях узким хватом|37|10-10-7| -|Разгибание локтей в наклоне|5х2|12-12-12| - -**10.11.2023 (с48)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног|49-63-68|12-12-12-10| -|Жим ногами|90-120-130|12-12-12-12| -|Сгибание ног|58-68|12-12-12-12| -|Разведение рук в стороны с гантелям|7х2-8х2|15-15-15-15| -|Разведение рук в наклоне|5х2|15-15-15| -|||| - -**13.11.2023 (с49)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом|0-0-красная|4-3-6-4| -|Тяга в наклоне|20-30|12-12-12-12| -|Тяга вертикального блока|45-45-40|10-10-12| -|Гребная тяга  упором в грудьс|37|12-12-12| -|Отжимания на брусьях|37|12-12-8| -|Разгибание рук стоя с канатом|27|12-12-12| - -**15.11.2023 (с50)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим лежа|0-20-25-27.5|15-10-10-10| -|Жим сидя 45⁰|32-32-28|10-10-11| -|Баттерфляй|47|15-15-14| -|Бицепс на лавке 45⁰|14-16|15-15-12| -|Молот трицепс стоя|18|12-12-12| -|||| - -**17.11.2023 (с51)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|57-63-72|15-12-10-10| -|Приседания|+30|10-10-10| -|Гиперэкстензия|+12|12-12-12| -|Отведение руки стоя|9-11|12-12-12-12| -|Жим вверх 80⁰|28|9-8-10-10| -|||| - -**20.11.2023 (с52)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|Красная|8-6-5| -|Тяга штанги в наклоне|25-30|12-12-12-12| -|Тяга вертикального блока|47|12-11-9-8| -|Отжимания на брусьях|0|6-7-6| -|Трицепс вниз у стойки|39|15-12-12-12| -|||| - -**22.11.2023 (solo)**  - -| | | | | -|---|---|---|---| -|**Упражнение**|**Вес**|**Подходы**|**Цель**| -|Жим гантелей|32|12-12-12-12|10-10-10-10| -|Отжимания|-|9-10-8-8|10-10-10-10| -|Сведение рук в тренажере|27-37|15-15-15-15|15-15-15-15| -|Сгибание со штангой стоя|20|12-12-10-10|10-10-10-10| -|Сгибание с гантелями молот вместе|18-20|12-12-11-11|12-12-12-12| -|Пресс на шаре||15-12-12-12|15-15-15-15| - -**24.11.2023 (с53)**  - -| | | | -| -------------------------------- | ------- | ----------- | -| **Упражнение** | **Вес** | **Подходы** | -| Гакк машина | 0-15-20 | 10-10-10-10 | -| Сгибание ног сидя | 77 | 15-15-14 | -| Разведение рук в стороны | 37-47 | 15-12-12-12 | -| Пек дек разведение рук в стороны | 27 | 10-8-8 | -| Жим гантелей вверх 90⁰ | 24 | 12-12-12-12 | -| | | | - -**27.11.2023 (с54)**  - -| | | | -| ----------------------------- | ----------------- | ------------- | -| **Упражнение** | **Вес** | **Подходы** | -| Гравитрон | 57-47 | 10-10-8-7 | -| Тяга штанги в наклоне | 20-40 | 12-12-12-12-8 | -| Тяга одной рукой в кроссовере | 31.7-36.2 | 12-12-12-12 | -| Брусья | 0-0-черная-черная | 6-6-7-7 | -| Трацепс | 18-11 | 6-8-9 | - -**29.11.2023 (с55)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим штанги сидя 45⁰|40-50|12-11-10-10| -|Жим гантелей лежа|32-36|12-8-10| -|Сведение рук в пек дек|37|12-12-12-12| -|Жим штанги стоя|20|12-11-9-9| -|Молоты|20-20-18-18-18|10-9-12| - -**01.12.2023 (с56)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Приседания|22-30-30-34|12-12-12-10| -|Сгибание ног лёжа|37-47|12-8-8-8| -|Жим от плеч сидя зэ|20-25|12-12-9-10| -|Отведение рук в кроссовере|9-13|12-10-10| -|Разведение рук в пек дек|27|10-8-8| - -**11.12.2023 (с57)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|57-47|12-9-8-6| -|Тяга гантелей в наклоне|20-24|12-12-12-12| -|Тяга вертикального блока обратным хватом|37|12-12-12-12-12| -|Отжимания на брусьях|0|7-6-5-5| -|Молот назад двумя руками|14|11-9-10| - -**13.12.2023 (соло)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим гантелей|32|15-15-11-11| -|Сведение рук в тренажере|27|15-15-15-15| -|Отжимания||9-7-7-6| -|Сгибания рук со штангой стоя|20-25-20-20|12-8-11-10| -|Сгибание гантелей в стиле молот одновременно|18|12-15-13-14| - -**15.12.2023 (соло)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|100-110-120-130|12-12-12-12| -|Сгибание ног сидя|77|15-12-12-10| -|Отведение рук с гантелями стоя|18|12-12-12-12| -|Жим от плечей вверх|27|15-12-9-9| -|Отведение назад в пек дек|17-27-27-17|15-11-10-12| - -**20.12.2023 (с58)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания||4.5-4-3-2.5| -|Жис гантелей лежа|32-36|12-12-10-9| -|Тяга горизонтального блокай|45.3-49.3|12-12-12-12| -|Сведение на скамейке|10|12-12-10| -|Тяга гантели одной рукой в стойке|18|12-11-10| - -**23.12.2023 (с59)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|60-85-110-110-130|15-15-12-12-12| -|Жим гантелей 90⁰|28-32|12-11-10-10| -|Отведение руки в кроссовере|11|12-12-12| -|Разведение рук в пек дек|17|12-12-12-12| - -**27.12.2023 (с60)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-фиолетовая|4-4-4-4| -|Жим лежа|20-40-45|12-12-10-8| -|Тяга штанги к поясу стоя|20-40-45|12-12-12-12| -|Сведение рук в пек дек|37-47-47-37|12-10-10-10| -|Гравитрон|36-57|10-10-7| - -**27.12.2023 (с61)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|57-77|12-12-12| -|Жим ногами|100-125-140|12-12-12-12| -|Жим гантелей 90⁰|24-28|12-12-12-13| -|Разведение рук в стороны|37|12-12-12| -|Разведение рук пек дек|27|11-9-10| - -**03.01.2024 (с62)** - -**12.01.2024 (соло)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гантели молот|18-20|12-12-12-12| -|Гравитрон|57-47|12-9-7-6| -|Жим гантелей лежа|32|12-12-12-10| -|Сведение рук пек дек|27-37|12-12-10-7| -|Жим от плеч вверх|27|12-12-11-9| - -**15.01.2024 (с63)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|57-47|12-9-7-6| -|Гребная тяга с упором на грудь|37|12-12-12| -|Тяга гантели в наклоне|18|12-12-12-12| -|Жим штанги стля|20|13-12-12| -|Жим гантелей стоя|10х2-10х2-8х2|7-7-12| - -**17.01.2024 (с64)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим штанги 45⁰|40-50|12-11-10-10| -|Сведение рук в пек дек|47-37|8-12-8-12| -|Отжимания||9-7-7-7| -|Разгибание рук в кроссовере|36.2|13-12-12| -|Трицепс машина|67-67-57|12-9-10| - -**19.01.2024 (с65)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|ГАК машина|0-15-20|10-10-10-8| -|Наклоны с прямой спиной|32|12-12-12| -|Разведение рук в стороны|37-47|12-12-12-12| -|Разведение рук в стороны пек дек|27|12-12-10| -|Жим от плеч вверх в тренажёре|27|12-12-10| - -**22.01.2024 (с66)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом||4-4-3| -|Жим штанги лежа|20-40|12-12-12-12| -|Тяга горизонтального блока|49.3|12-12-12| -|Жим гантелей 45⁰|32|12-10-8| -|Тяга горизонтального блока (1 рука)|18-22|12-12-12-12| -|Баттерфляй|47-57|12-12-9| - -**27.01.2024 (с67-7)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|67-72-77|12-12-12| -|Приседания|30|12-12-10| -|Гиперэкстензия|10|12-12-9| -|Жим от плеч сидя|20-25|12-9-8| -|Отведение руки в кроссовкре|9-11|12-12-12| -|Разведение рук в стороны (пек дек)|27|10| - -**29.01.2024 (с68-8)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрор|0-47|3-10-8-8| -|Отжимания|10-10-10-0|8-7-7-10| -|Тяга гантелей к поясу стоя в наклоне|28|12-12-12| -|Сведение рук пек дек (бабочка)|37-37-47-37|15-15-8-11| -|Тяга вертикального блока обратным хватом|49.8|12-10-8| - -**31.01.2024 (с69-9)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Присед на одну ногу|16-20|12-12-12| -|Румынская тяга|32|12-12-12| -|Разведение рук в стороны (дельт-машина)|47-57-47|12-10-12-12| -|Разведение рук в стороны|27|12-12-12-12| -|Жим гантелей 90⁰|28|12-12-11-10| - -**02.02.2024 (с70-10)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|0-47|4-10-10-8| -|Отжимания|10-10-5|10-6-9| -|Тяга горизонтального блока|49.8-54.5|12-10-12| -|Жим от груди сидя|77-87|12-10-10-8| -|Тяга гантели к поясу в стойке|20|12-12-12| - -**19.02.2024 (с71-11)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|47|12-10-8| -|Тяга гантели в наклоне (к поясу одной рукой)|18|12-12-12| -|Тяга горизонтального блока|45-49-45|12-9-12| -|Жим лежа|20-40-45|12-10-10-8| -|Баттерфляй|57-47|10-10-9| -|Брусья широким хватом|47|10-10| - -**21.02.2024 (с72-12)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног|63|12-12-12| -|Румынская тяна|36-40|12-12-12-12| -|Жим гантелей сидя 90⁰|28|12-12-12| -|Разведение рук в стороны|47-47-37-37|12-11-12-12| -|Отведение рук в стороны с гантелями в наклоне 90⁰|14ш|12-12-12| -|||| - -**26.02.2024 (с73-13)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом||5.5-5-4| -|Тяга горизонтального блока|49.9|12-12-12| -|Тяга вертикального блока|45-40|11-12-12| -|Жим гантелей лежа 15⁰|32|12-12-12| -|Баттерфляй|47|12-11-10| -|Отжимания||9-8| - -**28.02.2024 (с74-14)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|72.5|12-12-12-8| -|Жим ногами|75-115|12-12-12-12| -|Сгибание ног лежа|37|12-9-9| -|Жим от плеч вверх|27|12-12-12| -|Разведение рук в стороны|16|12-12-12| -|Разведение рук в стороны в наклоне 90⁰|12|12-12-12| - -**01.03.2024 (с75-15)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-0-47-47|4-3-9-8| -|Тяга штанги в наклоне|20-40|11-12-12-12| -|Тяга одной рукой в кроссовере на колене|41|12-12-12| -|Жим л груди в тренажёре|40|12-12-12| -|Сведение рук пек дек|47-37|6-11-10| -|||| - -**04.03.2024 (с76-16)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Приседания на одной ноге|0-12-14|10-10-10-10| -|Гиперэкстензия|5|12-12-12| -|Отведение рук в стороны||| -|Разведение рук в стороны|14|12-15-15-15| -|Жим от плеч вверх|27|12-12-12| -|Разведение рук в стороны в наклоне 90⁰|12|12-12-12| - -**06.03.2024 (с77-17)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-желтая резинка|3-12-12-12| -|Тяга гантели к корпусу в наклоне же|20|12-12-12| -|Гребная тяга с упором на грудь|37|12-12-12| -|Отжимания|15-10-10|7-8-5| -|Баттерфляй|57-47|10-15-9-11| -|Трицепс сидя|67-77-67|12-10-12| - -**13.03.2024 (с78-18)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|57-47|12-12-12| -|Тяга обратным хватом штанги к поясу|20-30|12-12-12-12| -|Тяга горизонтального блока|49.5-49.5-45.3|12-12-11| -|Жим гантелей лёжа|32-36|12-12-11| -|Жим от груди|30|12-12-12| -|Сведение рук в пек дек|37|9-11| - -**15.03.2024 (с79-19)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|68-68-72.5|12-12-12-12-10| -|Сгибание ног сидя|63-72|15-12-12| -|Разведение рук сидя|27|12-12-11| -|Разведение рук стоя с гантелями|16|12-12-12| -|Жим гантелей 80⁰|28|12-12-11| - -**18.03.2024 (с80-20)** - -| | | | -| -------------------------------------- | ------- | -------------- | -| **Упражнение** | **Вес** | **Подходы** | -| Тяга вертикального блока | 45-54 | 12-12-10-10 | -| Жим штанги в наклоне | 20-40 | 12-12-12-12 | -| Тяга горизонтального блока одной рукой | 18-22 | 12х2-12х2-12х2 | -| Жим от груди сидя | 40-50 | 12-12-12 | -| Отжимания на брусьях широким хватом | 47-37 | 12-11-10 | - -**28.03.2024 (с81-21)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Тяга вертикального блока|41-50-54|12-12-10-10| -|Тяга штанги в наклоне|30-35|12-12-12-12| -|Гребная тяга сидя одной рукой|15|12-12| -|Жим гантелей лёжа|28-40-40-36|12-10-8-8| -|Жим от груди сидя в тренажёре|67-67-57|12-10-10| -|Брусья (гравитрон)|37-47|6-8| - -**01.04.2024 (с82-22)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-0|5-3| -|Подтягивания обратным хватом|0|5-3| -|Тяга горизонтального блок|41-49.8-49.8-45|12-12-12-12| -|Тяга гантели к поясу в наклоне одной рукой|20|12-12-12| -|Жим от груди сидя в тренажёре|40-45-45-40|12-12-10-10| -|Жим гантелей 45⁰|32|6-12-9| -|Сведение рук пек дек|47-37|9-12-11| - -**05.04.2024 (с83-23)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног|63-77-81-81-77|12-12-12-9-12| -|Сгибание ног лежа|37|12-12-11| -|Тяга руки в кроссовере до|9.6-11-13.6|12-12-12-10| -|Жим от плеч сидя хз|10-20-25-20|12-12-9-10| -|Разведение рук в пек дек|27|12-12-11| -|Подтягивание ног на турнике||10-10-10| - -**08.04.2024 (с84-24)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|Красная резинка|10-8-6-5| -|Тяга горизонтального блока|45-49|12-12-12-12| -|Тяга гантели одной рукой в наклоне|20|12-12-12| -|Жим штанги 45⁰|40-50-55|12-12-10-8| -|Сведение рук пек дек|47-37|8-11-10-10| -|||| - -**10.04.2024 (с85-25)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Приседания|22-30|12-12-12-12| -|Сгибания ног лежа|37|12-12-10| -|Жим гантелей сидя 90⁰|32|12-12-10| -|Отведение рук в стороны с гантелями стоя|16|12-12-12| -|Отведение рук назад в пек дек|27|10-10-9| -|||| - -**12.04.2024 (c86-26)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом||6-5-5| -|Тяга горизонтального блока|49-54-49-49|12-12-12-12| -|Тяга вертикального блока|49-45|9-10-12-10| -|Жим гантелей лежа|28-40|10-10-12-10-9| -|Жим от груди сидя в тренажёре|77|9-10-9| -|Сведение рук пек дек|37-47-37|12-8-11| - -**14.04.2024 (solo-27)**  - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|37|10-10-6| -|Тяга штанги к поясу в наклоне|50|12-12-12| -|тяга горизонтального блока|47|12-12-12| -|Гиперэкстензия|10|12-12-11| -|Тяга вертикального блока|49-49-45|11-9-11| -|Тяга гантели к поясу одной рукой у стойки|20|12-12-12| -|Жим от груди сидя в тренажере|67-77|15-12-7| - -**15.04.2024 (с87-28)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Румынская тяоа|32-38-40|12-12-12-12| -|Разгибание ног|67-77|12-12-12-10| -|Разведение рук в стороны в тренажёре|37-47|15-12-12-12| -|Жим гантелей 60⁰|32-23-28|12-10-10| -|Разведение рук пек дек|27-27-27-17|12-11-10-12| - -**19.04.2024 (с88-29)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтяотвания|0-0-0-47|5-4-3-11| -|Гантели к поясу лежа на скамье|28-36|12-12-12-12| -|Гребная тяга с упором в грудь|37-47|12-11-10| -|Жис сидя в тренажёре|40-50|12-12-12| -|Сведение рук в пек дек зэ|47-37|11-9-12-11| -|||| - -**22.04.2024 (с89-30)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|47-67-77|12-12-12-12| -|Румынская тяга с гантелями|44|12-12-12| -|Жим гантелей 80⁰|28-32|12-12-12-10| -|Разведение рук в стороны|47|12-12-12| -|Разведение рук в наклоне|8х2|12-12-12| -|||| - -**26.04.2024 (с90-31)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом||7-5-4-4| -|Тяга гантелей к поясу лёжа на скамейке 40⁰|32-40|12-12-12-12| -|Тяга вертикального блока|47|12-12-10| -|Отжимания|10|11-9-6| -|Брусья|47|12-12-12| -|Разгибание кик-бек|16-18-16|12-10-12| - -**01.05.2024 (с91-32)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|50-100-125|12-12-12-12-12| -|Сгибание ног лежа|37-47-37|12-8-10| -|Отведение руки в кроссовере|9-13.6|12-12-12-12| -|Жим гантелей 80⁰|32|12-10-10| -|Разведение рук в налоне|16|12-12-11| -|||| - -**03.05.2024 (с92-33)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Тяга вертикального блока|45.3-54.4|12-12-12-11| -|Тяга штанги в наклоне обратным хватом|30-35-40|12-12-12-12| -|Жим от груди сидя в тренажере|40-60|12-10-9-8| -|Сведение рук сидя пек дек|37|12-12-11| -|Разгибание рук сидя (трицепс машина)|67-87-77|12-11-12| -|||| - -**06.05.2024 (с93-34)** - -| | | | -| ------------------------------------------- | -------- | -------------- | -| **Упражнение** | **Вес** | **Подходы** | -| Разгибание ног сидя | 50-69-77 | 12-12-12-12-12 | -| Сгибание ног лежа | 37 | 12-12-12-11 | -| Отведение руки в кроссовере (по одной руке) | 13.9 | 12-12-12 | -| Разведение рук в пек дек | 27 | 12-11-12 | -| Жим от плеч вверх | 37 | 12-11-7 | -| | | | - -**21.08.2024 (с123-69)** - -| | | | -| ------------------------------------------ | -------- | ----------- | -| **Упражнение** | **Вес** | **Подходы** | -| Подтягивания | 0-37-37 | 7-10-7 | -| Тяга гантелей лежа на животе на скамье 80° | 36-48 | 12-12-12-12 | -| Тяга вертикального блока | 59 | 10-9-10 | -| Жим от груди сидя в тренажере (рычаги) | 40-60-60 | 12-12-10 | -| Баттерфляй | 57 | 12-12-12 | -| | | | - -**19.08.2024 (с122-68)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|50-100-150-175|12-12-12-12-8| -|Румынская тяга|22х2|12-12-12| -|Разведение рук в стороны в тренажёре Дж|47|12-12-12| -|Жим гантелей сидя 80⁰|16х2|12-12-12| -|||| -|||| - -**14.08.2024 (с121-67)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|47-37|12-9-8-7| -|Тяга штанги в наклоне к груди|40-45-50|12-12-11-12| -|Тяга горизонтального блока одной рукой (поочерёдно)|31.7|12-12-12| -|Жим от груди сидя в тренажере рычаги|50-60|12-10-10-9| -|Баттерфляй|57|12-10-11| -|Брусья узким хватом за|37|9-10| - -**12.08.2024 (с120-66)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|57-87-107|12-12-12-12-12| -|Сгибание ног лёжа|37-47|12-12-10| -|Отведение руки в кроссовере на каждую руку|9.0-13.6|12-12-12-12| -|Жим гантелей сидя 80⁰|18х2|10-9-7| -|Разведение рук пек дек|37|12-10-10| -|||| - -**08.08.2024 (с119-65)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания||8-6-6-4| -|Тяга горизонтального блока|59|10-11-10| -|Тяга гантели к поясу у наклоне каждой рукой|24-28(л)|12-10-10| -|Жим гантелей лёжа на скамье|16х2-26х2-24х2|12-7-11-8| -|Баттерфляй|57|12-12-12| -|Отжимания на брусьях|37|8-10-9| - -**07.08.2024 (с118-64)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Присд на одну ногу (по очереди)|16-20|8-8-8-8| -|Румынская тяга|20х20|12-12-12| -|Разгибание прямых рук сидя|37-37-47-47|12-12-12-12| -|Жим гантелей вверх 80⁰|16х2-18х2|11-8-8-8| -|||| -|||| - -**05.08.2024 (с117-63)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0|8-6-5-4| -|Тяга штанги в наклоне к поясу|40-45|12-12-12| -|Тяга горизонтального блока одной рукой|27-31|12-12-12| -|Жим гантелей лёжа на скамье|16х2-22х2|12-12-12-8| -|Сведения рук пек дек|37|12-12-12| -|||| - -**02.08.2024 (с116-62)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Приседания|16-30|12-12-12-12-12| -|Гиперэкстензия|10|12-12-12| -|Жим от плеч вверх сидя 80⁰|24-32|12-12-12-12| -|Разведение рук в стороны|10х2|12-12-12| -|Разведение рук в стороны пек дек|37|10-10| -|||| - -**31.07.2024 (с115-61)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-0-0- синяя резинка|8-6-5-8| -|Тяга на себя с упором в грудь|57-47-47|12-12-12| -|Тяга горизонтального блока одной рукой|27|12-12-12| -|Сведение рук в пек дек|37-47|12-12-12-9| -|Отжимания|10|9-8-8| -|||| - -**29.07.2024 (с114-60)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Приседания|22-26-30|12-12-12-12| -|Румынская тяна|22х2|12-12-12-12| -|Жим от плеч сидя (рычаги)|20-30-30-25|12-12-10-12| -|Отведение рук стоя с гантелями|10х2|12-12-12-12| - -**26.07.2024 (с113-59)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом|0|9-6-5-5| -|Тяга горизонтального блока дю|47-57|12-12-12-12| -|Тяга гантели к поясу в наклоне|20|12-12-12| -|Отжимания|+10|12-10-8| -|Баттерфляй дю|57-57-47|10-12-12-12| -|||| - -**25.07.2024 (с112-58)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|50-100-125|13-12-12-12-12| -|Сгибание ног лежа|47-47-37|12-10-12| -|Жим от плеч вверх сидя в тренажере|27-27-37|12-12-12| -|Разведение рук пек дек|27|12-12-12| -|Разведение рук в стороны стоя с гантелями|8х8-9х9|12-12-12-12| -|||| - -**22.07.2024 (с111-57)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|47-37|12-10-8-7| -|Гребная тяга с упором на грудь|47|12-12-12| -|Тяга горизонтального блока одной рукой|27-31|12-12-12| -|Отжимания|10-10-10|12-10-6| -|Сведение рук в пек дек|37|12-12-11| -|Разгибание рук сидя (локти в стороны)|77|12-12-12| - -**17.07.2024 (с110-56)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|58-77-86|12-12-12-10-10| -|Румынская тяга|40|12-12-12-12| -|Отведение рук в стороны стоя с гантелями|8х8-10х10|12-12-12| -|Разведение рук назад пек дек|27|12-12-10| -|Жим гантелей вверх сидя 90⁰|16х16|12-12| -|||| - -**15.07.2024 (с109-55)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания||8-6-4| -|Тяга горизонтального блока|58.6-58.6-54|12-12-12-12| -|Тяга вертикального блока обратным хватом|49.8|12-12-12| -|Жим от груди сидя в тренажёре (блинчики)|67-87|12-12-10-10| -|Брусья узким хватом|47|9-9-9| -|||| - -**10.07.2024 (с108-54)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|67-87|12-12-12-12| -|Румынская тяга|22х2|12-12-12-12| -|Жим от плеч сидя (рычаги)|15х2|12-11-11| -|Разведение рук сидя с прямыми руками в тренажере|37|12-12-12| -|Разведение рук назад в пек дек|27|12-11-11| -|||| - -**08.07.2024 (с107-53)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0|8-6-5-5| -|Тяга горизонтального блока|54.4-58.9|12-12-12-12| -|Жим от плеч (рычаги)|15х2-25х2|12-10-8| -|Сведение рук в пек дек|37|12-12-12| -|Отжимания на брусьях широким хватом|47|12-12-12-12| -|||| - -**28.06.2024 (с106-52)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|63-77-86|12-12-12-12| -|Присед на одну ногу (каждая)|20|12-10-10| -|Разведение рук в стороны стоя|7х2-9х2|15-12-12-12| -|Жим гантелей сидя|14х2|12-12-12| -|Разведение рук в стороны в пекдек|27|12-12-12| -|||| - -**26.06.2024 (с105-51)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания обратным хватом|0|8-6-5| -|Тяга штанги в наклоне|30-40-40-45|12-12-12-12| -|Гребная тяга сидя с упором в грудь (одной рукой рычаг)|10-15|12-12-12-12| -|Жим от груди сидя (блинчики)|20х2-25х2|12-12-11| -|Сведение рук пек дек|47-37|10-14-13| -|Брусья широким хватом|37|12-9-8| - -**21.06.2024 (solo-50)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|72.5-77|12-12-12-12| -|Сгибание ног лежа|37-47-37-37|12-10-12-11| -|Отведение руки в кроссовере (по одной руке)|15|11-12-12-12| -|Разведение рук в пек дек|17-27|12-11-11-8| -|Жим от плеч вверх|37|12-11-9-9| -|разведене рук с гантелями в наклоне||| - -**19.06.2024 (с104-49)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-0|7-5-5| -|Гребная тяга с упором в грудь|47|12-12-12-12| -|Тяга верхнего блока обратным хватом|47|12-10-12| -|Жим гантелей лежа|32-40|12-12-9| -|Сведение рук пек дек|47|9-9-8| -|Брусья широким хватом|37|9-9-9| - -**17.06.2024 (с103-48)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Сгибание ног сидя|57-72-77|12-12-12-12| -|Жим ногами медленно|75-125|12-12-12-12| -|Отведение руки в кроссовере (одной рукой)|13.6|12-12-12-12| -|Жим от плеч вверх|27|12-12-12| -|Разведение рук в пек дек|17|12-12-12| -|||| - -**12.06.2024 (с102-47)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Тяга вертикального блока|46-54.4|12-12-12-12| -|Тяга штанги в наклоне|40|12-12-12| -|Тяга горизонтального блока одной рукой|22.7-27|12-12-12| -|Жим от груди сидя в тренажёре (рычаги)|40-45|12-12-12-12| -|Жим гантелей лёжа|36-32|10-12| -|||| - -**10.06.2024 (с101-46)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами (медленно вниз)|50-100|12-12-12-12| -|Сгибание ног лежа (медленно разгибать)|37|12-10-10-10| -|Жим от плеч сидя (рычаги)|10-20-30|12-12-12-10| -|Разведение рук в стороны стоя с гантелями|8х2|12-12-12| -|Разведение рук в стороны в наклоне с гантелями|7х2-8х2|12-12-12| -|||| - -**07.06.2024 (соло-45)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|0-0-47-47|7-5-12-10| -|Тяга вертикального блока|49.8|11-12-10-12| -|Отведение руки в сторону в кроссовере (каждая рука)|15|12-10-10-12| -|Тяга штанги в наклоне|40-45|12-12-12-10| -|Разведение рук в стороны (дельт-машина)|37-47|15-12-12-12| -|||| - -**05.06.2024 (с100-44)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|57-57-47-47|12-12-12-12| -|Тяга горизонтального блока|47-57|12-12-12| -|Тяга гантели в наклоне одной рукой|22|12-12-12| -|Жим гантелей лежа|32-36|12-12-12-8| -|Сведение рук сидя|37|12-12-12-10| -|||| - -**03.06.2024 (соло-43)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подъем штанги стоя|20|12-12-15-15| -|Тяга гантели в наклоне (гантеля поочередно)|20|12-12-12-12| -|Жим от плеч вверх сидя в тренажере|27-37|15-11-9–8| -|Тяга горизонтально блока|47|12-12-12-12| -|Жим гантелей лежа на скамье|32-36|12-12-12-11| -|||| - -**25.05.2024 (соло-42)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Тяга горизонтального блока|49.8-54.4-49.8|12-12-12-10| -|Подьем штанги стоя|20|12-12-12-12| -|Жим гантелей лежа|32-36|12-12-12-12| -|Жим от груди в тренажёре (кирпичики)|87-87-77|11-9-12-10| -|Трицепс машина|67-77|12-12-12-12| -|||| - -**22.05.2024 (c99-41)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|25-100-125|12-12-12| -|||| -|||| -|||| -|||| -|||| - -**20.05.2024 (c98-40)** - -| | | | -| ---------------------------------------------------- | ----------- | ----------- | -| **Упражнение** | **Вес** | **Подходы** | -| Гравитрон | 47-37 | 12-9-8 | -| Тяга горизонтального блока | 48.9-54.4 | 12-12-12-12 | -| Тяга гантели в наклоне | 22-22-24 | 12-12-12 | -| Жим от груди сидя в тренажере (около трицепс машины) | 77-97-97-87 | 12-12-10-8 | -| Баттерфляй | 57-47 | 10-12-12 | -| | | | - -**17.05.2024 (c97-39)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Разгибание ног сидя|68-81|12-12-12-12| -|Сгибание ног сидя|72.5-81.2|12-12-12-12| -|Разведение рук в стороны стоя|8х2|12-12-12-12| -|Жим от плеч вверх сидя|37|11-10-10| -|Сгибание рук с гантелями стоя|9х2-10х2|12-12-10| -|Трицепс машина|67-77|12-12-12| - - - -**15.05.2024 (c96-38)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|0-0-47|6-4-11-10-9| -|Гребная тяга с упором в грудь как|47|12-12-12| -|Тяга гантели в наклоне|20х2|12-12-12| -|Жим гантелей лежа 30⁰|32-38|12-12-9| -|Брусья в тренажере|37|12-11-10| -|||| - -**13.05.2024 (c95-37)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гакк присед|0-15|12-10-10-10| -|Сгибание ног лежа|47|12-10-10| -|Жим гантелей сидя на скамейке|32-36-32|12-11-10| -|Отведение рук с гантелями стоя|14|12-15-15| -|Махи в наклоне с упором|12-14|12-12-12| -|||| - - - -**10.05.2024 (c94-36)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Гравитрон|47|12-12-9-10| -|Гребная тяга с упором в грудь|47|12-13-11| -|Тяга гантели в наклоне|20 на каждую руку|12-12-12| -|Жим от груди сидя (блинчики)|30-50|14-12-12-12| -|Сведение рук в пек дек|37|12-12-12| -|||| - -**08.05.2024 (solo-35)** - -| | | | -| -------------------------------------- | ------------------------------------- | ----------- | -| **Упражнение** | **Вес** | **Подходы** | -| Гравитрон | 47 | 7 | -| Жим от груди сидя в тренажере | 67 | 12-12-12-12 | -| Тяга к поясу в наклоне | 18 на каждую руку - 20 на каждую руку | 12-12-12 | -| Тяга вертикального блока | 47 | 15-12-12-11 | -| Подъем штанги стоя | 20-20-25-25 | 15-15-7-8 | -| Трицепс машина | 77 | 15-15-12 | -| Разведение рук в кроссовере на трицепс | 27-33-27 | 12-12-12-12 | -| | | | - diff --git a/apple/examples/notes.txt b/apple/examples/notes.txt deleted file mode 100644 index 387673a..0000000 --- a/apple/examples/notes.txt +++ /dev/null @@ -1,36 +0,0 @@ -**21.08.2024 (с123-69)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Подтягивания|0-37-37|7-10-7| -|Тяга гантелей лежа на животе на скамье 80°|36-48|12-12-12-12| -|Тяга вертикального блока|59|10-9-10| -|Жим от груди сидя в тренажере (рычаги)|40-60-60|12-12-10| -|Баттерфляй|57|12-12-12| -|||| - -**19.08.2024 (с122-68)** - -| | | | -|---|---|---| -|**Упражнение**|**Вес**|**Подходы**| -|Жим ногами|50-100-150-175|12-12-12-12-8| -|Румынская тяга|22х2|12-12-12| -|Разведение рук в стороны в тренажёре Дж|47|12-12-12| -|Жим гантелей сидя 80⁰|16х2|12-12-12| -|||| -|||| - - -**21.06.23 (с3)** - -| | | | -| ------------------------- | -------- | ----------- | -| Упражнение | Вес | Подходы | -| Гравитрон | 57-57-77 | 7-6-10 | -| Тяга гантелей в наклоне | 7-8-8-8 | 13-13-12-12 | -| Отжимания | | 8-6-7-5.5 | -| Тяга ногами | 41 | 12-12-12-12 | -| Гиперэкстензия | 0-10-10 | 12-12-12 | -| Подъем коленей на турнике | | 10-10-10 | diff --git a/compose.override.yaml b/compose.override.yaml new file mode 100644 index 0000000..1a62945 --- /dev/null +++ b/compose.override.yaml @@ -0,0 +1,8 @@ +# Development overrides for hot reload +version: '3.8' + +services: + fastapi-app: + environment: + - DEBUG=true + command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/app --log-level debug \ No newline at end of file diff --git a/compose.yaml b/compose.yaml index 1a176f1..69be1b1 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,11 +1,23 @@ -version: '3' +version: '3.8' services: - database: - image: 'postgres:latest' - ports: - - 5433:5432 - env_file: - - .env + fastapi-app: + build: + context: . + dockerfile: Dockerfile + ports: + - "8000:8000" + volumes: + - ./app:/app/app:ro + - ./data:/app/data:ro + - ./tests:/app/tests:ro environment: - POSTGRES_DB: fitness_database + - PYTHONPATH=/app + command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/app + develop: + watch: + - action: sync + path: ./app + target: /app/app + - action: rebuild + path: ./pyproject.toml diff --git a/dbapi/tables.py b/dbapi/tables.py deleted file mode 100644 index ab48c04..0000000 --- a/dbapi/tables.py +++ /dev/null @@ -1,37 +0,0 @@ -from sqlalchemy import Float, ForeignKey, String, Table, Column, Integer, MetaData, Date - -# NOTE: MetaData object - object where we place out tables -# Essentialy - this is a facade around Python dicts, that stores series of Table objects keyed to their string name -metadata_obj = MetaData() - -# Representation of training table -training = Table( - "training", - metadata_obj, - Column("Id", Integer, primary_key=True), - Column("Date", Date), -) - -# Representation of exercise table -exercise = Table( - "exercise", - metadata_obj, - Column("Id", Integer, primary_key=True), - Column("Training", ForeignKey("training.Id"), nullable=False), - Column("Name", String(256)), -) - -approach = Table( - "approach", - metadata_obj, - Column("Id", Integer, primary_key=True), - Column("Exercise", ForeignKey("exercise.Id"), nullable=False), - Column("Weight", Float), - Column("Reps", Integer), -) - - -# NOTE: We can access table metadata with associative array `c` -# print(training.c.keys()) -# print(training.primary_key) -print(training.name) diff --git a/elect b/elect deleted file mode 100644 index c16e38d..0000000 --- a/elect +++ /dev/null @@ -1,84 +0,0 @@ - 1 | 1 | 77 | 12 - 2 | 1 | 86 | 12 - 3 | 1 | 91 | 12 - 4 | 1 | 86 | 12 - 5 | 2 | 47 | 12 - 6 | 2 | 47 | 12 - 7 | 2 | 47 | 11 - 8 | 2 | 47 | 10 - 9 | 3 | 15 | 12 - 10 | 3 | 25 | 12 - 11 | 3 | 27.5 | 12 - 12 | 3 | 30 | 8 - 13 | 4 | 9 | 12 - 14 | 4 | 11 | 12 - 15 | 4 | 12 | 12 - 16 | 5 | 33 | 12 - 17 | 5 | 33 | 12 - 18 | 5 | 33 | 12 - 19 | 5 | 33 | 12 - 20 | 6 | 0 | 9 - 21 | 6 | 0 | 7 - 22 | 6 | 0 | 5 - 23 | 7 | 55 | 12 - 24 | 7 | 59 | 12 - 25 | 7 | 59 | 12 - 26 | 7 | 59 | 10 - 27 | 8 | 18 | 12 - 28 | 8 | 20 | 12 - 29 | 8 | 20 | 11 - 30 | 9 | 47 | 12 - 31 | 9 | 47 | 12 - 32 | 9 | 47 | 12 - 33 | 10 | 77 | 12 - 34 | 10 | 77 | 12 - 35 | 10 | 77 | 12 - 36 | 11 | 0 | 11 - 37 | 11 | 0 | 8 - 38 | 11 | 0 | 6 - 39 | 12 | 22 | 12 - 40 | 12 | 28 | 10 - 41 | 12 | 28 | 10 - 42 | 12 | 28 | 10 - 43 | 13 | 16 | 12 - 44 | 13 | 28 | 10 - 45 | 13 | 28 | 6 - 46 | 13 | 28 | 7 - 47 | 14 | 47 | 12 - 48 | 14 | 47 | 12 - 49 | 14 | 47 | 12 - 50 | 15 | 65 | 12 - 51 | 15 | 82 | 12 - 52 | 15 | 91 | 12 - 53 | 16 | 100 | 12 - 54 | 16 | 150 | 10 - 55 | 16 | 150 | 10 - 56 | 16 | 150 | 10 - 57 | 17 | 15 | 12 - 58 | 17 | 15 | 12 - 59 | 17 | 15 | 12 - 60 | 18 | 12 | 12 - 61 | 18 | 20 | 10 - 62 | 18 | 20 | 10 - 63 | 18 | 20 | 10 - 64 | 19 | 47 | 11 - 65 | 19 | 47 | 11 - 66 | 19 | 47 | 12 - 67 | 20 | 45 | 12 - 68 | 20 | 54 | 12 - 69 | 20 | 59 | 10 - 70 | 20 | 59 | 10 - 71 | 21 | 30 | 10 - 72 | 21 | 32 | 10 - 73 | 21 | 32 | 10 - 74 | 22 | 50 | 12 - 75 | 22 | 50 | 12 - 76 | 22 | 50 | 12 - 77 | 23 | 16 | 12 - 78 | 23 | 24 | 10 - 79 | 23 | 24 | 10 - 80 | 23 | 24 | 10 - 81 | 24 | 47 | 12 - 82 | 24 | 47 | 12 - 83 | 24 | 47 | 12 - diff --git a/env_template b/env_template deleted file mode 100644 index 2d7a73e..0000000 --- a/env_template +++ /dev/null @@ -1,3 +0,0 @@ -POSTGRES_USER=db_username -POSTGRES_PASSWORD=db_password - diff --git a/grpc_test.py b/grpc_test.py deleted file mode 100644 index da1879d..0000000 --- a/grpc_test.py +++ /dev/null @@ -1,18 +0,0 @@ -from concurrent.futures import ThreadPoolExecutor -import grpc -from api.proto import routes_pb2, routes_pb2_grpc - - -class RouteApproachesServicer(routes_pb2_grpc.RouteApproachesServicer): - def GetApproach(self, request, context): - print("Hello") - return routes_pb2.Approach(weight=100, reps=12) - -def serve(): - server = grpc.server(ThreadPoolExecutor(max_workers=10)) - routes_pb2_grpc.add_RouteApproachesServicer_to_server(RouteApproachesServicer(), server) - server.add_insecure_port("[::]:50051") - server.start() - server.wait_for_termination() - -serve() diff --git a/main.py b/main.py deleted file mode 100644 index 3830f17..0000000 --- a/main.py +++ /dev/null @@ -1,27 +0,0 @@ -from parsers.text_data_parser import parse_old_data -from collections import Counter - -text_trainings = parse_old_data() - -with open("parsed_trainings.txt", "w", encoding="utf-8") as f: - f.write("=== ALL PARSED TRAININGS ===\n") - for training in text_trainings: - f.write(f"\nDate: {training.date}\n") - for exercise in training.exercises: - split_info = " (splitted weight)" if exercise.splitted_weight else "" - f.write(f" Exercise: {exercise.name}{split_info}\n") - for approach in exercise.approaches: - f.write(f" Approach: {approach.weight}kg x {approach.reps} reps\n") - f.write(f"\nTotal trainings: {len(text_trainings)}\n") - - exercise_names = [] - for training in text_trainings: - for exercise in training.exercises: - exercise_names.append(exercise.name) - - exercise_counts = Counter(exercise_names) - f.write("\nExercise counts:\n") - for name, count in sorted(exercise_counts.items()): - f.write(f"{name}: {count}\n") - -print("Output saved to parsed_trainings.txt") diff --git a/obsidian/examples/full.txt b/obsidian/examples/full.txt deleted file mode 100644 index 8163698..0000000 --- a/obsidian/examples/full.txt +++ /dev/null @@ -1,526 +0,0 @@ - -# 07.01.2025 (solo-2) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | --------------------- | ----------- | -| Разгибание ног сидя | 77-86-91-86 | 12-12-12-12 | -| Сгибание ног лежа | 47 | 12-12-11-10 | -| Жим от груди (рычаги) | 15х2-25х2-27.5х2-30х2 | 12-12-12-8 | -| Отведение руки в кроссовере из за спины | 9-11-12 | 12-12-12 | -| Кроссовер - отжимание на трицепс | 33 | 12-12-12-12 | - -# 04.01.2025 (solo-1) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | --------- | -------------- | -| Подтягивания | | 9-7-5 | -| Тяга горизонтального блока | 55-59 | 12-12-12-10 | -| Тяга гантели в наклоне одной рукой | 30 | 10х2-10х2-10х2 | -| Жим гантелей лежа | 18х2-20х2 | 12-12-11 | -| Разведение рук в стороны (дельт машина) | 47 | 12-12-12 | -| Трицепс машина | 77 | 12-12-12 | - - -# 30.12.2024 (c166-115) - -| Упражнение | Вес | Подходы | -| ----------------------- | --------- | ----------- | -| Подтягивания | | 11-8-6 | -| Тяга гантелей на скамье | 22х2-28х2 | 12-10-10-10 | -| Жим гантелей лежа | 16х2-28х2 | 12-10-6-7 | -| Сведение рук пек дек | 47 | 12-12-12 | -| Брусья 37 | 11-1011-10-10 | - -# 27.12.2024 (c165-114) - -| Упражнение | Вес | Подходы | -| ------------------------ | --------- | ----------- | -| Разгибание ног сидя | 65-82-91 | 12-12-12 | -| Жим ногами | 100-150 | 12-10-10-10 | -| Гиперэкстензия | 15 | 12-12-12 | -| Жим гантелей сидя | 12х2-20х2 | 12-10-10-10 | -| Разведение рук в стороны | 47 | 11-11-12 | - -# 25.12.2024 (c164-113) - -| Упражнение | Вес | Подходы | -| ---------------------------------- | --------- | ----------- | -| Тяга вертикального блока | 45-54-59 | 12-12-10-10 | -| Тяга гантели в наклоне одной рукой | 30-32 | 10-10-10 | -| Тяга горизонтального блока | 50 | 12-12-12 | -| Жим гантелей лежа | 16х2-24х2 | 12-10-10-10 | -| Сведение рук пек дек | 47 | 12-12-12 | -| | | | - -# 20.12.2024 (с163-112) - -| Упражнение | Вес | Подходы | -| ---------------------------------------------- | ----------- | -------- | -| Тяга вертикального блока | 41-59 | 12-12-12 | -| Тяга гантели в наклоне одной рукой | 28-32 | 12-8-8 | -| Жим гантелей лёжа | 14x14-26x26 | 12-8-8-8 | -| Баттерфляй | 57 | 12-12-12 | -| Сгибание рук с гантелями стоя (супинирование?) | 10х2 | 12-12-12 | -| Трицепс машина | 67 | 12-12-12 | - -# 18.12.2024 (c162-111) - -| Упражнение | Вес | Подходы | -| -------------------------------------------------------------- | --------- | ----------- | -| Разгибание ног сидя | 77-91 | 12-12-12-11 | -| Сгибание ног лежа | 47 | 12-12-10 | -| Жим гантелей сидя | 12х2-20х2 | 12-12-11-11 | -| Отведение руки в сторону (дефоли) в кроссовере | 13.5 | 12-12-12 | -| Отведение руки назад в кроссовере (аналог пек дек одной рукой) | 9 | 12-12-12 | - -# 16.12.2024 (c161-110) - -| Упражнение | Вес | Подходы | -| ----------------------------------------- | ------- | ----------- | -| Подтягивания | | 10-7-6 | -| Тяга горизонтального блока | 59 | 12-12-12 | -| Гребная тяга с упором в грудь (одна рука) | 20-22.5 | 12-11-12 | -| Жим от груди сидя (рычаги) | 30-60 | 12-10-11-10 | -| Трицепс машина | 77 | 12-12 | - -# 13.12.2024 (c160-109) - -| Упражнение | Вес | Подходы | -| ---------------------- | ---------- | -------- | -| Разгибание ног сидя | 49-81-90 | 12-12-12 | -| Жим ногами | 75-125-150 | 12-12-10 | -| Гиперэкстензия | 10-15 | 12-12-12 | -| Мах руки в кроссовере | 13.9 | 12-12-12 | -| Дельт машина | 47 | 12-11-12 | -| Разведение рук пек дек | 37 | 9-9-8 | - -# 11.12.2024 (c159-108) - -| Упражнение | Вес | Подходы | -| -------------------------------------- | ------- | -------- | -| Подтягивания | | 10-7-6 | -| Тяга горизонтального блока | 49-58 | 10-12-12 | -| Тяга горизонтального блока одной рукой | 31.8-36 | 12-10-10 | -| Жим от груди сидя в тренажёре (рычаги) | 50-60 | 12-10-8 | -| Сведение рук пёк дек | 47 | 10-9-10 | -| Брусья | 37 | 10 | - -# 09.12.2024 (c158-107) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | ----------- | ----------- | -| Сгибание ног сидя | 54-77-91-86 | 12-12-11-12 | -| Жим ногами ш-ш-ш | 50-125-140 | 12-12-12-12 | -| Сгибание ног лежа | 47 | 12-12-12 | -| Разведение рук в стороны (дельт-машина) | 37-47 | 12-12-12-12 | -| Жим гантелей сидя | 18х2 | 12-11-10 | - -# 06.12.2024 (c157-106) - -| Упражнение | Вес | Подходы | -| ---------------------------------- | -------- | -------- | -| Тяга вертикального блока | 40-54 | 12-12-12 | -| Тяга гантели в наклоне одной рукой | 26-28 | 10-10-10 | -| Тяга горизонтального блока | 59 | 12-12-12 | -| Жим от груди сидя рычаги | 30-70-60 | 12-6-7-7 | -| Баттерфляй | 57 | 12-12-8 | -| Трицепс машина | 77 | 12-12-11 | - -# 04.12.2024 (c156-105) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | -------------- | ----------- | -| Жим ногами | 50-100-125-150 | 12-12-12-12 | -| Разгибание ног сидя | 77-87 | 12-12-12 | -| Сгибание ног сидя | 81 | 12-12-12 | -| Разведение рук в стороны (дельт-машина) | 37-47 | 12-12-12-12 | -| Жим от плеч вверх (тренажёр, рычаги) | 37 | 12-11-10 | - -# 02.12.2024 (c155-104) - -| Упражнение | Вес | Подходы | -| ---------------------------------- | --------- | --------- | -| Подтягивания | | 10-7-6 | -| Тяга горизонтального блока | 59 | 12-12-12 | -| Тяга гантели в наклоне одной рукой | 26 | 10-10-10 | -| Жим гантелей лёжа | 16х2-24х2 | 12-10-8-5 | -| Баттерфляй | 57 | 12-12-12 | - -# 27.11.2024 (c154-103) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | -------- | ---------- | -| Разгибание ног сидя | 72-77-81 | 12-12-12 | -| Сгибание ног лежа | 37-47 | 12-12-10 | -| Икроножные сидя | 34 | 12-12-12 | -| Разведение рук в строоны (дельт-машина) | 37-47 | 12-12-12-9 | -| Жим гантелей сидя 85⁰ | 18х2 | 10-8-7 | -| Разведение рук назад пёк дек | 27-37 | 12-8 | - -# 22.11.2024 (c153-102) - -| Упражнение | Вес | Подходы | -| -------------------------------------- | -------------------- | -------- | -| Подтягивания | 0-0-зелёная резинка- | 9-7-7 | -| Тяга горизонтально блока одной рукой | 32 | 12-12-12 | -| Тяга вертикального блока прямым хватом | 47-57 | 12-9-9 | -| Жим от плеч сидя (рычаги наверху) | 77-87-77 | 12-10-11 | -| Баттерфляй | 57 | 12-12-12 | -| Трицепс машина | 77 | 12-12 | - -# 22.11.2024 (c153-102) - -| Упражнение | Вес | Подходы | -| -------------------------------------- | -------------------- | ------------ | -| Подтягивания | 0-0-зелёная резинка- | 9-7-7 | -| Тяга горизонтально блока одной рукой | 32 | 12-12-12 | -| Тяга вертикального блока прямым хватом | 47-57 | 12-9-9 | -| Жим от плеч сидя (рычаги наверху) | 77-87-77 | 12-10-11 | -| Баттерфляй | 57 | 12-12-12 | -| Трицепс машина | 77 | 12-12-==12== | - -# 20.11.2024 (c152-101) - -| Упражнение | Вес | Подходы | -| -------------------------------------- | -------------- | ----------- | -| Разгибание ног сидя | 58-72-81 | 12-12-10-10 | -| Сгибание ног сидя | 72-81 | 12-12-12 | -| Отведение плеча в сторону в кроссовере | 21-23 | 12-12-12 | -| Жим гантелей сидя | 18х2-18х2-16х2 | 9-10-12 | -| Разведение рук назад в пек дек | 37 | 9-8-9 | - -# 18.11.2024 (c151-100) - -| Упражнение | Вес | Подходы | -| --------------------------------- | --------- | --------- | -| Подтягивания | | 10 | -| Подтягивания обратным хватом | | 7-6 | -| Вертикальная тяга одной рукой 45⁰ | 31-41 | 12-12-12 | -| Тяга горизонтального блока | 63-58-54 | 7-9-12 | -| Жим гантелей лёжа на скамейке 45⁰ | 16х2-22х2 | 12-10-8-8 | -| Баттерфляй | 47 | 12-12-12 | -| Брусья | 37-0-37 | 10-5-8 | - -# 15.11.2024 (c150-99) - -| Упражнение | Вес | Подходы | -| ---------------------------------------- | ----------- | --------------- | -| Выпады вперед на одну ногу | 0-12х2-16х2 | 8х2-8х2-7х2-7х2 | -| Сгибание ног сидя | 77-81 | 12-12-12 | -| Разведение рук в стророны (дельт-машина) | 37-47 | 12-12-12-9 | -| Жим гантелей сидя 80⁰ | 18х2 | 10-9-8 | -| Разведение рук пек дек | 37-27 | 9-12-12 | -| Подъём ног в висе | | 10-10-8 | - -# 13.11.2024 (c149-98) - -| Упражнение | Вес | Подходы | -| -------------------------- | --------- | -------- | -| Гравитрон (медленно вниз) | 47-37 | 12-9-7 | -| Тяга горизонтального блока | 58 | 12-12-12 | -| Тяга гантели в наклоне | 26х2-28х2 | 12-10-10 | -| Жим гантелей на скамье 65⁰ | 14х2-22х2 | 12-9-8-8 | -| Баттерфляй | 47 | 12-12-12 | - -# 11.11.2024 (c148-97) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | ---------- | ----------- | -| Разгибание ног сидя | 49-72.5-82 | 12-12-12-12 | -| Румынская тяга | 22х2 | 12-12-12 | -| Икроножные сидя за | 34 | 12-12-12 | -| Дельт машина (разведение рук в стороны) | 47 | 12-12-12 | -| Жим гантелей сидя 80⁰ | 20х2-18х2 | 7-9-10 | - -# 08.11.2024 (solo-96) - -| Упражнение | Вес | Подходы | -| -------------------------- | --------- | -------- | -| Подтягивания | | 10-7-5 | -| Тяга гантели в наклоне | 24-26 | 12-12-12 | -| Жим гантелей лежа | 20х2-22х2 | 12-12-9 | -| Тяга горизонтального блока | 47-47-57 | 12-12-12 | -| Тяга вертикального блока | 47 | 12-12-12 | -| Жим от плеч вверх рычаги | 37 | 12-11-8 | - -# 06.11.2024 (c147-95) - -| Упражнение | Вес | Подходы | -| ----------------------------- | -------------- | ----------- | -| Жим ногами | 50-100-100-125 | 12-12-12-12 | -| Сгибание ног лёжа | 47 | 12-12-10 | -| Жим гантелей сидя на скамье | 12х2-20х2 | 12-9-9-8 | -| Разведение рук в стороны сидя | 37 | 12-12-12 | -| Разведение рук пек дек | 37-27 | 8-15-12 | - -# 04.11.2024 (c146-94) - -| Упражнение | Вес | Подходы | -| -------------------------- | -------- | ----------- | -| Подтягивания | | 9-7-6 | -| Тяга горизонтального блока | 45-54 | 12-12-12 | -| Тяга вертикального блока | 49 | 12-12-12 | -| Жим от груди рычаги | 57-77-87 | 12-12-12-12 | -| Сведение пек дек | 47 | 10-8-8 | -| Брусья | 47 | 12-12-12 | - -# 01.11.2024 (c145-93) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | ----------- | --------- | -| Выпады с гантелями на одну ногу вперед | 12х12-16х16 | 8-8-8 | -| Гиперэкстензия | 10 | 12-12-12 | -| Жим гантелей сидя | 12х2-20х2 | 12-11-9-8 | -| Разведение рук в стороны (дельт-машина) | 37-47-37 | 12-8-12 | -| Разведение рук пек дек | 27 | 12-12 | - -# 30.10.2024 (c144-92) - -| Упражнение | Вес | Подходы | -| -------------------------------------- | ----- | -------- | -| Гравитрон | 47-37 | 12-11-9 | -| Гребная тяга с упором в грудь | 47 | 12-12-12 | -| Тяга горизонтального блока одной рукой | 27 | 12-12-12 | -| Отжимания | 15 | 9-7-7 | -| Баттерфляй | 57-47 | 10-12-12 | -| Брусья | 37 | 12-11 | - -# 28.10.2024 (c143-91) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | ---------- | ----------- | -| Разгибание ног сидя | 49-77-90.5 | 12-12-10-10 | -| Сгибание ног сидя | 58-72-77 | 12-12-12-12 | -| Икроножные сидя | 27-34 | 12-12-12-12 | -| Разведение рук пек дек | 27 | 12-12-12 | -| Разведение рук в стороны (дельт-машина) | 27 | 12-12-12 | -| | | | - -# 26.10.2024 (solo-90) - -| Упражнение | Вес | Подходы | -| ----------------------------------------- | ----------- | ---------- | -| Подтягивания | | 9-7-6 | -| Тяга горизонтального блока | 57 | 12-12-12 | -| Тяга гантели в наклоне | 26 | 12-12-12 | -| Жим от груди сидя в тренажёре (рычаги) | 40-60-60-40 | 12-11-9-10 | -| Разведение рук в стороны с гантелями стоя | 9х2 | 12-12-12 | -| Трицепс машина | 77-87 | 12-12-9 | - -# 23.10.2024 (solo-89) - -| Упражнение | Вес | Подходы | -| ------------------------------ | -------- | ----------- | -| Разгибание ног сидя | 72-78-81 | 12-12-12-12 | -| Икроножные сидя | 27-34 | 12-12-12-12 | -| Сгибание штанги стоя на бицепс | 20 | 12-12-12-12 | -| Сгибание ног лёжа | 37 | 12-12-11-10 | -| Гиперэкстензия | 10 | 12-12-12-12 | - -# 21.10.2024 (c142-88) - -| Упражнение | Вес | Подходы | -| ---------------------------------------- | ----- | -------- | -| Подтягивания | | 10-6-6 | -| Тяга гантели лежа в наклоне на скамье | 22х2 | 12-12-12 | -| Тяга вертикального блока обратным хватом | 54.4 | 12-12-12 | -| Жим от груди сидя (рычаги) | 67-87 | 12-12-12 | -| Баттерфляй | 57 | 12-12-12 | -| Трицепс машина | 77 | 12-12-12 | - -# 18.10.2024 (c141-87) - -| Упражнение | Вес | Подходы | -| ------------------------------------- | --------- | ----------- | -| Выпады вперед по очереди каждой ногой | 0-20 | 12-16-16-16 | -| Гиперэкстензия | 10 | 12-12-12 | -| Жим гантелей сидя 90⁰ | 12х2-18х2 | 12-12-12-10 | -| Разведение рук в стороны в тренажаре | 37 | 12-12-12 | -| Разведение рук пёк дек | 27 | 12-12-12 | - -# 16.10.2024 (c140-86) - -| Упражнение | Вес | Подходы | -| ------------------------------------ | ---------------- | ----------- | -| Подтягивания обратным хватом | | 11-8-6 | -| Тяга горизонтального блока | 57 | 12-11-12 | -| Тяга вертикального блока | 54-59-54 | 12-8-12 | -| Жим от груди рычаги | 15х2-25х2-27.5х2 | 12-12-12-11 | -| Сведение рук пек дек | 37 | 12-12-12 | -| Разгибание рук сидя (трицепс машина) | 77-87 | 12-10-9 | - -# 14.10.2024 (c139-85) - -| Упражнение | Вес | Подходы | -| ----------------------------- | -------------- | ----------- | -| Жим ногами | 75-150 | 12-12-12-12 | -| Сгибание ног лежа | 47-47-37 | 12-10-12 | -| Икроножные сидя | 34 | 12-12-12 | -| Разведение рук в стороны | 37 | 12-12-12 | -| Жим гантелей сидя | 18х2-18х2-16х2 | 12-10-10 | -| Разведение рук в наклоне сидя | 6х2 | 12 | - -# 11.10.2024 (c138-84) - -| Упражнение | Вес | Подходы | -| ---------------------------- | -------------- | --------- | -| Подтягивания | | 10-6-6 | -| Гребная тяга с упорм в грудь | 47-51 | 12-12-12 | -| Тяга гантели в наклоне | 26-28 | 12-12-12 | -| Жим гантелей лёжа | 18х2-24х2-22х2 | 12-10-7-8 | -| Сведение рук в пек дек | 37 | 12-12-12 | -| Брусья узким хватом | 37 | 12-9-9 | - -# 09.10.2024 (c137-83) - -| Упражнение | Вес | Подходы | -| ----------------------------- | -------- | ----------- | -| Разгибание ног сидя | 62-82-90 | 12-12-11-10 | -| Румынская тяга | 40 | 12-12-12 | -| Икроножные сидя | 27 | 16-15-14 | -| Разведение рук а стороны сидя | 47 | 12-12-12 | -| Жим гантелей сидя | 18х2 | 11-12-12 | -| Разведение рук в наклоне | 7х2 | 12-12-12 | - -# 07.10.2024 (c136-82) - -| Упражнение | Вес | Подходы | -| ------------------------------ | -------- | ---------- | -| Подтягивания | | 10-7-6 | -| Гребная тяга с упорм в грудь | 47 | 12-12-12 | -| Тяга гантели в наклоне 1 рукой | 26 | 12-12-12 | -| Жим гантелей лежа на скамье | 40-48 | 12-10-8-7 | -| Баттерфляй | 57-67-57 | 12-7-10-10 | -| | | | - -# 04.10.2024 (c135-81) - -| Упражнение | Вес | Подходы | -| ------------------------ | ---------- | ----------- | -| Разгибание ног сидя | 59-77-81.5 | 12-12-12-12 | -| Румынская тяга | 40 | 12-12-12 | -| Икроножные сидя | 27.2 | 12-12-12 | -| Жим гантелей сидя | 32-36 | 12-12-12 | -| Разведение рук в стороны | 47 | 12-12-10 | - -# 02.10.2024 (c134-80) - -| Упражнение | Вес | Подходы | -| ---------------------------------- | ----- | -------- | -| Подтягивания | | 10-7-5 | -| Тяга гантели в наклоне одной рукой | 24-26 | 12-12-12 | -| Тяга верхнего блока | 54-49 | 12-9-12 | -| Жим от груди рычаги | 77-87 | 12-12-11 | -| Брусья | 0-47 | 4-10 | - -# 25.09.2024 (c133-79) - -| Упражнение | Вес | Подходы | -| ------------------------------------- | -------- | ----------- | -| Разгибание ног сидя | 67-87-97 | 12-12-12-12 | -| Гиперэкстензия | 10 | 12-12-12 | -| Жим гантелей сидя 80⁰ | 36 | 12-12-10 | -| Отведение руки в пек дек (по очереди) | 11 | 12-12-12 | -| Разведение рук пек дек | 27 | 12 | - -# 23.09.2024 (c132-78) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | -------- | ---------- | -| Подтянивания | | 10-7-5 | -| Тяга горизонтального блока | 47-57 | 12-12-12 | -| Тяга гантели в наклоне к поясу к стойки | 26 | 12-12-12 | -| Жим от груди рычаги | 40-60 | 12-12-9-11 | -| Сведение рук пек дек | 37-47-37 | 12-9-12 | - -# 11.09.2024 (c131-77) - -| Упражнение | Вес | Подходы | -| ------------------------------------- | ----------- | --------- | -| Подтягивания | | 11-8-7 | -| Гребная тяга с упором в грудь | 47 | 12-12-12 | -| Тяга верхнего блока за | 58.9 | 10-10-10 | -| Жим от плеч сидя в тренажере (рычаги) | 40-70-70-60 | 12-11-9-9 | -| Сведение рук в пек декх | 37-47 | 12-11-10 | -| Трицепс машина | 77 | 12-12-12 | - -# 09.09.2024 (c130-76) - -| Упражнение | Вес | Подходы | -| ---------------------------------- | ----- | ----------- | -| Болгарские приседания на одну ногу | 16-25 | 10-10-10 | -| Гиперэкстензия | 15 | 12-12-12 | -| Жим гантелей сидя 8⁰ | 16-36 | 10-12-12-12 | -| Разведение рук в стороны стоя | 20 | 12-12-12-12 | -| Разведение рук в наклоне | 8х8 | 12-12-12 | - -# 06.09.2024 (c129-75) - -| Упражнение | Вес | Подходы | -| ---------------------------------------------- | ----------- | -------- | -| Подтягивания | 0 | 11-8-7-4 | -| Тяга гантелей к поясу лёжа на животе на скамье | 40-52 | 12-12-12 | -| Тяга горизонтального блока 1 рукой поочерёдно | 32 | 12-12-12 | -| Жим гантелей лежа на скамье | 36-52-52-44 | 12-8-6-8 | -| Баттерфляй | 57-47 | 12-9-12 | - -# 04.09.2024 (c128-74) - -| Упражнение | Вес | Подходы | -| -------------------------------------------------- | -------- | ----------- | -| Разгибание ног сидя | 77-77-95 | 12-12-10-10 | -| Приседания | 30 | 12-12-12 | -| Сгибание ног лежа | 47 | 12-12-10 | -| Отведение руки в пек дек (по очереди каждой рукой) | 13.6 | 12-12-12 | -| Жим от плеч вверх в тренажёре | 37 | 12-12-10 | -| Разведение рук в наклоне | 8х8 | 12-12-12 | -# 02.09.2024 (c127-73) - -| Упражнение | Вес | Подходы | -| -------------------------- | ----------- | --------- | -| Подтягивания | 0 | 9-6-6 | -| Тяга гантелей в наклоне | 30 | 12-12-10 | -| Тяга горизонтального блока | 45.3 | 12-10-12 | -| Жим от плеч вверх рычаги | 40-70-70-60 | 12-10-9-9 | -| Баттерфляй | 57 | 12-12-12 | -| Брусья узким хватом | 37 | 9-8-10 | -# 30.08.2024 (c126-72) - -| Упражнение | Вес | Подходы | -| ------------------------------------------------ | -------- | ----------- | -| Разгибание ног сидя | 59-77-86 | 12-12-12-12 | -| Жим ногами | 150 | 12-12-12 | -| Сгибание ног лежа | 47 | 12-12-12 | -| Разведение рук в стороны сидя спиной к тренажеру | 47 | 12-12-12 | -| Жим гантелей сидя на лавке 80⁰ | 18х2 | | -# 28.08.2024 (c125-71) - -| Упражнение | Вес | Подходы | -| ------------------------------------------- | -------------- | --------- | -| Подтягивания | 0 | 9-7-6 | -| Тяга горизонтального блока | 57 | 12-12-12 | -| Тяга гантели в наклоне одной рукой (каждой) | 24-26 | 12-12-12 | -| Жим гантелей лежа на скамье 30⁰ | 18х2-24х2-22х2 | 12-9-10-8 | -| Сведение рук пек дек | 47 | 12-12-10 | -| | | | - -# 26.08.2024 (с124-70) - -| Упражнение | Вес | Подходы | -| -------------------------------------------------- | ----------- | ----------- | -| Сгибание ног лежа | 37-47 | 12-12-12 | -| Жим ногами | 100-150-175 | 12-10-10-10 | -| Отведение руки в кроссовере по очереди каждую руку | 13.6 | 12-12-12-12 | -| Жим от плеч вверх в тренажёре | 37 | 12-12-10 | -| Разведение рук в стороны в наклоне с гантелями | 8х2 | 12-12 | - -# 21.08.2024 (с123-69) - -| Упражнение | Вес | Подходы | -| ------------------------------------------ | -------- | ----------- | -| Подтягивания | 0-37-37 | 7-10-7 | -| Тяга гантелей лежа на животе на скамье 80° | 36-48 | 12-12-12-12 | -| Тяга вертикального блока | 59 | 10-9-10 | -| Жим от груди сидя в тренажере (рычаги) | 40-60-60 | 12-12-10 | -| Баттерфляй | 57 | 12-12-12 | - diff --git a/obsidian/examples/notes.txt b/obsidian/examples/notes.txt deleted file mode 100644 index 5d0aac5..0000000 --- a/obsidian/examples/notes.txt +++ /dev/null @@ -1,53 +0,0 @@ -# 07.01.2025 (solo-2) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | --------------------- | ----------- | -| Разгибание ног сидя | 77-86-91-86 | 12-12-12-12 | -| Сгибание ног лежа | 47 | 12-12-11-10 | -| Жим от груди (рычаги) | 15х2-25х2-27.5х2-30х2 | 12-12-12-8 | -| Отведение руки в кроссовере из за спины | 9-11-12 | 12-12-12 | -| Кроссовер - отжимание на трицепс | 33 | 12-12-12-12 | - -# 04.01.2025 (solo-1) - -| Упражнение | Вес | Подходы | -| --------------------------------------- | --------- | -------------- | -| Подтягивания | | 9-7-5 | -| Тяга горизонтального блока | 55-59 | 12-12-12-10 | -| Тяга гантели в наклоне одной рукой | 30 | 10х2-10х2-10х2 | -| Жим гантелей лежа | 18х2-20х2 | 12-12-11 | -| Разведение рук в стороны (дельт машина) | 47 | 12-12-12 | -| Трицепс машина | 77 | 12-12-12 | - - -# 30.12.2024 (c166-115) - -| Упражнение | Вес | Подходы | -| ----------------------- | --------- | ----------- | -| Подтягивания | | 11-8-6 | -| Тяга гантелей на скамье | 22х2-28х2 | 12-10-10-10 | -| Жим гантелей лежа | 16х2-28х2 | 12-10-6-7 | -| Сведение рук пек дек | 47 | 12-12-12 | -| Брусья 37 | 11-1011-10-10 | - -# 27.12.2024 (c165-114) - -| Упражнение | Вес | Подходы | -| ------------------------ | --------- | ----------- | -| Разгибание ног сидя | 65-82-91 | 12-12-12 | -| Жим ногами | 100-150 | 12-10-10-10 | -| Гиперэкстензия | 15 | 12-12-12 | -| Жим гантелей сидя | 12х2-20х2 | 12-10-10-10 | -| Разведение рук в стороны | 47 | 11-11-12 | - -# 25.12.2024 (c164-113) - -| Упражнение | Вес | Подходы | -| ---------------------------------- | --------- | ----------- | -| Тяга вертикального блока | 45-54-59 | 12-12-10-10 | -| Тяга гантели в наклоне одной рукой | 30-32 | 10-10-10 | -| Тяга горизонтального блока | 50 | 12-12-12 | -| Жим гантелей лежа | 16х2-24х2 | 12-10-10-10 | -| Сведение рук пек дек | 47 | 12-12-12 | -| | | | - diff --git a/playground/README.md b/playground/README.md deleted file mode 100644 index a7cb4ba..0000000 --- a/playground/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Directory for testing hypotheses -## context.py -File for testing context operations diff --git a/playground/contexts.py b/playground/contexts.py deleted file mode 100644 index 28c192d..0000000 --- a/playground/contexts.py +++ /dev/null @@ -1,66 +0,0 @@ -import asyncio - -class ContextPlayground: - def __init__(self) -> None: - self.keka = "Hi, i am keka" - - def __enter__(self): - print("Entered context") - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - if exc_type: - print(f"\tException raised. Type: {exc_type}") - if exc_val: - print(f"\tException raised. Value: {exc_val}") - if exc_tb: - print(f"\tException raised. Traceback: {exc_tb}") - print("\tExiting context") - # Returning True means that context manager will supress the exception and it will not be propagated outside - # the with block. IOW it indicated, that exception is going to be handled inside context - return True - # Returning False means that the exception will be propagated and it will be raised outside the with block - # IOW it means that the exception will not be handled inside context manager and must be handled by the caller - # Note from documentation: __exit__() methods should not reraise the passed-in exception; - # this is the caller’s responsibility. - # return False # Or return None - -def main(): - with ContextPlayground() as kek: - print(f"\t\t{kek.keka}") - print("\t\tInside context") - - print("Outside context") - -class AsyncContextPlayground: - """Asyncio version of ContextPlayground""" - - def __init__(self) -> None: - self.keka = "Hi, i am async Keka" - - async def __aenter__(self): - print("\tEntered async context") - return self - - async def __aexit__(self, exc_type, exc_val, exc_tb): - if exc_type: - print(f"\t\tException raised. Type: {exc_type}") - if exc_val: - print(f"\t\tException raised. Value: {exc_val}") - if exc_tb: - print(f"\t\tException raised. Traceback: {exc_tb}") - print("\tExiting async context") - return True - - -async def async_main(): - async with AsyncContextPlayground() as kek: - print(f"\t\t{kek.keka}") - print("\t\tInside async context") - raise ValueError("An error occurred") # Uncomment to test exception handling - - print("Outside async context") - -if __name__ == "__main__": - asyncio.run(async_main()) - diff --git a/pyproject.toml b/pyproject.toml index 0ae31d2..11180fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,14 +5,12 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ + "fastapi>=0.115.0", + "uvicorn[standard]>=0.32.0", "pydantic>=2.11.7", + "pydantic-settings>=2.0.0", "pytest>=8.3.4", - "sqlalchemy>=2.0.37", - "psycopg2-binary>=2.9.10", "python-dotenv>=1.0.1", - "asyncpg>=0.30.0", - "grpcio>=1.70.0", - "grpcio-tools>=1.70.0", ] [dependency-groups] diff --git a/pyproject.toml.back b/pyproject.toml.back deleted file mode 100644 index 4d610be..0000000 --- a/pyproject.toml.back +++ /dev/null @@ -1,23 +0,0 @@ -[tool.poetry] -name = "f1tness-parser" -version = "0.1.0" -description = "" -authors = ["pro100ton "] -readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.10" -pydantic = "^2.10.5" -pytest = "^8.3.4" -sqlalchemy = "^2.0.37" -psycopg2 = "^2.9.10" -python-dotenv = "^1.0.1" -asyncpg = "^0.30.0" -grpcio = "^1.70.0" -grpcio-tools = "^1.70.0" - - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" - diff --git a/run.py b/run.py new file mode 100644 index 0000000..07d318c --- /dev/null +++ b/run.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +""" +Development server runner for the Fitness Parser API +""" +import uvicorn + +if __name__ == "__main__": + uvicorn.run( + "app.main:app", + host="0.0.0.0", + port=8000, + reload=True, + log_level="info" + ) \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_api/__init__.py b/tests/test_api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_core/__init__.py b/tests/test_core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/obsidian/tests/test_obsidian_parser.py b/tests/test_core/test_obsidian_parser.py similarity index 100% rename from obsidian/tests/test_obsidian_parser.py rename to tests/test_core/test_obsidian_parser.py diff --git a/uv.lock b/uv.lock index 52168c4..58914d8 100644 --- a/uv.lock +++ b/uv.lock @@ -12,19 +12,28 @@ wheels = [ ] [[package]] -name = "asyncpg" -version = "0.30.0" +name = "anyio" +version = "4.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2f/4c/7c991e080e106d854809030d8584e15b2e996e26f16aee6d757e387bc17d/asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851", size = 957746, upload-time = "2024-10-20T00:30:41.127Z" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/22/e20602e1218dc07692acf70d5b902be820168d6282e69ef0d3cb920dc36f/asyncpg-0.30.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05b185ebb8083c8568ea8a40e896d5f7af4b8554b64d7719c0eaa1eb5a5c3a70", size = 670373, upload-time = "2024-10-20T00:29:55.165Z" }, - { url = "https://files.pythonhosted.org/packages/3d/b3/0cf269a9d647852a95c06eb00b815d0b95a4eb4b55aa2d6ba680971733b9/asyncpg-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c47806b1a8cbb0a0db896f4cd34d89942effe353a5035c62734ab13b9f938da3", size = 634745, upload-time = "2024-10-20T00:29:57.14Z" }, - { url = "https://files.pythonhosted.org/packages/8e/6d/a4f31bf358ce8491d2a31bfe0d7bcf25269e80481e49de4d8616c4295a34/asyncpg-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b6fde867a74e8c76c71e2f64f80c64c0f3163e687f1763cfaf21633ec24ec33", size = 3512103, upload-time = "2024-10-20T00:29:58.499Z" }, - { url = "https://files.pythonhosted.org/packages/96/19/139227a6e67f407b9c386cb594d9628c6c78c9024f26df87c912fabd4368/asyncpg-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46973045b567972128a27d40001124fbc821c87a6cade040cfcd4fa8a30bcdc4", size = 3592471, upload-time = "2024-10-20T00:30:00.354Z" }, - { url = "https://files.pythonhosted.org/packages/67/e4/ab3ca38f628f53f0fd28d3ff20edff1c975dd1cb22482e0061916b4b9a74/asyncpg-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9110df111cabc2ed81aad2f35394a00cadf4f2e0635603db6ebbd0fc896f46a4", size = 3496253, upload-time = "2024-10-20T00:30:02.794Z" }, - { url = "https://files.pythonhosted.org/packages/ef/5f/0bf65511d4eeac3a1f41c54034a492515a707c6edbc642174ae79034d3ba/asyncpg-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04ff0785ae7eed6cc138e73fc67b8e51d54ee7a3ce9b63666ce55a0bf095f7ba", size = 3662720, upload-time = "2024-10-20T00:30:04.501Z" }, - { url = "https://files.pythonhosted.org/packages/e7/31/1513d5a6412b98052c3ed9158d783b1e09d0910f51fbe0e05f56cc370bc4/asyncpg-0.30.0-cp313-cp313-win32.whl", hash = "sha256:ae374585f51c2b444510cdf3595b97ece4f233fde739aa14b50e0d64e8a7a590", size = 560404, upload-time = "2024-10-20T00:30:06.537Z" }, - { url = "https://files.pythonhosted.org/packages/c8/a4/cec76b3389c4c5ff66301cd100fe88c318563ec8a520e0b2e792b5b84972/asyncpg-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:f59b430b8e27557c3fb9869222559f7417ced18688375825f8f12302c34e915e", size = 621623, upload-time = "2024-10-20T00:30:09.024Z" }, + { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, +] + +[[package]] +name = "click" +version = "8.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, ] [[package]] @@ -41,14 +50,12 @@ name = "f1tness-parser" version = "0.1.0" source = { virtual = "." } dependencies = [ - { name = "asyncpg" }, - { name = "grpcio" }, - { name = "grpcio-tools" }, - { name = "psycopg2-binary" }, + { name = "fastapi" }, { name = "pydantic" }, + { name = "pydantic-settings" }, { name = "pytest" }, { name = "python-dotenv" }, - { name = "sqlalchemy" }, + { name = "uvicorn", extra = ["standard"] }, ] [package.dev-dependencies] @@ -60,14 +67,12 @@ dev = [ [package.metadata] requires-dist = [ - { name = "asyncpg", specifier = ">=0.30.0" }, - { name = "grpcio", specifier = ">=1.70.0" }, - { name = "grpcio-tools", specifier = ">=1.70.0" }, - { name = "psycopg2-binary", specifier = ">=2.9.10" }, + { name = "fastapi", specifier = ">=0.115.0" }, { name = "pydantic", specifier = ">=2.11.7" }, + { name = "pydantic-settings", specifier = ">=2.0.0" }, { name = "pytest", specifier = ">=8.3.4" }, { name = "python-dotenv", specifier = ">=1.0.1" }, - { name = "sqlalchemy", specifier = ">=2.0.37" }, + { name = "uvicorn", extras = ["standard"], specifier = ">=0.32.0" }, ] [package.metadata.requires-dev] @@ -78,68 +83,50 @@ dev = [ ] [[package]] -name = "greenlet" -version = "3.2.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, - { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, - { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191, upload-time = "2025-08-07T13:45:29.752Z" }, - { url = "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", size = 649516, upload-time = "2025-08-07T13:53:16.314Z" }, - { url = "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", size = 652169, upload-time = "2025-08-07T13:18:32.861Z" }, - { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, - { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, - { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210, upload-time = "2025-08-07T13:18:24.072Z" }, - { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685, upload-time = "2025-08-07T13:24:38.824Z" }, - { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586, upload-time = "2025-08-07T13:16:08.004Z" }, - { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346, upload-time = "2025-08-07T13:42:59.944Z" }, - { url = "https://files.pythonhosted.org/packages/c0/aa/687d6b12ffb505a4447567d1f3abea23bd20e73a5bed63871178e0831b7a/greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5", size = 699218, upload-time = "2025-08-07T13:45:30.969Z" }, - { url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659, upload-time = "2025-08-07T13:53:17.759Z" }, - { url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355, upload-time = "2025-08-07T13:18:34.517Z" }, - { url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512, upload-time = "2025-08-07T13:18:33.969Z" }, - { url = "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", size = 303425, upload-time = "2025-08-07T13:32:27.59Z" }, -] - -[[package]] -name = "grpcio" -version = "1.74.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/38/b4/35feb8f7cab7239c5b94bd2db71abb3d6adb5f335ad8f131abb6060840b6/grpcio-1.74.0.tar.gz", hash = "sha256:80d1f4fbb35b0742d3e3d3bb654b7381cd5f015f8497279a1e9c21ba623e01b1", size = 12756048, upload-time = "2025-07-24T18:54:23.039Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/d8/1004a5f468715221450e66b051c839c2ce9a985aa3ee427422061fcbb6aa/grpcio-1.74.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:2bc2d7d8d184e2362b53905cb1708c84cb16354771c04b490485fa07ce3a1d89", size = 5449488, upload-time = "2025-07-24T18:53:41.174Z" }, - { url = "https://files.pythonhosted.org/packages/94/0e/33731a03f63740d7743dced423846c831d8e6da808fcd02821a4416df7fa/grpcio-1.74.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:c14e803037e572c177ba54a3e090d6eb12efd795d49327c5ee2b3bddb836bf01", size = 10974059, upload-time = "2025-07-24T18:53:43.066Z" }, - { url = "https://files.pythonhosted.org/packages/0d/c6/3d2c14d87771a421205bdca991467cfe473ee4c6a1231c1ede5248c62ab8/grpcio-1.74.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f6ec94f0e50eb8fa1744a731088b966427575e40c2944a980049798b127a687e", size = 5945647, upload-time = "2025-07-24T18:53:45.269Z" }, - { url = "https://files.pythonhosted.org/packages/c5/83/5a354c8aaff58594eef7fffebae41a0f8995a6258bbc6809b800c33d4c13/grpcio-1.74.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:566b9395b90cc3d0d0c6404bc8572c7c18786ede549cdb540ae27b58afe0fb91", size = 6626101, upload-time = "2025-07-24T18:53:47.015Z" }, - { url = "https://files.pythonhosted.org/packages/3f/ca/4fdc7bf59bf6994aa45cbd4ef1055cd65e2884de6113dbd49f75498ddb08/grpcio-1.74.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1ea6176d7dfd5b941ea01c2ec34de9531ba494d541fe2057c904e601879f249", size = 6182562, upload-time = "2025-07-24T18:53:48.967Z" }, - { url = "https://files.pythonhosted.org/packages/fd/48/2869e5b2c1922583686f7ae674937986807c2f676d08be70d0a541316270/grpcio-1.74.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:64229c1e9cea079420527fa8ac45d80fc1e8d3f94deaa35643c381fa8d98f362", size = 6303425, upload-time = "2025-07-24T18:53:50.847Z" }, - { url = "https://files.pythonhosted.org/packages/a6/0e/bac93147b9a164f759497bc6913e74af1cb632c733c7af62c0336782bd38/grpcio-1.74.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:0f87bddd6e27fc776aacf7ebfec367b6d49cad0455123951e4488ea99d9b9b8f", size = 6996533, upload-time = "2025-07-24T18:53:52.747Z" }, - { url = "https://files.pythonhosted.org/packages/84/35/9f6b2503c1fd86d068b46818bbd7329db26a87cdd8c01e0d1a9abea1104c/grpcio-1.74.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3b03d8f2a07f0fea8c8f74deb59f8352b770e3900d143b3d1475effcb08eec20", size = 6491489, upload-time = "2025-07-24T18:53:55.06Z" }, - { url = "https://files.pythonhosted.org/packages/75/33/a04e99be2a82c4cbc4039eb3a76f6c3632932b9d5d295221389d10ac9ca7/grpcio-1.74.0-cp313-cp313-win32.whl", hash = "sha256:b6a73b2ba83e663b2480a90b82fdae6a7aa6427f62bf43b29912c0cfd1aa2bfa", size = 3805811, upload-time = "2025-07-24T18:53:56.798Z" }, - { url = "https://files.pythonhosted.org/packages/34/80/de3eb55eb581815342d097214bed4c59e806b05f1b3110df03b2280d6dfd/grpcio-1.74.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd3c71aeee838299c5887230b8a1822795325ddfea635edd82954c1eaa831e24", size = 4489214, upload-time = "2025-07-24T18:53:59.771Z" }, -] - -[[package]] -name = "grpcio-tools" -version = "1.74.0" +name = "fastapi" +version = "0.116.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "grpcio" }, - { name = "protobuf" }, - { name = "setuptools" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/90/c8/bca79cb8c14bb63027831039919c801db9f593c7504c09433934f5dff6a4/grpcio_tools-1.74.0.tar.gz", hash = "sha256:88ab9eb18b6ac1b4872add6b394073bd8d44eee7c32e4dc60a022e25ffaffb95", size = 5390007, upload-time = "2025-07-24T18:57:23.852Z" } +sdist = { url = "https://files.pythonhosted.org/packages/78/d7/6c8b3bfe33eeffa208183ec037fee0cce9f7f024089ab1c5d12ef04bd27c/fastapi-0.116.1.tar.gz", hash = "sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143", size = 296485, upload-time = "2025-07-11T16:22:32.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/65/307a72cf4bfa553a25e284bd1f27b94a53816ac01ddf432c398117b91b2a/grpcio_tools-1.74.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:e2e22460355adbd0f25fdd7ed8b9ae53afb3875b9d5f34cdf1cf12559418245e", size = 2545750, upload-time = "2025-07-24T18:56:46.386Z" }, - { url = "https://files.pythonhosted.org/packages/5b/8e/9b2217c15baadc7cfca3eba9f980e147452ca82f41767490f619edea3489/grpcio_tools-1.74.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:0cab5a2c6ae75b555fee8a1a9a9b575205171e1de392fe2d4139a29e67d8f5bb", size = 5838169, upload-time = "2025-07-24T18:56:48.057Z" }, - { url = "https://files.pythonhosted.org/packages/ea/42/a6a158b7e91c0a358cddf3f9088b004c2bfa42d1f96154b9b8eb17e16d73/grpcio_tools-1.74.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:9b18afca48b55832402a716ea4634ef2b68927a8a17ddf4038f51812299255c9", size = 2517140, upload-time = "2025-07-24T18:56:49.696Z" }, - { url = "https://files.pythonhosted.org/packages/05/db/d4576a07b2d1211822a070f76a99a9f4f4cb63496a02964ce77c88df8a28/grpcio_tools-1.74.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85f442a9e89e276bf89a0c9c76ea71647a927d967759333c1fa40300c27f7bd", size = 2905214, upload-time = "2025-07-24T18:56:51.768Z" }, - { url = "https://files.pythonhosted.org/packages/77/dc/3713e75751f862d8c84f823ba935d486c0aac0b6f789fa61fbde04ad5019/grpcio_tools-1.74.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:051ce925b0b99ae2daf61b3cba19962b8655cc2a72758ce4081b89272206f5a3", size = 2656245, upload-time = "2025-07-24T18:56:53.877Z" }, - { url = "https://files.pythonhosted.org/packages/bd/e4/01f9e8e0401d8e11a70ae8aff6899eb8c16536f69a0a9ffb25873588721c/grpcio_tools-1.74.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:98c7b8eb0de6984cd7fa7335ce3383b3bb9a1559edc238c811df88008d5d3593", size = 3052327, upload-time = "2025-07-24T18:56:55.535Z" }, - { url = "https://files.pythonhosted.org/packages/28/c2/264b4e705375a834c9c7462847ae435c0be1644f03a705d3d7464af07bd5/grpcio_tools-1.74.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f8f7d17b7573b9a2a6b4183fa4a56a2ab17370c8d0541e1424cf0c9c6f863434", size = 3500706, upload-time = "2025-07-24T18:56:57.245Z" }, - { url = "https://files.pythonhosted.org/packages/ee/c0/cc034cec5871a1918e7888e8ce700e06fab5bbb328f998a2f2750cd603b5/grpcio_tools-1.74.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:db08b91ea0cd66dc4b1b929100e7aa84c9c10c51573c8282ec1ba05b41f887ef", size = 3125098, upload-time = "2025-07-24T18:56:59.02Z" }, - { url = "https://files.pythonhosted.org/packages/69/55/5792b681af82b3ff1e50ce0ccfbb6d52fc68a13932ed3da57e58d7dfb67b/grpcio_tools-1.74.0-cp313-cp313-win32.whl", hash = "sha256:4b6c5efb331ae9e5f614437f4a5938459a8a5a1ab3dfe133d2bbdeaba39b894d", size = 992431, upload-time = "2025-07-24T18:57:00.618Z" }, - { url = "https://files.pythonhosted.org/packages/94/9f/626f0fe6bfc1c6917785c6a5ee2eb8c07b5a30771e4bf4cff3c1ab5b431b/grpcio_tools-1.74.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8324cd67f61f7900d227b36913ee5f0302ba3ba8777c8bc705afa8174098d28", size = 1157064, upload-time = "2025-07-24T18:57:02.579Z" }, + { url = "https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl", hash = "sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565", size = 95631, upload-time = "2025-07-11T16:22:30.485Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httptools" +version = "0.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/9a/ce5e1f7e131522e6d3426e8e7a490b3a01f39a6696602e1c4f33f9e94277/httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c", size = 240639, upload-time = "2024-10-16T19:45:08.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/a3/9fe9ad23fd35f7de6b91eeb60848986058bd8b5a5c1e256f5860a160cc3e/httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660", size = 197214, upload-time = "2024-10-16T19:44:38.738Z" }, + { url = "https://files.pythonhosted.org/packages/ea/d9/82d5e68bab783b632023f2fa31db20bebb4e89dfc4d2293945fd68484ee4/httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083", size = 102431, upload-time = "2024-10-16T19:44:39.818Z" }, + { url = "https://files.pythonhosted.org/packages/96/c1/cb499655cbdbfb57b577734fde02f6fa0bbc3fe9fb4d87b742b512908dff/httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3", size = 473121, upload-time = "2024-10-16T19:44:41.189Z" }, + { url = "https://files.pythonhosted.org/packages/af/71/ee32fd358f8a3bb199b03261f10921716990808a675d8160b5383487a317/httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071", size = 473805, upload-time = "2024-10-16T19:44:42.384Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0a/0d4df132bfca1507114198b766f1737d57580c9ad1cf93c1ff673e3387be/httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5", size = 448858, upload-time = "2024-10-16T19:44:43.959Z" }, + { url = "https://files.pythonhosted.org/packages/1e/6a/787004fdef2cabea27bad1073bf6a33f2437b4dbd3b6fb4a9d71172b1c7c/httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0", size = 452042, upload-time = "2024-10-16T19:44:45.071Z" }, + { url = "https://files.pythonhosted.org/packages/4d/dc/7decab5c404d1d2cdc1bb330b1bf70e83d6af0396fd4fc76fc60c0d522bf/httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8", size = 87682, upload-time = "2024-10-16T19:44:46.46Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] [[package]] @@ -213,39 +200,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] -[[package]] -name = "protobuf" -version = "6.31.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/f3/b9655a711b32c19720253f6f06326faf90580834e2e83f840472d752bc8b/protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a", size = 441797, upload-time = "2025-05-28T19:25:54.947Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/6f/6ab8e4bf962fd5570d3deaa2d5c38f0a363f57b4501047b5ebeb83ab1125/protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9", size = 423603, upload-time = "2025-05-28T19:25:41.198Z" }, - { url = "https://files.pythonhosted.org/packages/44/3a/b15c4347dd4bf3a1b0ee882f384623e2063bb5cf9fa9d57990a4f7df2fb6/protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447", size = 435283, upload-time = "2025-05-28T19:25:44.275Z" }, - { url = "https://files.pythonhosted.org/packages/6a/c9/b9689a2a250264a84e66c46d8862ba788ee7a641cdca39bccf64f59284b7/protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402", size = 425604, upload-time = "2025-05-28T19:25:45.702Z" }, - { url = "https://files.pythonhosted.org/packages/76/a1/7a5a94032c83375e4fe7e7f56e3976ea6ac90c5e85fac8576409e25c39c3/protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39", size = 322115, upload-time = "2025-05-28T19:25:47.128Z" }, - { url = "https://files.pythonhosted.org/packages/fa/b1/b59d405d64d31999244643d88c45c8241c58f17cc887e73bcb90602327f8/protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6", size = 321070, upload-time = "2025-05-28T19:25:50.036Z" }, - { url = "https://files.pythonhosted.org/packages/f7/af/ab3c51ab7507a7325e98ffe691d9495ee3d3aa5f589afad65ec920d39821/protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e", size = 168724, upload-time = "2025-05-28T19:25:53.926Z" }, -] - -[[package]] -name = "psycopg2-binary" -version = "2.9.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cb/0e/bdc8274dc0585090b4e3432267d7be4dfbfd8971c0fa59167c711105a6bf/psycopg2-binary-2.9.10.tar.gz", hash = "sha256:4b3df0e6990aa98acda57d983942eff13d824135fe2250e6522edaa782a06de2", size = 385764, upload-time = "2024-10-16T11:24:58.126Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/30/d41d3ba765609c0763505d565c4d12d8f3c79793f0d0f044ff5a28bf395b/psycopg2_binary-2.9.10-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:26540d4a9a4e2b096f1ff9cce51253d0504dca5a85872c7f7be23be5a53eb18d", size = 3044699, upload-time = "2024-10-16T11:21:42.841Z" }, - { url = "https://files.pythonhosted.org/packages/35/44/257ddadec7ef04536ba71af6bc6a75ec05c5343004a7ec93006bee66c0bc/psycopg2_binary-2.9.10-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e217ce4d37667df0bc1c397fdcd8de5e81018ef305aed9415c3b093faaeb10fb", size = 3275245, upload-time = "2024-10-16T11:21:51.989Z" }, - { url = "https://files.pythonhosted.org/packages/1b/11/48ea1cd11de67f9efd7262085588790a95d9dfcd9b8a687d46caf7305c1a/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:245159e7ab20a71d989da00f280ca57da7641fa2cdcf71749c193cea540a74f7", size = 2851631, upload-time = "2024-10-16T11:21:57.584Z" }, - { url = "https://files.pythonhosted.org/packages/62/e0/62ce5ee650e6c86719d621a761fe4bc846ab9eff8c1f12b1ed5741bf1c9b/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c4ded1a24b20021ebe677b7b08ad10bf09aac197d6943bfe6fec70ac4e4690d", size = 3082140, upload-time = "2024-10-16T11:22:02.005Z" }, - { url = "https://files.pythonhosted.org/packages/27/ce/63f946c098611f7be234c0dd7cb1ad68b0b5744d34f68062bb3c5aa510c8/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3abb691ff9e57d4a93355f60d4f4c1dd2d68326c968e7db17ea96df3c023ef73", size = 3264762, upload-time = "2024-10-16T11:22:06.412Z" }, - { url = "https://files.pythonhosted.org/packages/43/25/c603cd81402e69edf7daa59b1602bd41eb9859e2824b8c0855d748366ac9/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8608c078134f0b3cbd9f89b34bd60a943b23fd33cc5f065e8d5f840061bd0673", size = 3020967, upload-time = "2024-10-16T11:22:11.583Z" }, - { url = "https://files.pythonhosted.org/packages/5f/d6/8708d8c6fca531057fa170cdde8df870e8b6a9b136e82b361c65e42b841e/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:230eeae2d71594103cd5b93fd29d1ace6420d0b86f4778739cb1a5a32f607d1f", size = 2872326, upload-time = "2024-10-16T11:22:16.406Z" }, - { url = "https://files.pythonhosted.org/packages/ce/ac/5b1ea50fc08a9df82de7e1771537557f07c2632231bbab652c7e22597908/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bb89f0a835bcfc1d42ccd5f41f04870c1b936d8507c6df12b7737febc40f0909", size = 2822712, upload-time = "2024-10-16T11:22:21.366Z" }, - { url = "https://files.pythonhosted.org/packages/c4/fc/504d4503b2abc4570fac3ca56eb8fed5e437bf9c9ef13f36b6621db8ef00/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f0c2d907a1e102526dd2986df638343388b94c33860ff3bbe1384130828714b1", size = 2920155, upload-time = "2024-10-16T11:22:25.684Z" }, - { url = "https://files.pythonhosted.org/packages/b2/d1/323581e9273ad2c0dbd1902f3fb50c441da86e894b6e25a73c3fda32c57e/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f8157bed2f51db683f31306aa497311b560f2265998122abe1dce6428bd86567", size = 2959356, upload-time = "2024-10-16T11:22:30.562Z" }, - { url = "https://files.pythonhosted.org/packages/08/50/d13ea0a054189ae1bc21af1d85b6f8bb9bbc5572991055d70ad9006fe2d6/psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl", hash = "sha256:27422aa5f11fbcd9b18da48373eb67081243662f9b46e6fd07c3eb46e4535142", size = 2569224, upload-time = "2025-01-04T20:09:19.234Z" }, -] - [[package]] name = "pydantic" version = "2.11.7" @@ -289,6 +243,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload-time = "2025-04-23T18:32:25.088Z" }, ] +[[package]] +name = "pydantic-settings" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583, upload-time = "2025-06-24T13:26:46.841Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235, upload-time = "2025-06-24T13:26:45.485Z" }, +] + [[package]] name = "pygments" version = "2.19.2" @@ -324,33 +292,41 @@ wheels = [ ] [[package]] -name = "setuptools" -version = "80.9.0" +name = "pyyaml" +version = "6.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" }, ] [[package]] -name = "sqlalchemy" -version = "2.0.43" +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "starlette" +version = "0.47.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "greenlet", marker = "(python_full_version < '3.14' and platform_machine == 'AMD64') or (python_full_version < '3.14' and platform_machine == 'WIN32') or (python_full_version < '3.14' and platform_machine == 'aarch64') or (python_full_version < '3.14' and platform_machine == 'amd64') or (python_full_version < '3.14' and platform_machine == 'ppc64le') or (python_full_version < '3.14' and platform_machine == 'win32') or (python_full_version < '3.14' and platform_machine == 'x86_64')" }, - { name = "typing-extensions" }, + { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d7/bc/d59b5d97d27229b0e009bd9098cd81af71c2fa5549c580a0a67b9bed0496/sqlalchemy-2.0.43.tar.gz", hash = "sha256:788bfcef6787a7764169cfe9859fe425bf44559619e1d9f56f5bddf2ebf6f417", size = 9762949, upload-time = "2025-08-11T14:24:58.438Z" } +sdist = { url = "https://files.pythonhosted.org/packages/15/b9/cc3017f9a9c9b6e27c5106cc10cc7904653c3eec0729793aec10479dd669/starlette-0.47.3.tar.gz", hash = "sha256:6bc94f839cc176c4858894f1f8908f0ab79dfec1a6b8402f6da9be26ebea52e9", size = 2584144, upload-time = "2025-08-24T13:36:42.122Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/1c/a7260bd47a6fae7e03768bf66451437b36451143f36b285522b865987ced/sqlalchemy-2.0.43-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e7c08f57f75a2bb62d7ee80a89686a5e5669f199235c6d1dac75cd59374091c3", size = 2130598, upload-time = "2025-08-11T15:51:15.903Z" }, - { url = "https://files.pythonhosted.org/packages/8e/84/8a337454e82388283830b3586ad7847aa9c76fdd4f1df09cdd1f94591873/sqlalchemy-2.0.43-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:14111d22c29efad445cd5021a70a8b42f7d9152d8ba7f73304c4d82460946aaa", size = 2118415, upload-time = "2025-08-11T15:51:17.256Z" }, - { url = "https://files.pythonhosted.org/packages/cf/ff/22ab2328148492c4d71899d62a0e65370ea66c877aea017a244a35733685/sqlalchemy-2.0.43-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21b27b56eb2f82653168cefe6cb8e970cdaf4f3a6cb2c5e3c3c1cf3158968ff9", size = 3248707, upload-time = "2025-08-11T15:52:38.444Z" }, - { url = "https://files.pythonhosted.org/packages/dc/29/11ae2c2b981de60187f7cbc84277d9d21f101093d1b2e945c63774477aba/sqlalchemy-2.0.43-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c5a9da957c56e43d72126a3f5845603da00e0293720b03bde0aacffcf2dc04f", size = 3253602, upload-time = "2025-08-11T15:56:37.348Z" }, - { url = "https://files.pythonhosted.org/packages/b8/61/987b6c23b12c56d2be451bc70900f67dd7d989d52b1ee64f239cf19aec69/sqlalchemy-2.0.43-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d79f9fdc9584ec83d1b3c75e9f4595c49017f5594fee1a2217117647225d738", size = 3183248, upload-time = "2025-08-11T15:52:39.865Z" }, - { url = "https://files.pythonhosted.org/packages/86/85/29d216002d4593c2ce1c0ec2cec46dda77bfbcd221e24caa6e85eff53d89/sqlalchemy-2.0.43-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9df7126fd9db49e3a5a3999442cc67e9ee8971f3cb9644250107d7296cb2a164", size = 3219363, upload-time = "2025-08-11T15:56:39.11Z" }, - { url = "https://files.pythonhosted.org/packages/b6/e4/bd78b01919c524f190b4905d47e7630bf4130b9f48fd971ae1c6225b6f6a/sqlalchemy-2.0.43-cp313-cp313-win32.whl", hash = "sha256:7f1ac7828857fcedb0361b48b9ac4821469f7694089d15550bbcf9ab22564a1d", size = 2096718, upload-time = "2025-08-11T15:55:05.349Z" }, - { url = "https://files.pythonhosted.org/packages/ac/a5/ca2f07a2a201f9497de1928f787926613db6307992fe5cda97624eb07c2f/sqlalchemy-2.0.43-cp313-cp313-win_amd64.whl", hash = "sha256:971ba928fcde01869361f504fcff3b7143b47d30de188b11c6357c0505824197", size = 2123200, upload-time = "2025-08-11T15:55:07.932Z" }, - { url = "https://files.pythonhosted.org/packages/b8/d9/13bdde6521f322861fab67473cec4b1cc8999f3871953531cf61945fad92/sqlalchemy-2.0.43-py3-none-any.whl", hash = "sha256:1681c21dd2ccee222c2fe0bef671d1aef7c504087c9c4e800371cfcc8ac966fc", size = 1924759, upload-time = "2025-08-11T15:39:53.024Z" }, + { url = "https://files.pythonhosted.org/packages/ce/fd/901cfa59aaa5b30a99e16876f11abe38b59a1a2c51ffb3d7142bb6089069/starlette-0.47.3-py3-none-any.whl", hash = "sha256:89c0778ca62a76b826101e7c709e70680a1699ca7da6b44d38eb0a7e61fe4b51", size = 72991, upload-time = "2025-08-24T13:36:40.887Z" }, ] [[package]] @@ -391,3 +367,115 @@ sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7 wheels = [ { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" }, ] + +[[package]] +name = "uvicorn" +version = "0.35.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473, upload-time = "2025-06-28T16:15:46.058Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406, upload-time = "2025-06-28T16:15:44.816Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "httptools" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "uvloop" +version = "0.21.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/c0/854216d09d33c543f12a44b393c402e89a920b1a0a7dc634c42de91b9cf6/uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3", size = 2492741, upload-time = "2024-10-14T23:38:35.489Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/8d/2cbef610ca21539f0f36e2b34da49302029e7c9f09acef0b1c3b5839412b/uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281", size = 1468123, upload-time = "2024-10-14T23:38:00.688Z" }, + { url = "https://files.pythonhosted.org/packages/93/0d/b0038d5a469f94ed8f2b2fce2434a18396d8fbfb5da85a0a9781ebbdec14/uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af", size = 819325, upload-time = "2024-10-14T23:38:02.309Z" }, + { url = "https://files.pythonhosted.org/packages/50/94/0a687f39e78c4c1e02e3272c6b2ccdb4e0085fda3b8352fecd0410ccf915/uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6", size = 4582806, upload-time = "2024-10-14T23:38:04.711Z" }, + { url = "https://files.pythonhosted.org/packages/d2/19/f5b78616566ea68edd42aacaf645adbf71fbd83fc52281fba555dc27e3f1/uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816", size = 4701068, upload-time = "2024-10-14T23:38:06.385Z" }, + { url = "https://files.pythonhosted.org/packages/47/57/66f061ee118f413cd22a656de622925097170b9380b30091b78ea0c6ea75/uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc", size = 4454428, upload-time = "2024-10-14T23:38:08.416Z" }, + { url = "https://files.pythonhosted.org/packages/63/9a/0962b05b308494e3202d3f794a6e85abe471fe3cafdbcf95c2e8c713aabd/uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553", size = 4660018, upload-time = "2024-10-14T23:38:10.888Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/9a/d451fcc97d029f5812e898fd30a53fd8c15c7bbd058fd75cfc6beb9bd761/watchfiles-1.1.0.tar.gz", hash = "sha256:693ed7ec72cbfcee399e92c895362b6e66d63dac6b91e2c11ae03d10d503e575", size = 94406, upload-time = "2025-06-15T19:06:59.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/42/fae874df96595556a9089ade83be34a2e04f0f11eb53a8dbf8a8a5e562b4/watchfiles-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5007f860c7f1f8df471e4e04aaa8c43673429047d63205d1630880f7637bca30", size = 402004, upload-time = "2025-06-15T19:05:38.499Z" }, + { url = "https://files.pythonhosted.org/packages/fa/55/a77e533e59c3003d9803c09c44c3651224067cbe7fb5d574ddbaa31e11ca/watchfiles-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:20ecc8abbd957046f1fe9562757903f5eaf57c3bce70929fda6c7711bb58074a", size = 393671, upload-time = "2025-06-15T19:05:39.52Z" }, + { url = "https://files.pythonhosted.org/packages/05/68/b0afb3f79c8e832e6571022611adbdc36e35a44e14f129ba09709aa4bb7a/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2f0498b7d2a3c072766dba3274fe22a183dbea1f99d188f1c6c72209a1063dc", size = 449772, upload-time = "2025-06-15T19:05:40.897Z" }, + { url = "https://files.pythonhosted.org/packages/ff/05/46dd1f6879bc40e1e74c6c39a1b9ab9e790bf1f5a2fe6c08b463d9a807f4/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:239736577e848678e13b201bba14e89718f5c2133dfd6b1f7846fa1b58a8532b", size = 456789, upload-time = "2025-06-15T19:05:42.045Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ca/0eeb2c06227ca7f12e50a47a3679df0cd1ba487ea19cf844a905920f8e95/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eff4b8d89f444f7e49136dc695599a591ff769300734446c0a86cba2eb2f9895", size = 482551, upload-time = "2025-06-15T19:05:43.781Z" }, + { url = "https://files.pythonhosted.org/packages/31/47/2cecbd8694095647406645f822781008cc524320466ea393f55fe70eed3b/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12b0a02a91762c08f7264e2e79542f76870c3040bbc847fb67410ab81474932a", size = 597420, upload-time = "2025-06-15T19:05:45.244Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7e/82abc4240e0806846548559d70f0b1a6dfdca75c1b4f9fa62b504ae9b083/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29e7bc2eee15cbb339c68445959108803dc14ee0c7b4eea556400131a8de462b", size = 477950, upload-time = "2025-06-15T19:05:46.332Z" }, + { url = "https://files.pythonhosted.org/packages/25/0d/4d564798a49bf5482a4fa9416dea6b6c0733a3b5700cb8a5a503c4b15853/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9481174d3ed982e269c090f780122fb59cee6c3796f74efe74e70f7780ed94c", size = 451706, upload-time = "2025-06-15T19:05:47.459Z" }, + { url = "https://files.pythonhosted.org/packages/81/b5/5516cf46b033192d544102ea07c65b6f770f10ed1d0a6d388f5d3874f6e4/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:80f811146831c8c86ab17b640801c25dc0a88c630e855e2bef3568f30434d52b", size = 625814, upload-time = "2025-06-15T19:05:48.654Z" }, + { url = "https://files.pythonhosted.org/packages/0c/dd/7c1331f902f30669ac3e754680b6edb9a0dd06dea5438e61128111fadd2c/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:60022527e71d1d1fda67a33150ee42869042bce3d0fcc9cc49be009a9cded3fb", size = 622820, upload-time = "2025-06-15T19:05:50.088Z" }, + { url = "https://files.pythonhosted.org/packages/1b/14/36d7a8e27cd128d7b1009e7715a7c02f6c131be9d4ce1e5c3b73d0e342d8/watchfiles-1.1.0-cp313-cp313-win32.whl", hash = "sha256:32d6d4e583593cb8576e129879ea0991660b935177c0f93c6681359b3654bfa9", size = 279194, upload-time = "2025-06-15T19:05:51.186Z" }, + { url = "https://files.pythonhosted.org/packages/25/41/2dd88054b849aa546dbeef5696019c58f8e0774f4d1c42123273304cdb2e/watchfiles-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:f21af781a4a6fbad54f03c598ab620e3a77032c5878f3d780448421a6e1818c7", size = 292349, upload-time = "2025-06-15T19:05:52.201Z" }, + { url = "https://files.pythonhosted.org/packages/c8/cf/421d659de88285eb13941cf11a81f875c176f76a6d99342599be88e08d03/watchfiles-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:5366164391873ed76bfdf618818c82084c9db7fac82b64a20c44d335eec9ced5", size = 283836, upload-time = "2025-06-15T19:05:53.265Z" }, + { url = "https://files.pythonhosted.org/packages/45/10/6faf6858d527e3599cc50ec9fcae73590fbddc1420bd4fdccfebffeedbc6/watchfiles-1.1.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:17ab167cca6339c2b830b744eaf10803d2a5b6683be4d79d8475d88b4a8a4be1", size = 400343, upload-time = "2025-06-15T19:05:54.252Z" }, + { url = "https://files.pythonhosted.org/packages/03/20/5cb7d3966f5e8c718006d0e97dfe379a82f16fecd3caa7810f634412047a/watchfiles-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:328dbc9bff7205c215a7807da7c18dce37da7da718e798356212d22696404339", size = 392916, upload-time = "2025-06-15T19:05:55.264Z" }, + { url = "https://files.pythonhosted.org/packages/8c/07/d8f1176328fa9e9581b6f120b017e286d2a2d22ae3f554efd9515c8e1b49/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7208ab6e009c627b7557ce55c465c98967e8caa8b11833531fdf95799372633", size = 449582, upload-time = "2025-06-15T19:05:56.317Z" }, + { url = "https://files.pythonhosted.org/packages/66/e8/80a14a453cf6038e81d072a86c05276692a1826471fef91df7537dba8b46/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a8f6f72974a19efead54195bc9bed4d850fc047bb7aa971268fd9a8387c89011", size = 456752, upload-time = "2025-06-15T19:05:57.359Z" }, + { url = "https://files.pythonhosted.org/packages/5a/25/0853b3fe0e3c2f5af9ea60eb2e781eade939760239a72c2d38fc4cc335f6/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d181ef50923c29cf0450c3cd47e2f0557b62218c50b2ab8ce2ecaa02bd97e670", size = 481436, upload-time = "2025-06-15T19:05:58.447Z" }, + { url = "https://files.pythonhosted.org/packages/fe/9e/4af0056c258b861fbb29dcb36258de1e2b857be4a9509e6298abcf31e5c9/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adb4167043d3a78280d5d05ce0ba22055c266cf8655ce942f2fb881262ff3cdf", size = 596016, upload-time = "2025-06-15T19:05:59.59Z" }, + { url = "https://files.pythonhosted.org/packages/c5/fa/95d604b58aa375e781daf350897aaaa089cff59d84147e9ccff2447c8294/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5701dc474b041e2934a26d31d39f90fac8a3dee2322b39f7729867f932b1d4", size = 476727, upload-time = "2025-06-15T19:06:01.086Z" }, + { url = "https://files.pythonhosted.org/packages/65/95/fe479b2664f19be4cf5ceeb21be05afd491d95f142e72d26a42f41b7c4f8/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b067915e3c3936966a8607f6fe5487df0c9c4afb85226613b520890049deea20", size = 451864, upload-time = "2025-06-15T19:06:02.144Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8a/3c4af14b93a15ce55901cd7a92e1a4701910f1768c78fb30f61d2b79785b/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:9c733cda03b6d636b4219625a4acb5c6ffb10803338e437fb614fef9516825ef", size = 625626, upload-time = "2025-06-15T19:06:03.578Z" }, + { url = "https://files.pythonhosted.org/packages/da/f5/cf6aa047d4d9e128f4b7cde615236a915673775ef171ff85971d698f3c2c/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:cc08ef8b90d78bfac66f0def80240b0197008e4852c9f285907377b2947ffdcb", size = 622744, upload-time = "2025-06-15T19:06:05.066Z" }, + { url = "https://files.pythonhosted.org/packages/2c/00/70f75c47f05dea6fd30df90f047765f6fc2d6eb8b5a3921379b0b04defa2/watchfiles-1.1.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9974d2f7dc561cce3bb88dfa8eb309dab64c729de85fba32e98d75cf24b66297", size = 402114, upload-time = "2025-06-15T19:06:06.186Z" }, + { url = "https://files.pythonhosted.org/packages/53/03/acd69c48db4a1ed1de26b349d94077cca2238ff98fd64393f3e97484cae6/watchfiles-1.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c68e9f1fcb4d43798ad8814c4c1b61547b014b667216cb754e606bfade587018", size = 393879, upload-time = "2025-06-15T19:06:07.369Z" }, + { url = "https://files.pythonhosted.org/packages/2f/c8/a9a2a6f9c8baa4eceae5887fecd421e1b7ce86802bcfc8b6a942e2add834/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95ab1594377effac17110e1352989bdd7bdfca9ff0e5eeccd8c69c5389b826d0", size = 450026, upload-time = "2025-06-15T19:06:08.476Z" }, + { url = "https://files.pythonhosted.org/packages/fe/51/d572260d98388e6e2b967425c985e07d47ee6f62e6455cefb46a6e06eda5/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fba9b62da882c1be1280a7584ec4515d0a6006a94d6e5819730ec2eab60ffe12", size = 457917, upload-time = "2025-06-15T19:06:09.988Z" }, + { url = "https://files.pythonhosted.org/packages/c6/2d/4258e52917bf9f12909b6ec314ff9636276f3542f9d3807d143f27309104/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3434e401f3ce0ed6b42569128b3d1e3af773d7ec18751b918b89cd49c14eaafb", size = 483602, upload-time = "2025-06-15T19:06:11.088Z" }, + { url = "https://files.pythonhosted.org/packages/84/99/bee17a5f341a4345fe7b7972a475809af9e528deba056f8963d61ea49f75/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa257a4d0d21fcbca5b5fcba9dca5a78011cb93c0323fb8855c6d2dfbc76eb77", size = 596758, upload-time = "2025-06-15T19:06:12.197Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/e4bec1d59b25b89d2b0716b41b461ed655a9a53c60dc78ad5771fda5b3e6/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fd1b3879a578a8ec2076c7961076df540b9af317123f84569f5a9ddee64ce92", size = 477601, upload-time = "2025-06-15T19:06:13.391Z" }, + { url = "https://files.pythonhosted.org/packages/1f/fa/a514292956f4a9ce3c567ec0c13cce427c158e9f272062685a8a727d08fc/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc7a30eeb0e20ecc5f4bd113cd69dcdb745a07c68c0370cea919f373f65d9e", size = 451936, upload-time = "2025-06-15T19:06:14.656Z" }, + { url = "https://files.pythonhosted.org/packages/32/5d/c3bf927ec3bbeb4566984eba8dd7a8eb69569400f5509904545576741f88/watchfiles-1.1.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:891c69e027748b4a73847335d208e374ce54ca3c335907d381fde4e41661b13b", size = 626243, upload-time = "2025-06-15T19:06:16.232Z" }, + { url = "https://files.pythonhosted.org/packages/e6/65/6e12c042f1a68c556802a84d54bb06d35577c81e29fba14019562479159c/watchfiles-1.1.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:12fe8eaffaf0faa7906895b4f8bb88264035b3f0243275e0bf24af0436b27259", size = 623073, upload-time = "2025-06-15T19:06:17.457Z" }, + { url = "https://files.pythonhosted.org/packages/89/ab/7f79d9bf57329e7cbb0a6fd4c7bd7d0cee1e4a8ef0041459f5409da3506c/watchfiles-1.1.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:bfe3c517c283e484843cb2e357dd57ba009cff351edf45fb455b5fbd1f45b15f", size = 400872, upload-time = "2025-06-15T19:06:18.57Z" }, + { url = "https://files.pythonhosted.org/packages/df/d5/3f7bf9912798e9e6c516094db6b8932df53b223660c781ee37607030b6d3/watchfiles-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a9ccbf1f129480ed3044f540c0fdbc4ee556f7175e5ab40fe077ff6baf286d4e", size = 392877, upload-time = "2025-06-15T19:06:19.55Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c5/54ec7601a2798604e01c75294770dbee8150e81c6e471445d7601610b495/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba0e3255b0396cac3cc7bbace76404dd72b5438bf0d8e7cefa2f79a7f3649caa", size = 449645, upload-time = "2025-06-15T19:06:20.66Z" }, + { url = "https://files.pythonhosted.org/packages/0a/04/c2f44afc3b2fce21ca0b7802cbd37ed90a29874f96069ed30a36dfe57c2b/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4281cd9fce9fc0a9dbf0fc1217f39bf9cf2b4d315d9626ef1d4e87b84699e7e8", size = 457424, upload-time = "2025-06-15T19:06:21.712Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b0/eec32cb6c14d248095261a04f290636da3df3119d4040ef91a4a50b29fa5/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d2404af8db1329f9a3c9b79ff63e0ae7131986446901582067d9304ae8aaf7f", size = 481584, upload-time = "2025-06-15T19:06:22.777Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/ca4bb71c68a937d7145aa25709e4f5d68eb7698a25ce266e84b55d591bbd/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e78b6ed8165996013165eeabd875c5dfc19d41b54f94b40e9fff0eb3193e5e8e", size = 596675, upload-time = "2025-06-15T19:06:24.226Z" }, + { url = "https://files.pythonhosted.org/packages/a1/dd/b0e4b7fb5acf783816bc950180a6cd7c6c1d2cf7e9372c0ea634e722712b/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:249590eb75ccc117f488e2fabd1bfa33c580e24b96f00658ad88e38844a040bb", size = 477363, upload-time = "2025-06-15T19:06:25.42Z" }, + { url = "https://files.pythonhosted.org/packages/69/c4/088825b75489cb5b6a761a4542645718893d395d8c530b38734f19da44d2/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d05686b5487cfa2e2c28ff1aa370ea3e6c5accfe6435944ddea1e10d93872147", size = 452240, upload-time = "2025-06-15T19:06:26.552Z" }, + { url = "https://files.pythonhosted.org/packages/10/8c/22b074814970eeef43b7c44df98c3e9667c1f7bf5b83e0ff0201b0bd43f9/watchfiles-1.1.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:d0e10e6f8f6dc5762adee7dece33b722282e1f59aa6a55da5d493a97282fedd8", size = 625607, upload-time = "2025-06-15T19:06:27.606Z" }, + { url = "https://files.pythonhosted.org/packages/32/fa/a4f5c2046385492b2273213ef815bf71a0d4c1943b784fb904e184e30201/watchfiles-1.1.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:af06c863f152005c7592df1d6a7009c836a247c9d8adb78fef8575a5a98699db", size = 623315, upload-time = "2025-06-15T19:06:29.076Z" }, +] + +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +]