From f3ecc5e238dee068a0590f2e788cf300e014e357 Mon Sep 17 00:00:00 2001 From: pro100ton Date: Sun, 22 Jun 2025 18:44:49 +0300 Subject: [PATCH] Remove all python code --- .gitignore | 165 --- README.md | 64 - api/__init__.py | 0 api/proto/README.md | 5 - api/proto/__init__.py | 0 api/proto/routes.proto | 14 - api/proto/routes_pb2.py | 40 - api/proto/routes_pb2.pyi | 19 - api/proto/routes_pb2_grpc.py | 97 -- apple/__init__.py | 0 apple/examples/full.txt | 1545 ------------------------ apple/examples/notes.txt | 36 - apple/mapper.py | 572 --------- apple/notes_parser.py | 144 --- compose.yaml | 11 - conftest.py | 0 dbapi/__init__.py | 0 dbapi/context_managers.py | 0 dbapi/migrator.py | 15 - dbapi/repositories/__init__.py | 0 dbapi/repositories/approach_repo.py | 27 - dbapi/repositories/exercise_repo.py | 25 - dbapi/repositories/training_repo.py | 23 - dbapi/repositories/utils.py | 8 - dbapi/tables.py | 37 - elect | 84 -- env_template | 3 - main.py | 18 - main_backup.py | 190 --- obsidian/__init__.py | 0 obsidian/examples/full.txt | 526 -------- obsidian/examples/notes.txt | 53 - obsidian/mapper.py | 156 --- obsidian/notes_parser.py | 121 -- obsidian/py_models.py | 22 - obsidian/tests/test_obsidian_parser.py | 72 -- parser.py | 0 playground/README.md | 3 - playground/contexts.py | 66 - poetry.lock | 773 ------------ pyproject.toml | 23 - utils/__init__.py | 0 utils/enums.py | 61 - 43 files changed, 5018 deletions(-) delete mode 100644 .gitignore delete mode 100644 README.md delete mode 100644 api/__init__.py delete mode 100644 api/proto/README.md delete mode 100644 api/proto/__init__.py delete mode 100644 api/proto/routes.proto delete mode 100644 api/proto/routes_pb2.py delete mode 100644 api/proto/routes_pb2.pyi delete mode 100644 api/proto/routes_pb2_grpc.py delete mode 100644 apple/__init__.py delete mode 100644 apple/examples/full.txt delete mode 100644 apple/examples/notes.txt delete mode 100644 apple/mapper.py delete mode 100644 apple/notes_parser.py delete mode 100644 compose.yaml delete mode 100644 conftest.py delete mode 100644 dbapi/__init__.py delete mode 100644 dbapi/context_managers.py delete mode 100644 dbapi/migrator.py delete mode 100644 dbapi/repositories/__init__.py delete mode 100644 dbapi/repositories/approach_repo.py delete mode 100644 dbapi/repositories/exercise_repo.py delete mode 100644 dbapi/repositories/training_repo.py delete mode 100644 dbapi/repositories/utils.py delete mode 100644 dbapi/tables.py delete mode 100644 elect delete mode 100644 env_template delete mode 100644 main.py delete mode 100644 main_backup.py delete mode 100644 obsidian/__init__.py delete mode 100644 obsidian/examples/full.txt delete mode 100644 obsidian/examples/notes.txt delete mode 100644 obsidian/mapper.py delete mode 100644 obsidian/notes_parser.py delete mode 100644 obsidian/py_models.py delete mode 100644 obsidian/tests/test_obsidian_parser.py delete mode 100644 parser.py delete mode 100644 playground/README.md delete mode 100644 playground/contexts.py delete mode 100644 poetry.lock delete mode 100644 pyproject.toml delete mode 100644 utils/__init__.py delete mode 100644 utils/enums.py diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c340b9d..0000000 --- a/.gitignore +++ /dev/null @@ -1,165 +0,0 @@ -# ---> Python -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/latest/usage/project/#working-with-version-control -.pdm.toml -.pdm-python -.pdm-build/ - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ - -pyrightconfig.json diff --git a/README.md b/README.md deleted file mode 100644 index 4a28bc8..0000000 --- a/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# f1tness_parser - -Приложение для парсинга текстовых файлов тренировок - -## Поддерживаемые записи -Работает с двумя категорями записей: -- Obsidian notes -- Apple notes - -## Формат записей -Тренировки должны быть записаны в форматах: -### Obsisian notes -``` -# 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 | - -``` -### Apple notes -``` -**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)** -``` - diff --git a/api/__init__.py b/api/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/api/proto/README.md b/api/proto/README.md deleted file mode 100644 index 31eeb7a..0000000 --- a/api/proto/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Команда для генерации файлов -*Запускать надо из корня приложения* -``` -python3 -m grpc_tools.protoc -Iapi/proto=api/proto --python_out=. --pyi_out=. --grpc_python_out=. api/proto/routes.proto -``` diff --git a/api/proto/__init__.py b/api/proto/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/api/proto/routes.proto b/api/proto/routes.proto deleted file mode 100644 index d3c24e0..0000000 --- a/api/proto/routes.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - -service RouteApproaches { - rpc GetApproach(ApproachID) returns (Approach) {} -} - -message ApproachID { - int32 approachID = 1; -} - -message Approach { - int32 reps = 1; - double weight = 2; -} diff --git a/api/proto/routes_pb2.py b/api/proto/routes_pb2.py deleted file mode 100644 index 70d254d..0000000 --- a/api/proto/routes_pb2.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: api/proto/routes.proto -# Protobuf Python Version: 5.29.0 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 0, - '', - 'api/proto/routes.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x61pi/proto/routes.proto\" \n\nApproachID\x12\x12\n\napproachID\x18\x01 \x01(\x05\"(\n\x08\x41pproach\x12\x0c\n\x04reps\x18\x01 \x01(\x05\x12\x0e\n\x06weight\x18\x02 \x01(\x01\x32:\n\x0fRouteApproaches\x12\'\n\x0bGetApproach\x12\x0b.ApproachID\x1a\t.Approach\"\x00\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api.proto.routes_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_APPROACHID']._serialized_start=26 - _globals['_APPROACHID']._serialized_end=58 - _globals['_APPROACH']._serialized_start=60 - _globals['_APPROACH']._serialized_end=100 - _globals['_ROUTEAPPROACHES']._serialized_start=102 - _globals['_ROUTEAPPROACHES']._serialized_end=160 -# @@protoc_insertion_point(module_scope) diff --git a/api/proto/routes_pb2.pyi b/api/proto/routes_pb2.pyi deleted file mode 100644 index b9bf3c7..0000000 --- a/api/proto/routes_pb2.pyi +++ /dev/null @@ -1,19 +0,0 @@ -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Optional as _Optional - -DESCRIPTOR: _descriptor.FileDescriptor - -class ApproachID(_message.Message): - __slots__ = ("approachID",) - APPROACHID_FIELD_NUMBER: _ClassVar[int] - approachID: int - def __init__(self, approachID: _Optional[int] = ...) -> None: ... - -class Approach(_message.Message): - __slots__ = ("reps", "weight") - REPS_FIELD_NUMBER: _ClassVar[int] - WEIGHT_FIELD_NUMBER: _ClassVar[int] - reps: int - weight: float - def __init__(self, reps: _Optional[int] = ..., weight: _Optional[float] = ...) -> None: ... diff --git a/api/proto/routes_pb2_grpc.py b/api/proto/routes_pb2_grpc.py deleted file mode 100644 index 77aa122..0000000 --- a/api/proto/routes_pb2_grpc.py +++ /dev/null @@ -1,97 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc -import warnings - -from api.proto import routes_pb2 as api_dot_proto_dot_routes__pb2 - -GRPC_GENERATED_VERSION = '1.70.0' -GRPC_VERSION = grpc.__version__ -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - raise RuntimeError( - f'The grpc package installed is at version {GRPC_VERSION},' - + f' but the generated code in api/proto/routes_pb2_grpc.py depends on' - + f' grpcio>={GRPC_GENERATED_VERSION}.' - + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' - + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' - ) - - -class RouteApproachesStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.GetApproach = channel.unary_unary( - '/RouteApproaches/GetApproach', - request_serializer=api_dot_proto_dot_routes__pb2.ApproachID.SerializeToString, - response_deserializer=api_dot_proto_dot_routes__pb2.Approach.FromString, - _registered_method=True) - - -class RouteApproachesServicer(object): - """Missing associated documentation comment in .proto file.""" - - def GetApproach(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_RouteApproachesServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetApproach': grpc.unary_unary_rpc_method_handler( - servicer.GetApproach, - request_deserializer=api_dot_proto_dot_routes__pb2.ApproachID.FromString, - response_serializer=api_dot_proto_dot_routes__pb2.Approach.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'RouteApproaches', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('RouteApproaches', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class RouteApproaches(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def GetApproach(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/RouteApproaches/GetApproach', - api_dot_proto_dot_routes__pb2.ApproachID.SerializeToString, - api_dot_proto_dot_routes__pb2.Approach.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) diff --git a/apple/__init__.py b/apple/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/apple/examples/full.txt b/apple/examples/full.txt deleted file mode 100644 index 161d7a0..0000000 --- a/apple/examples/full.txt +++ /dev/null @@ -1,1545 +0,0 @@ -**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 | - -**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.2042 (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/apple/mapper.py b/apple/mapper.py deleted file mode 100644 index 5fc35be..0000000 --- a/apple/mapper.py +++ /dev/null @@ -1,572 +0,0 @@ -unique_apple_exercises_mapper = { - "Батерфляй": "Баттерфляй", - "Баттерфляй": "Баттерфляй", - "Баттерфляй дю": "Баттерфляй", - "Бицепс на лавке 45⁰": "Подъем гантелей на бицепс сидя", - "Болгарский присед": "Болгарские сплит-приседения", - "Брусья": "Брусья", - "Брусья (гравитрон)": "Брусья", - "Брусья в тренажере": "Брусья", - "Брусья прямые ноги": "Брусья", - "Брусья узким хватом": "Брусья", - "Брусья узким хватом за": "Брусья", - "Брусья широким хватом": "Брусья", - "Брусья-прямые ноги": "Брусья", - "ГАК машина": "Жим ногами (гакк-машина)", - "Гакк машина": "Жим ногами (гакк-машина)", - "Гакк присед": "Жим ногами (гакк-машина)", - "Гантели": "Подъем гантелей на бицепс стоя", - "Гантели к поясу лежа на скамье": "Тяга гантелей на скамье", - "Гантели молот": "Гантели молот", - "Гантели на лавках": "Жим гантелей сидя", - "Гантели-молот": "Гантели молот", - "Гипекстензия": "Гиперэкстензия", - "Гиперэкстензия": "Гиперэкстензия", - "Горизонтальна тяга на себя": "Тяга горизонтального блока", - "Горизонтальная тяга блока": "Тяга горизонтального блока", - "Гравитрон": "Гравитрон", - "Гравитрор": "Гравитрон", - "Гребная тяга": "Гребная тяга с упором в грудь", - "Гребная тяга с упором в грудь": "Гребная тяга с упором в грудь", - "Гребная тяга с упором в грудь как": "Гребная тяга с упором в грудь", - "Гребная тяга с упором на грудь": "Гребная тяга с упором в грудь", - "Гребная тяга сидя (одна рука)": "Гребная тяга с упором в грудь (по очереди)", - "Гребная тяга сидя одной рукой": "Гребная тяга с упором в грудь (по очереди)", - "Гребная тяга сидя с упором в грудт": "Гребная тяга с упором в грудь", - "Гребная тяга сидя с упором в грудь": "Гребная тяга с упором в грудь", - "Гребная тяга сидя с упором в грудь (одной рукой рычаг)": "Гребная тяга с упором в грудь (по очереди)", - "Гребная тяга\xa0 упором в грудьс": "Гребная тяга с упором в грудь", - "Жим в тренажере вверх": "Жим от плеч вверх в тренажере (рычаги)", - "Жим в тренажере на плечи блочный (3х12)": "Жим от плеч вверх в тренажере (рычаги)", - "Жим в тренажёре на плечи (силовой тренажёр: жим сидя)": "Жим от плеч вверх в тренажере (рычаги)", - "Жим вверх 80⁰": "Жим гантелей сидя", - "Жим гантелей": "Жим гантелей лежа", - "Жим гантелей 45⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей 60⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей 80⁰": "Жим гантелей сидя", - "Жим гантелей 90⁰": "Жим гантелей сидя", - "Жим гантелей вверх 80⁰": "Жим гантелей сидя", - "Жим гантелей вверх 90⁰": "Жим гантелей сидя", - "Жим гантелей вверх сидя 90⁰": "Жим гантелей сидя", - "Жим гантелей лежа": "Жим гантелей лежа", - "Жим гантелей лежа 15⁰": "Жим гантелей лежа", - "Жим гантелей лежа 30⁰": "Жим гантелей лежа", - "Жим гантелей лежа на скамье": "Жим гантелей лежа", - "Жим гантелей лёжа": "Жим гантелей лежа", - "Жим гантелей лёжа на скамье": "Жим гантелей лежа", - "Жим гантелей на скамье": "Жим гантелей лежа", - "Жим гантелей на скамье 45⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей сидя": "Жим гантелей сидя", - "Жим гантелей сидя 80⁰": "Жим гантелей сидя", - "Жим гантелей сидя 90⁰": "Жим гантелей сидя", - "Жим гантелей сидя на скамейке": "Жим гантелей сидя", - "Жим гантелей стоя": "Подъем гантелей на бицепс стоя", - "Жим л груди в тренажёре": "Жим от груди сидя в тренажере (рычаги)", - "Жим лежа": "Жим штанги лежа", - "Жим ногами": "Жим ногами", - "Жим ногами (3х15)": "Жим ногами", - "Жим ногами (медленно вниз)": "Жим ногами", - "Жим ногами лежа": "Жим ногами", - "Жим ногами медленно": "Жим ногами", - "Жим от груди": "Жим штанги лежа", - "Жим от груди (сидя, тренажёр)": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди в тренажере сидя": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди в тренажёре (кирпичики)": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди сидя": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди сидя (блинчики)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя в тренажере": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди сидя в тренажере (около трицепс машины)": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди сидя в тренажере (рычаги)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя в тренажере рычаги": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя в тренажёре": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди сидя в тренажёре (блинчики)": "Жим от груди сидя в тренажере (блоки)", - "Жим от груди сидя в тренажёре (рычаги)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от плеч (рычаги)": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч вверх": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч вверх в тренажёре": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч вверх сидя": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч вверх сидя 80⁰": "Жим гантелей сидя", - "Жим от плеч вверх сидя в тренажере": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч сидя": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч сидя (рычаги)": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч сидя зэ": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч сидя хз": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плечей вверх": "Жим от плеч вверх в тренажере (рычаги)", - "Жим плечами вверх сидя": "Жим от плеч вверх в тренажере (рычаги)", - "Жим сидя 45⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим штанги 45⁰": "Жим штанги сидя (45 градусов)", - "Жим штанги в наклоне": "Тяга штанги в наклоне", - "Жим штанги лежа": "Жим штанги лежа", - "Жим штанги сидя 45⁰": "Жим штанги сидя (45 градусов)", - "Жим штанги стля": "Подъем штанги на бицепс стоя", - "Жим штанги стоя": "Подъем штанги на бицепс стоя", - "Жис гантелей лежа": "Жим гантелей лежа", - "Жис сидя в тренажёре": "Жим от груди сидя в тренажере (рычаги)", - "Махи в наклоне с упором": "Разведение рук в стороны в наклоне (гантели)", - "Молот назад двумя руками": "Гантели молот", - "Молот трицепс стоя": "Гантели молот", - "Молоты": "Гантели молот", - "Наклонная тяга (скамья)": "Жим штанги лежа", - "Наклоны с прямой спиной": "Наклоны с прямой спиной", - "Отведение в кроссовере одной рукой": "Отведение рук в кроссовере (по очереди)", - "Отведение в рук в наклоне": "Разведение рук в стороны в наклоне (гантели)", - "Отведение назад в пек дек": "Разведение рук в пек-дек", - "Отведение назад в тренажере пек дек": "Разведение рук в пек-дек", - "Отведение назад в тренажере пэк дэк (3х12)": "Разведение рук в пек-дек", - "Отведение рук в кроссовере": "Отведение рук в кроссовере (по очереди)", - "Отведение рук в стороны с гантелями стоя": "Разведение рук в стороны стоя (гантели)", - "Отведение рук в стороны стоя с гантелями": "Разведение рук в стороны стоя (гантели)", - "Отведение рук назад в пек дек": "Разведение рук в пек-дек", - "Отведение рук с гантелями стоя": "Разведение рук в стороны стоя (гантели)", - "Отведение рук стоя с гантелями": "Разведение рук в стороны стоя (гантели)", - "Отведение руки в кроссовере": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в кроссовере (одной рукой)": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в кроссовере (по одной руке)": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в кроссовере на каждую руку": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в кроссовкре": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в сторону": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в сторону в кроссовере (каждая рука)": "Отведение рук в кроссовере (по очереди)", - "Отведение руки стоя": "Отведение рук в кроссовере (по очереди)", - "Отведение руки стоя снизу вверх": "Отведение рук в кроссовере (по очереди)", - "Отжимания": "Отжимания", - "Отжимания на брусьях": "Брусья", - "Отжимания на брусьях узким хватом": "Брусья", - "Отжимания на брусьях широким хватом": "Брусья", - "Пек дек (отведение назад)": "Разведение рук в пек-дек", - "Пек дек разведение рук в стороны": "Разведение рук в пек-дек", - "Подтягивание на заднюю дельту в петлях": "Подтягивания", - "Подтягивание ног на ручнике": "Подъем ног на турнике", - "Подтягивание ног на турнике": "Подъем ног на турнике", - "Подтягивание ног прямых вися на турнике": "Подъем ног на турнике", - "Подтягивания": "Подтягивания", - "Подтягивания в гравитроне": "Подтягивания", - "Подтягивания на резинке": "Подтягивания", - "Подтягивания обратным хватом": "Подтягивания обратным хватом", - "Подтяотвания": "Подтягивания", - "Подъем коленей на турнике": "Подъем ног на турнике", - "Подъем ног на турнике": "Подъем ног на турнике", - "Подъем штанги стоя": "Подъем штанги на бицепс стоя", - "Подъёмы ног на турнике": "Подъем ног на турнике", - "Подьем штанги стоя": "Подъем штанги на бицепс стоя", - "Присд на одну ногу (по очереди)": "Выпады", - "Присед на одну ногу": "Выпады", - "Присед на одну ногу (каждая)": "Выпады", - "Приседания": "Приседания", - "Приседания на одной ноге": "Выпады", - "Разведение рук в кроссовере на трицепс": "Отжимание на трицепс в кроссовере", - "Разведение рук в наклоне": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в налоне": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в пек дек": "Разведение рук в пек-дек", - "Разведение рук в стороны": "Разведение рук в пек-дек", - "Разведение рук в стороны (дельт-машина)": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны (дельта-машина)": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны (пек дек)": "Разведение рук в пек-дек", - "Разведение рук в стороны в наклоне 90⁰": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в стороны в наклоне с гантелями": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в стороны в пекдек": "Разведение рук в пек-дек", - "Разведение рук в стороны в тренажёре": "Разведение рук в пек-дек", - "Разведение рук в стороны в тренажёре Дж": "Разведение рук в пек-дек", - "Разведение рук в стороны пек дек": "Разведение рук в пек-дек", - "Разведение рук в стороны с гантелям": "Разведение рук в стороны стоя (гантели)", - "Разведение рук в стороны стоя": "Разведение рук в стороны стоя (гантели)", - "Разведение рук в стороны стоя с гантелями": "Разведение рук в стороны стоя (гантели)", - "Разведение рук в стрроны": "Разведение рук в стороны стоя (гантели)", - "Разведение рук назад в пек дек": "Разведение рук в пек-дек", - "Разведение рук назад пек дек": "Разведение рук в пек-дек", - "Разведение рук пек дек": "Разведение рук в пек-дек", - "Разведение рук сидя": "Разведение рук в пек-дек", - "Разведение рук сидя с прямыми руками в тренажере": "Разведение рук в пек-дек", - "Разведение рук стоя с гантелями": "Разведение рук в стороны стоя (гантели)", - "Разгибание из за головы": "Гантели молот", - "Разгибание кик-бек": "Разгибание рук в наклоне (кик-бек)", - "Разгибание локтей в наклоне": "Разведение рук в стороны в наклоне (гантели)", - "Разгибание ног": "Разгибание ног сидя", - "Разгибание ног сидя": "Разгибание ног сидя", - "Разгибание ног сидя (4х10)": "Разгибание ног сидя", - "Разгибание прямых рук сидя": "Разведение рук в стороны (дельт-машина)", - "Разгибание рук в кроссовере": "Отжимание на трицепс в кроссовере", - "Разгибание рук в тренажёре для трицепса": "Отжимание на трицепс в кроссовере", - "Разгибание рук в трицепс машине (3х10)": "Отжимание на трицепс в кроссовере", - "Разгибание рук сидя": "Разгибание рук сидя (трицепс машина)", - "Разгибание рук сидя (локти в стороны)": "Разгибание рук сидя (трицепс машина)", - "Разгибание рук сидя (трицепс машина)": "Разгибание рук сидя (трицепс машина)", - "Разгибание рук стоя с канатом": "Отжимание на трицепс в кроссовере", - "Разгибание спины": "Разгибание спины", - "Румынская тяга": "Румынская тяга", - "Румынская тяга с гантелями": "Румынская тяга", - "Румынская тяна": "Румынская тяга", - "Румынская тяоа": "Румынская тяга", - "Сведение на скамейке":"Разведение рук в стороны в наклоне (гантели)", - "Сведение рук в пек дек": "Сведение рук в пек-дек", - "Сведение рук в пек дек зэ": "Сведение рук в пек-дек", - "Сведение рук в тренажере": "Сведение рук в пек-дек", - "Сведение рук в тренажёре пёк дек": "Сведение рук в пек-дек", - "Сведение рук пек дек": "Сведение рук в пек-дек", - "Сведение рук пек дек (бабочка)": "Сведение рук в пек-дек", - "Сведение рук сидя": "Сведение рук в пек-дек", - "Сведение рук сидя пек дек": "Сведение рук в пек-дек", - "Сведения рук пек дек": "Сведение рук в пек-дек", - "Сгибание гантелей в стиле молот одновременно": "Гантели молот", - "Сгибание ног": "Сгибание ног сидя", - "Сгибание ног лежа": "Сгибание ног лежа", - "Сгибание ног лежа (медленно разгибать)": "Сгибание ног лежа", - "Сгибание ног лёжа": "Сгибание ног лежа", - "Сгибание ног сидя": "Сгибание ног сидя", - "Сгибание ног сидя (3х12)": "Сгибание ног сидя", - "Сгибание рук с гантелями стоя": "Подъем гантелей на бицепс стоя", - "Сгибание рук с гантелями стоя ям": "Подъем гантелей на бицепс стоя", - "Сгибание со штангой стоя (3х12)": "Подъем штанги на бицепс стоя", - "Сгибания ног лежа": "Сгибание ног лежа", - "Сгибания рук со штангой стоя": "Подъем штанги на бицепс стоя", - "Силовой тренажер": "Жим от груди сидя в тренажере (блоки)", - "Скручивания на мяче": "Скручивания", - "Трацепс": "Отжимание на трицепс в кроссовере", - "Трицепс вниз у стойки": "Отжимание на трицепс в кроссовере", - "Трицепс машина": "Разгибание рук сидя (трицепс машина)", - "Трицепс сидя": "Разгибание рук сидя (трицепс машина)", - "Трицепс-машина (разгибание рук сидя)": "Разгибание рук сидя (трицепс машина)", - "Тяга Т гриф": "Тяга Т-грифа", - "Тяга в наклоне": "Тяга штанги в наклоне", - "Тяга вертикального блока": "Тяга вертикального блока", - "Тяга вертикального блока обратным хватом": "Тяга вертикального блока (обратный хват)", - "Тяга верхнего блока": "Тяга вертикального блока", - "Тяга верхнего блока обратным хватом": "Тяга вертикального блока (обратный хват)", - "Тяга вниз обратным хватом сидя (фитнес станция)": "Тяга вертикального блока (обратный хват)", - "Тяга вниз сидя": "Тяга вертикального блока", - "Тяга гантелей в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантелей к поясу лёжа на скамейке 40⁰": "Тяга гантелей на скамье", - "Тяга гантелей к поясу стоя в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантелей лежа на животе на скамье 80°": "Тяга гантелей на скамье", - "Тяга гантели в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне (гантеля поочередно)": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне (к поясу одной рукой)": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне одной рукой": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели к корпусу в наклоне же": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели к поясу": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели к поясу в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели к поясу в наклоне одной рукой": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели к поясу в стойке": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели к поясу одной рукой у стойки": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели одной рукой в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели одной рукой в стойке": "Тяга гантелей в наклоне (по очереди)", - "Тяга горизонтально блока": "Тяга горизонтального блока", - "Тяга горизонтального блок": "Тяга горизонтального блока", - "Тяга горизонтального блока": "Тяга горизонтального блока", - "Тяга горизонтального блока (1 рука)": "Тяга горизонтального блока (по очереди)", - "Тяга горизонтального блока дю": "Тяга горизонтального блока", - "Тяга горизонтального блока одной рукой": "Тяга горизонтального блока (по очереди)", - "Тяга горизонтального блока одной рукой (поочерёдно)": "Тяга горизонтального блока (по очереди)", - "Тяга горизонтального блокай": "Тяга горизонтального блока", - "Тяга на себя": "Тяга горизонтального блока", - "Тяга на себя с упором в грудь": "Гребная тяга с упором в грудь", - "Тяга на себя сидя": "Тяга горизонтального блока", - "Тяга ногами": "Жим ногами", - "Тяга ногами вниз": "Жим ногами", - "Тяга обратным хватом штанги к поясу": "Тяга штанги в наклоне", - "Тяга одной рукой в кроссовере": "Тяга горизонтального блока (по очереди)", - "Тяга одной рукой в кроссовере на колене": "Тяга горизонтального блока (по очереди)", - "Тяга руки в кроссовере до": "Тяга горизонтального блока (по очереди)", - "Тяга рычага к груди": "Тяга горизонтального блока (по очереди)", - "Тяга сидя вниз обратным хватом": "Тяга вертикального блока (обратный хват)", - "Тяга т грифа": "Тяга Т-грифа", - "Тяга штанги в наклоне": "Тяга штанги в наклоне", - "Тяга штанги в наклоне к груди": "Тяга штанги в наклоне", - "Тяга штанги в наклоне к поясу": "Тяга штанги в наклоне", - "Тяга штанги в наклоне к поясу обратным хватом": "Тяга штанги в наклоне (обратным хватом)", - "Тяга штанги в наклоне обратным хватом": "Тяга штанги в наклоне (обратным хватом)", - "Тяга штанги к поясу в наклоне": "Тяга штанги в наклоне (обратным хватом)", - "Тяга штанги к поясу стоя": "Подъем штанги на бицепс стоя", - "Тяга штанги стоя": "Подъем штанги на бицепс стоя", - "Штанга": "Жим штанги лежа", - "Штанга в наклоне": "Тяга штанги в наклоне", - "Штанга лежа": "Жим штанги лежа", - "Штанга стоя": "Подъем штанги на бицепс стоя", - "тяга горизонтального блока": "Тяга горизонтального блока", -} - - -backup = { - "Батерфляй": 1, - "Баттерфляй": 16, - "Баттерфляй дю": 1, - "Бицепс на лавке 45⁰": 1, - "Болгарский присед": 1, - "Брусья": 1, - "Брусья (гравитрон)": 1, - "Брусья в тренажере": 1, - "Брусья прямые ноги": 1, - "Брусья узким хватом": 1, - "Брусья узким хватом за": 1, - "Брусья широким хватом": 3, - "Брусья-прямые ноги": 1, - "ГАК машина": 1, - "Гакк машина": 3, - "Гакк присед": 2, - "Гантели": 1, - "Гантели к поясу лежа на скамье": 1, - "Гантели молот": 1, - "Гантели на лавках": 1, - "Гантели-молот": 1, - "Гипекстензия": 1, - "Гиперэкстензия": 13, - "Горизонтальна тяга на себя": 1, - "Горизонтальная тяга блока": 1, - "Гравитрон": 30, - "Гравитрор": 1, - "Гребная тяга": 2, - "Гребная тяга с упором в грудь": 7, - "Гребная тяга с упором в грудь как": 1, - "Гребная тяга с упором на грудь": 5, - "Гребная тяга сидя (одна рука)": 1, - "Гребная тяга сидя одной рукой": 1, - "Гребная тяга сидя с упором в грудт": 1, - "Гребная тяга сидя с упором в грудь": 1, - "Гребная тяга сидя с упором в грудь (одной рукой рычаг)": 1, - "Гребная тяга\xa0 упором в грудьс": 1, - "Жим в тренажере вверх": 1, - "Жим в тренажере на плечи блочный (3х12)": 1, - "Жим в тренажёре на плечи (силовой тренажёр: жим сидя)": 1, - "Жим вверх 80⁰": 1, - "Жим гантелей": 3, - "Жим гантелей 45⁰": 3, - "Жим гантелей 60⁰": 1, - "Жим гантелей 80⁰": 3, - "Жим гантелей 90⁰": 3, - "Жим гантелей вверх 80⁰": 1, - "Жим гантелей вверх 90⁰": 1, - "Жим гантелей вверх сидя 90⁰": 1, - "Жим гантелей лежа": 10, - "Жим гантелей лежа 15⁰": 1, - "Жим гантелей лежа 30⁰": 1, - "Жим гантелей лежа на скамье": 1, - "Жим гантелей лёжа": 3, - "Жим гантелей лёжа на скамье": 2, - "Жим гантелей на скамье": 1, - "Жим гантелей на скамье 45⁰": 1, - "Жим гантелей сидя": 3, - "Жим гантелей сидя 80⁰": 2, - "Жим гантелей сидя 90⁰": 2, - "Жим гантелей сидя на скамейке": 1, - "Жим гантелей стоя": 2, - "Жим л груди в тренажёре": 1, - "Жим лежа": 6, - "Жим ногами": 15, - "Жим ногами (3х15)": 1, - "Жим ногами (медленно вниз)": 1, - "Жим ногами лежа": 1, - "Жим ногами медленно": 1, - "Жим от груди": 2, - "Жим от груди (сидя, тренажёр)": 1, - "Жим от груди в тренажере сидя": 1, - "Жим от груди в тренажёре (кирпичики)": 1, - "Жим от груди сидя": 5, - "Жим от груди сидя (блинчики)": 2, - "Жим от груди сидя в тренажере": 3, - "Жим от груди сидя в тренажере (около трицепс машины)": 1, - "Жим от груди сидя в тренажере (рычаги)": 1, - "Жим от груди сидя в тренажере рычаги": 1, - "Жим от груди сидя в тренажёре": 3, - "Жим от груди сидя в тренажёре (блинчики)": 1, - "Жим от груди сидя в тренажёре (рычаги)": 1, - "Жим от плеч (рычаги)": 1, - "Жим от плеч вверх": 12, - "Жим от плеч вверх в тренажёре": 1, - "Жим от плеч вверх сидя": 1, - "Жим от плеч вверх сидя 80⁰": 1, - "Жим от плеч вверх сидя в тренажере": 1, - "Жим от плеч сидя": 2, - "Жим от плеч сидя (рычаги)": 3, - "Жим от плеч сидя зэ": 1, - "Жим от плеч сидя хз": 1, - "Жим от плечей вверх": 1, - "Жим плечами вверх сидя": 1, - "Жим сидя 45⁰": 1, - "Жим штанги 45⁰": 2, - "Жим штанги в наклоне": 1, - "Жим штанги лежа": 1, - "Жим штанги сидя 45⁰": 1, - "Жим штанги стля": 1, - "Жим штанги стоя": 1, - "Жис гантелей лежа": 1, - "Жис сидя в тренажёре": 1, - "Махи в наклоне с упором": 1, - "Молот назад двумя руками": 1, - "Молот трицепс стоя": 1, - "Молоты": 1, - "Наклонная тяга (скамья)": 1, - "Наклоны с прямой спиной": 1, - "Отведение в кроссовере одной рукой": 1, - "Отведение в рук в наклоне": 1, - "Отведение назад в пек дек": 1, - "Отведение назад в тренажере пек дек": 1, - "Отведение назад в тренажере пэк дэк (3х12)": 1, - "Отведение рук в кроссовере": 1, - "Отведение рук в стороны с гантелями стоя": 1, - "Отведение рук в стороны стоя с гантелями": 1, - "Отведение рук назад в пек дек": 1, - "Отведение рук с гантелями стоя": 2, - "Отведение рук стоя с гантелями": 1, - "Отведение руки в кроссовере": 2, - "Отведение руки в кроссовере (одной рукой)": 1, - "Отведение руки в кроссовере (по одной руке)": 2, - "Отведение руки в кроссовере на каждую руку": 1, - "Отведение руки в кроссовкре": 1, - "Отведение руки в сторону": 1, - "Отведение руки в сторону в кроссовере (каждая рука)": 1, - "Отведение руки стоя": 2, - "Отведение руки стоя снизу вверх": 1, - "Отжимания": 16, - "Отжимания на брусьях": 7, - "Отжимания на брусьях узким хватом": 1, - "Отжимания на брусьях широким хватом": 3, - "Пек дек (отведение назад)": 1, - "Пек дек разведение рук в стороны": 1, - "Подтягивание на заднюю дельту в петлях": 1, - "Подтягивание ног на ручнике": 1, - "Подтягивание ног на турнике": 2, - "Подтягивание ног прямых вися на турнике": 1, - "Подтягивания": 8, - "Подтягивания в гравитроне": 1, - "Подтягивания на резинке": 1, - "Подтягивания обратным хватом": 8, - "Подтяотвания": 1, - "Подъем коленей на турнике": 1, - "Подъем ног на турнике": 4, - "Подъем штанги стоя": 2, - "Подъёмы ног на турнике": 1, - "Подьем штанги стоя": 1, - "Присд на одну ногу (по очереди)": 1, - "Присед на одну ногу": 1, - "Присед на одну ногу (каждая)": 1, - "Приседания": 16, - "Приседания на одной ноге": 1, - "Разведение рук в кроссовере на трицепс": 1, - "Разведение рук в наклоне": 2, - "Разведение рук в налоне": 1, - "Разведение рук в пек дек": 6, - "Разведение рук в стороны": 14, - "Разведение рук в стороны (дельт-машина)": 3, - "Разведение рук в стороны (дельта-машина)": 1, - "Разведение рук в стороны (пек дек)": 1, - "Разведение рук в стороны в наклоне 90⁰": 2, - "Разведение рук в стороны в наклоне с гантелями": 1, - "Разведение рук в стороны в пекдек": 1, - "Разведение рук в стороны в тренажёре": 1, - "Разведение рук в стороны в тренажёре Дж": 1, - "Разведение рук в стороны пек дек": 2, - "Разведение рук в стороны с гантелям": 1, - "Разведение рук в стороны стоя": 2, - "Разведение рук в стороны стоя с гантелями": 2, - "Разведение рук в стрроны": 1, - "Разведение рук назад в пек дек": 1, - "Разведение рук назад пек дек": 1, - "Разведение рук пек дек": 4, - "Разведение рук сидя": 3, - "Разведение рук сидя с прямыми руками в тренажере": 1, - "Разведение рук стоя с гантелями": 1, - "Разгибание из за головы": 1, - "Разгибание кик-бек": 1, - "Разгибание локтей в наклоне": 1, - "Разгибание ног": 5, - "Разгибание ног сидя": 22, - "Разгибание ног сидя (4х10)": 1, - "Разгибание прямых рук сидя": 1, - "Разгибание рук в кроссовере": 1, - "Разгибание рук в тренажёре для трицепса": 1, - "Разгибание рук в трицепс машине (3х10)": 1, - "Разгибание рук сидя": 5, - "Разгибание рук сидя (локти в стороны)": 1, - "Разгибание рук сидя (трицепс машина)": 1, - "Разгибание рук стоя с канатом": 1, - "Разгибание спины": 1, - "Румынская тяга": 5, - "Румынская тяга с гантелями": 1, - "Румынская тяна": 2, - "Румынская тяоа": 1, - "Сведение на скамейке": 1, - "Сведение рук в пек дек": 8, - "Сведение рук в пек дек зэ": 1, - "Сведение рук в тренажере": 1, - "Сведение рук в тренажёре пёк дек": 1, - "Сведение рук пек дек": 7, - "Сведение рук пек дек (бабочка)": 1, - "Сведение рук сидя": 3, - "Сведение рук сидя пек дек": 1, - "Сведения рук пек дек": 1, - "Сгибание гантелей в стиле молот одновременно": 1, - "Сгибание ног": 2, - "Сгибание ног лежа": 14, - "Сгибание ног лежа (медленно разгибать)": 1, - "Сгибание ног лёжа": 2, - "Сгибание ног сидя": 8, - "Сгибание ног сидя (3х12)": 1, - "Сгибание рук с гантелями стоя": 1, - "Сгибание рук с гантелями стоя ям": 1, - "Сгибание со штангой стоя (3х12)": 1, - "Сгибания ног лежа": 1, - "Сгибания рук со штангой стоя": 1, - "Силовой тренажер": 1, - "Скручивания на мяче": 2, - "Трацепс": 1, - "Трицепс вниз у стойки": 1, - "Трицепс машина": 4, - "Трицепс сидя": 1, - "Трицепс-машина (разгибание рук сидя)": 1, - "Тяга Т гриф": 1, - "Тяга в наклоне": 1, - "Тяга вертикального блока": 15, - "Тяга вертикального блока обратным хватом": 5, - "Тяга верхнего блока": 3, - "Тяга верхнего блока обратным хватом": 1, - "Тяга вниз обратным хватом сидя (фитнес станция)": 1, - "Тяга вниз сидя": 2, - "Тяга гантелей в наклоне": 3, - "Тяга гантелей к поясу лёжа на скамейке 40⁰": 1, - "Тяга гантелей к поясу стоя в наклоне": 1, - "Тяга гантелей лежа на животе на скамье 80°": 1, - "Тяга гантели в наклоне": 4, - "Тяга гантели в наклоне (гантеля поочередно)": 1, - "Тяга гантели в наклоне (к поясу одной рукой)": 1, - "Тяга гантели в наклоне одной рукой": 1, - "Тяга гантели к корпусу в наклоне же": 1, - "Тяга гантели к поясу": 1, - "Тяга гантели к поясу в наклоне": 1, - "Тяга гантели к поясу в наклоне одной рукой": 1, - "Тяга гантели к поясу в стойке": 1, - "Тяга гантели к поясу одной рукой у стойки": 1, - "Тяга гантели одной рукой в наклоне": 1, - "Тяга гантели одной рукой в стойке": 1, - "Тяга горизонтально блока": 1, - "Тяга горизонтального блок": 1, - "Тяга горизонтального блока": 14, - "Тяга горизонтального блока (1 рука)": 1, - "Тяга горизонтального блока дю": 1, - "Тяга горизонтального блока одной рукой": 4, - "Тяга горизонтального блока одной рукой (поочерёдно)": 1, - "Тяга горизонтального блокай": 1, - "Тяга на себя": 3, - "Тяга на себя с упором в грудь": 1, - "Тяга на себя сидя": 3, - "Тяга ногами": 1, - "Тяга ногами вниз": 1, - "Тяга обратным хватом штанги к поясу": 1, - "Тяга одной рукой в кроссовере": 1, - "Тяга одной рукой в кроссовере на колене": 1, - "Тяга руки в кроссовере до": 1, - "Тяга рычага к груди": 1, - "Тяга сидя вниз обратным хватом": 1, - "Тяга т грифа": 1, - "Тяга штанги в наклоне": 7, - "Тяга штанги в наклоне к груди": 1, - "Тяга штанги в наклоне к поясу": 1, - "Тяга штанги в наклоне к поясу обратным хватом": 1, - "Тяга штанги в наклоне обратным хватом": 1, - "Тяга штанги к поясу в наклоне": 1, - "Тяга штанги к поясу стоя": 1, - "Тяга штанги стоя": 1, - "Штанга": 2, - "Штанга в наклоне": 1, - "Штанга лежа": 1, - "Штанга стоя": 1, - "тяга горизонтального блока": 1, -} diff --git a/apple/notes_parser.py b/apple/notes_parser.py deleted file mode 100644 index 74300f2..0000000 --- a/apple/notes_parser.py +++ /dev/null @@ -1,144 +0,0 @@ -import os -import re -from typing import List, Tuple -from datetime import datetime - -from obsidian.py_models import Approach, Exercise, Training -from apple.mapper import unique_apple_exercises_mapper - -current_directory = os.path.dirname(os.path.abspath(__file__)) - - -def get_current_path(): - return current_directory - - -def get_obsidian_examples_file(example_file_name: str): - return os.path.join(get_current_path(), f"examples/{example_file_name}") - - -def read_example_file(example_file_name: str): - path_to_example: str = get_obsidian_examples_file(example_file_name) - with open(path_to_example, "r") as f: - content = f.read() - return content - - -def filter_training_data(training_data: str): - cleaned_text = re.sub( - r"^\|(\s+|-*|\s-*\s)\|(\s+|-*|\s-*\s)\|(\s+|-*|\s-*\s)\|$", - "", - training_data, - flags=re.MULTILINE, - ) - cleaned_text = re.sub(r"^\n", "", cleaned_text, flags=re.MULTILINE) - lines = cleaned_text.splitlines() - redundant_lines = [ - "| | | |", - "|---|---|---|", - "|**Упражнение**|**Вес**|**Подходы**|", - ] - filtered_lines = [line for line in lines if line not in redundant_lines] - return "\n".join(filtered_lines) - - -def parse_training_header( - training_data_line: str, -) -> Tuple[bool, str, str, str]: - pattern: str = ( - r"^\*\*(?P\d+.\d+.\d+)\s\((?P.+)(-(?P.+))?\)\*\*" - ) - match = re.search(pattern, training_data_line) - if match: - date = match.group("date").strip() - trainer = match.group("trainer").strip() - if match.group("year_counter"): - year_count = match.group("year_counter").strip() - else: - year_count = 0 - return True, date, trainer, year_count - return False, "", "", "" - - -def serialize_exercise(reps: str, weight: str, name: str) -> Exercise: - # Split reps into array of int's - reps: List[int] = [int(rep) for rep in reps.split("-")] - weight_splitted: bool = False - if weight: - weight: List[str] = [weight for weight in weight.split("-")] - # Check if weight is splitted - if any(split_anchor in weight[0] for split_anchor in ["x", "х"]): - weight_splitted = True - splitter = "x" if "x" in weight[0] else "х" - weight: List[float] = [xweight.split(splitter)[0] for xweight in weight] - approaches = [] - if not weight: - for rep_index in range(0, len(reps)): - approach = Approach(weight=0, reps=reps[rep_index]) - approaches.append(approach) - else: - weight_pointer = 0 - for rep_index in range(0, len(reps)): - approach = Approach(weight=weight[weight_pointer], reps=reps[rep_index]) - if rep_index < len(weight) - 1: - weight_pointer += 1 - approaches.append(approach) - exercise = Exercise( - name=name, approaches=approaches, splitted_weight=weight_splitted - ) - return exercise - - -def parse_training_exercises(exercise_line: str) -> Exercise: - stripped: List[str] = [entry.strip() for entry in exercise_line.split("|")][1:-1] - for entry in stripped: - if entry in ["Упражнение", "Вес", "Подходы"]: - raise ValueError - if stripped: - if "---" in stripped[0]: - raise ValueError - if len(stripped) != 3: - raise ValueError - return serialize_exercise( - name=stripped[0], weight=stripped[1], reps=stripped[2] - ) - - -def parse_training_data(): - training_data: str = filter_training_data(read_example_file("full.txt")) - lines = training_data.splitlines() - current_training = None - trains = [] - for index, line in enumerate(lines): - header_parsed, date, trainer, year_count = parse_training_header(line) - if index == len(lines) - 1: - trains.append(current_training) - if header_parsed: - trains.append(current_training) - try: - current_training = Training( - date=datetime.strptime(date, "%d.%m.%Y").date(), exercises=[] - ) - except ValueError: - current_training = Training( - date=datetime.strptime(date, "%d.%m.%y").date(), exercises=[] - ) - continue - try: - exr = parse_training_exercises(line) - current_training.exercises.append(exr) - except ValueError: - pass - return trains[1:] - - -def remap_unique_exercises(apple_trainings: List[Training]) -> List[Training]: - for apple_training in apple_trainings: - if not apple_training: - continue - for apple_exercise in apple_training.exercises: - if not apple_exercise: - continue - print(f"{apple_training.date} : {apple_exercise}") - apple_exercise.name = unique_apple_exercises_mapper.get(apple_exercise.name) - return apple_trainings diff --git a/compose.yaml b/compose.yaml deleted file mode 100644 index 1a176f1..0000000 --- a/compose.yaml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3' - -services: - database: - image: 'postgres:latest' - ports: - - 5433:5432 - env_file: - - .env - environment: - POSTGRES_DB: fitness_database diff --git a/conftest.py b/conftest.py deleted file mode 100644 index e69de29..0000000 diff --git a/dbapi/__init__.py b/dbapi/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/dbapi/context_managers.py b/dbapi/context_managers.py deleted file mode 100644 index e69de29..0000000 diff --git a/dbapi/migrator.py b/dbapi/migrator.py deleted file mode 100644 index 1c805f3..0000000 --- a/dbapi/migrator.py +++ /dev/null @@ -1,15 +0,0 @@ -from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine -from dbapi.tables import metadata_obj - - -class FitnessDatabseMigrator: - """Class for performing management operations with database""" - - def __init__(self, async_engine: AsyncEngine) -> None: - self.engine = async_engine - - async def reset_database(self): - """Method for dropping all tables and create them from tables metadata""" - async with self.engine.begin() as conn: - await conn.run_sync(metadata_obj.drop_all) - await conn.run_sync(metadata_obj.create_all) diff --git a/dbapi/repositories/__init__.py b/dbapi/repositories/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/dbapi/repositories/approach_repo.py b/dbapi/repositories/approach_repo.py deleted file mode 100644 index 66a19ea..0000000 --- a/dbapi/repositories/approach_repo.py +++ /dev/null @@ -1,27 +0,0 @@ -from dbapi.repositories.utils import DatabaseInterfasesMixin -from sqlalchemy import insert -from dbapi.tables import approach - - -class ApproachRepository(DatabaseInterfasesMixin): - """Approach table repository""" - - def create_approach(self, exercise_pk: int, weight: float, reps: int) -> int: - """Method for creating new instance of approach table - - Args: - exercise_pk: Primary key of an associated exercise - weight: Approach weight - reps: Amount of reps in approach - - Returns: - Primary key of created exercise entry - """ - new_instance_statement = insert(approach).values( - Exercise=exercise_pk, Weight=weight, Reps=reps - ) - with self.engine.connect() as conn: - result = conn.execute(new_instance_statement) - inserted_entry_pk: int = result.inserted_primary_key[0] - conn.commit() - return inserted_entry_pk diff --git a/dbapi/repositories/exercise_repo.py b/dbapi/repositories/exercise_repo.py deleted file mode 100644 index 45933ed..0000000 --- a/dbapi/repositories/exercise_repo.py +++ /dev/null @@ -1,25 +0,0 @@ -from sqlalchemy import insert -from dbapi.repositories.utils import DatabaseInterfasesMixin -from dbapi.tables import exercise - - -class ExerciseRepository(DatabaseInterfasesMixin): - """Exercise table repository""" - - def create_exercise(self, training_pk: int, exercise_name: str) -> int: - """Method for creating new instance of exercise table - Args: - training_pk: Primary key of associated training instance - exercise_name: Name of an exercise - - Returns: - Primary key of created exercise entry - """ - new_instance_statement = insert(exercise).values( - Training=training_pk, Name=exercise_name - ) - with self.engine.connect() as conn: - result = conn.execute(new_instance_statement) - inserted_entry_pk: int = result.inserted_primary_key[0] - conn.commit() - return inserted_entry_pk diff --git a/dbapi/repositories/training_repo.py b/dbapi/repositories/training_repo.py deleted file mode 100644 index d84e90c..0000000 --- a/dbapi/repositories/training_repo.py +++ /dev/null @@ -1,23 +0,0 @@ -from sqlalchemy import insert -from datetime import date -from dbapi.repositories.utils import DatabaseInterfasesMixin -from dbapi.tables import training - - -class TrainingRepository(DatabaseInterfasesMixin): - """Training table repository""" - - def create_training(self, date: date) -> int: - """Method for creating new instance of training - Args: - date: date of a training - - Returns: - Primary key of created training entry - """ - new_instance_statement = insert(training).values(Date=date) - with self.engine.connect() as conn: - result = conn.execute(new_instance_statement) - inerted_entry_pk: int = result.inserted_primary_key[0] - conn.commit() - return inerted_entry_pk diff --git a/dbapi/repositories/utils.py b/dbapi/repositories/utils.py deleted file mode 100644 index 544f4a3..0000000 --- a/dbapi/repositories/utils.py +++ /dev/null @@ -1,8 +0,0 @@ -from sqlalchemy import Engine - - -class DatabaseInterfasesMixin: - """Mixin for interfaces, that works with database""" - - def __init__(self, engine: Engine) -> None: - self.engine: Engine = engine 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/main.py b/main.py deleted file mode 100644 index da1879d..0000000 --- a/main.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_backup.py b/main_backup.py deleted file mode 100644 index 17953fa..0000000 --- a/main_backup.py +++ /dev/null @@ -1,190 +0,0 @@ -import asyncio -from collections import defaultdict -from pprint import pprint -import os -from typing import Dict, List -from sqlalchemy import Table, create_engine, text, insert -from dotenv import load_dotenv -from sqlalchemy.ext.asyncio import create_async_engine -from dbapi.migrator import FitnessDatabseMigrator -from dbapi.repositories.approach_repo import ApproachRepository -from dbapi.repositories.exercise_repo import ExerciseRepository -from dbapi.repositories.training_repo import TrainingRepository -from dbapi.tables import metadata_obj, training, exercise, approach -from obsidian.notes_parser import parse_training_data, remap_unique_exercises -from apple.notes_parser import parse_training_data as apple_parse_training_data -from apple.notes_parser import remap_unique_exercises as apple_remaper -from obsidian.py_models import Training - -# LOADING DATA - -# load_dotenv() -# -# DB_USERNAME = os.getenv("POSTGRES_USER") -# DB_PASS = os.getenv("POSTGRES_PASSWORD") -# -# engine = create_engine( -# f"postgresql+psycopg2://{DB_USERNAME}:{DB_PASS}@localhost:5433/fitness_database", -# echo=True, -# ) -# -# # Creating async engine for Database connection -# async_engine = create_async_engine( -# f"postgresql+asyncpg://{DB_USERNAME}:{DB_PASS}@localhost:5433/fitness_database", -# echo=True, -# ) - - -# NOTE: "Begin once" style - using `.begin` as context creator for SQLAlchemy -# with engine.begin() as conn: -# result = conn.execute(text("select 'hello world'")) -# print(result.all()) -# conn.execute( -# text("INSERT INTO some_table(x, y) VALUES (:x, :y)"), -# [{"x": 6, "y": 7}, {"x": 9, "y": 10}], -# ) - -# NOTE: "Commit as you go" style - after managing transactions we need to call Connection.commit(). Otherwise ROLLBACK -# will be executed -# with engine.connect() as conn: -# result = conn.execute(text("SELECT x, y FROM some_table")) -# for row in result: -# print(f"x: {row.x} -- y: {row.y}") - -# NOTE : Create all tables from metadata object -# metadata_obj.create_all(engine) -# TODO: Check how psycopg2 handles duplication of tables -# TODO: Check how migrations are done - -# NOTE: Drop all Tables from database -metadata_obj.drop_all(engine) -metadata_obj.create_all(engine) - -# NOTE: Table reflection - generating table object from existing tables (only tables, that are stored in metadata) -# some_table = Table("some_table", metadata_obj, autoload_with=engine) -# print(some_table.c) - -# ----- - -# Inserting training values into database - -trainings: List[Training] = parse_training_data() -for train in trainings: - if not train: - continue - else: - print(train) - new_training_pk: int = TrainingRepository(engine).create_training(train.date) - for exr in train.exercises: - approach_statements = [] - new_exercise_pk: int = ExerciseRepository(engine).create_exercise( - training_pk=new_training_pk, exercise_name=exr.name - ) - for appr in exr.approaches: - new_approach_pk: int = ApproachRepository(engine).create_approach( - exercise_pk=new_exercise_pk, weight=appr.weight, reps=appr.reps - ) - - -print("-------------------------\n" * 2) -print("-------------------------\n" * 2) -# ----- - -# Calculating unique exercises for obsidian - -# trainings: List[Training] = parse_training_data() -# -# -# unique_exercise_names = defaultdict(int) -# counter = 0 -# -# for train in trainings: -# if not train: -# continue -# if train.exercises: -# for exr in train.exercises: -# counter += 1 -# unique_exercise_names[exr.name] += 1 -# -# pprint(unique_exercise_names) -# print(counter) -# parsed_trainings = remap_unique_exercises(trainings) -# -# print("\n" * 3) -# -# unique_exercise_parsed_names = defaultdict(int) -# p_counter = 0 -# for train in parsed_trainings: -# if not train: -# continue -# if train.exercises: -# for exr in train.exercises: -# p_counter += 1 -# unique_exercise_parsed_names[exr.name] += 1 -# pprint(unique_exercise_parsed_names) -# print(p_counter) - -# Apple notes playground - -# trainings: List[Training] = apple_parse_training_data() -# -# -# unique_exercise_names = defaultdict(int) -# counter = 0 -# -# for train in trainings: -# if not train: -# continue -# if train.exercises: -# for exr in train.exercises: -# if exr: -# counter += 1 -# unique_exercise_names[exr.name] += 1 -# -# pprint(unique_exercise_names) -# print(counter) -# -# parsed_trainings = apple_remaper(trainings) -# -# print("\n" * 3) -# -# unique_exercise_parsed_names = defaultdict(int) -# p_counter = 0 -# for train in parsed_trainings: -# if not train: -# continue -# if train.exercises: -# for exr in train.exercises: -# if exr: -# p_counter += 1 -# unique_exercise_parsed_names[exr.name] += 1 -# pprint(unique_exercise_parsed_names) -# print(p_counter) - -# Combined trainings - - -# obsidian_trainings: List[Training] = parse_training_data() -# obsidian_parsed_trainings = remap_unique_exercises(obsidian_trainings) -# -# apple_trainings: List[Training] = apple_parse_training_data() -# apple_parsed_trainings = apple_remaper(apple_trainings) -# -# -# combined_trainings = obsidian_trainings + apple_trainings -# unique_exercise_parsed_names = defaultdict(int) -# for train in combined_trainings: -# if not train: -# continue -# if train.exercises: -# for exr in train.exercises: -# if exr: -# unique_exercise_parsed_names[exr.name] += 1 -# pprint(unique_exercise_parsed_names) -# print(len(combined_trainings)) - -# Async engine playground - -# fbm = FitnessDatabseMigrator(async_engine=async_engine) -# -# asyncio.run(fbm.reset_database()) diff --git a/obsidian/__init__.py b/obsidian/__init__.py deleted file mode 100644 index e69de29..0000000 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/obsidian/mapper.py b/obsidian/mapper.py deleted file mode 100644 index dfc7ad4..0000000 --- a/obsidian/mapper.py +++ /dev/null @@ -1,156 +0,0 @@ -list_of_unique_names = [ - "Тяга горизонтального блока", - "Тяга горизонтального блока (по очереди)", - "Тяга гантелей в наклоне (по очереди)", - "Тяга гантелей на скамье", - "Тяга вертикального блока", - "Тяга вертикального блока (обратный хват)", - "Разгибание рук сидя (трицепс машина)", - "Подъем штанги на бицепс стоя", - "Подъем гантелей на бицепс стоя", - "Сгибание ног сидя", - "Сгибание ног лежа", - "Сведение рук в пек-дек", - "Румынская тяга", - "Разгибание ног сидя", - "Разведение рук в стороны стоя (гантели)", - "Разведение рук в стороны в наклоне (гантели)", - "Приседания", - "Подъём ног в висе", - "Подтягивания", - "Подтягивания обратным хватом", - "Отжимания", - "Отведение рук в кроссовере (по очереди)", - "Разведение рук в пек-дек (по очереди)", - "Разведение рук в пек-дек", - "Отжимание на трицепс в кроссовере", - "Баттерфляй", - "Болгарские сплит-приседения", - "Брусья", - "Вертикальная тяга одной рукой", - "Выпады", - "Гиперэкстензия", - "Гравитрон", - "Гребная тяга с упором в грудь (по очереди)", - "Разведение рук в стороны (дельт-машина)", - "Жим гантелей лежа", - "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей сидя", - "Жим ногами", - "Жим от груди сидя в тренажере (рычаги)", - "Жим от плеч вверх в тренажере (рычаги)", - "Икроножные сидя", -] - - -obsidian_unique_exercies_mapping = { - "Баттерфляй": "Баттерфляй", - "Болгарские приседания на одну ногу": "Болгарские сплит-приседения", - "Брусья": "Брусья", - "Брусья узким хватом": "Брусья", - "Вертикальная тяга одной рукой 45⁰": "Вертикальная тяга одной рукой", - "Выпады вперед по очереди каждой ногой": "Выпады", - "Выпады с гантелями на одну ногу вперед": "Выпады", - "Гиперэкстензия": "Гиперэкстензия", - "Гравитрон": "Гравитрон", - "Гравитрон (медленно вниз)": "Гравитрон", - "Гребная тяга с упорм в грудь": "Гребная тяга с упором в грудь", - "Гребная тяга с упором в грудь": "Гребная тяга с упором в грудь", - "Гребная тяга с упором в грудь (одна рука)": "Гребная тяга с упором в грудь (по очереди)", - "Дельт машина": "Разведение рук в стороны (дельт-машина)", - "Дельт машина (разведение рук в стороны)": "Разведение рук в стороны (дельт-машина)", - "Жим гантелей лежа": "Жим гантелей лежа", - "Жим гантелей лежа на скамье": "Жим гантелей лежа", - "Жим гантелей лежа на скамье 30⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей лёжа": "Жим гантелей лежа", - "Жим гантелей лёжа на скамейке 45⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей на скамье 65⁰": "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей сидя": "Жим гантелей сидя", - "Жим гантелей сидя 80⁰": "Жим гантелей сидя", - "Жим гантелей сидя 85⁰": "Жим гантелей сидя", - "Жим гантелей сидя 8⁰": "Жим гантелей сидя", - "Жим гантелей сидя 90⁰": "Жим гантелей сидя", - "Жим гантелей сидя на скамье": "Жим гантелей сидя", - "Жим ногами": "Жим ногами", - "Жим ногами ш-ш-ш": "Жим ногами", - "Жим от груди (рычаги)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди рычаги": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя (рычаги)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя в тренажере (рычаги)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя в тренажёре (рычаги)": "Жим от груди сидя в тренажере (рычаги)", - "Жим от груди сидя рычаги": "Жим от груди сидя в тренажере (рычаги)", - "Жим от плеч вверх (тренажёр, рычаги)": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч вверх в тренажёре": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч вверх рычаги": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч сидя (рычаги наверху)": "Жим от плеч вверх в тренажере (рычаги)", - "Жим от плеч сидя в тренажере (рычаги)": "Жим от плеч вверх в тренажере (рычаги)", - "Икроножные сидя": "Икроножные сидя", - "Икроножные сидя за": "Икроножные сидя", - "Кроссовер - отжимание на трицепс": "Отжимание на трицепс в кроссовере", - "Мах руки в кроссовере": "Отведение рук в кроссовере (по очереди)", - "Отведение плеча в сторону в кроссовере": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в кроссовере из за спины": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в кроссовере по очереди каждую руку": "Отведение рук в кроссовере (по очереди)", - "Отведение руки в пек дек (по очереди каждой рукой)": "Разведение рук в пек-дек (по очереди)", - "Отведение руки в пек дек (по очереди)": "Разведение рук в пек-дек (по очереди)", - "Отведение руки в сторону (дефоли) в кроссовере": "Отведение рук в кроссовере (по очереди)", - "Отведение руки назад в кроссовере (аналог пек дек одной рукой)": "Разведение рук в пек-дек (по очереди)", - "Отжимания": "Отжимания", - "Подтягивания": "Подтягивания", - "Подтягивания обратным хватом": "Подтягивания обратным хватом", - "Подтянивания": "Подтягивания", - "Подъём ног в висе": "Подъём ног в висе", - "Приседания": "Приседания", - "Разведение рук а стороны сидя": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в наклоне": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в наклоне сидя": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в стороны": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны (дельт машина)": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны (дельт-машина)": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны в наклоне с гантелями": "Разведение рук в стороны в наклоне (гантели)", - "Разведение рук в стороны в тренажаре": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны с гантелями стоя": "Разведение рук в стороны стоя (гантели)", - "Разведение рук в стороны сидя": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны сидя спиной к тренажеру": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стороны стоя": "Разведение рук в стороны стоя (гантели)", - "Разведение рук в строоны (дельт-машина)": "Разведение рук в стороны (дельт-машина)", - "Разведение рук в стророны (дельт-машина)": "Разведение рук в стороны (дельт-машина)", - "Разведение рук назад в пек дек": "Разведение рук в пек-дек", - "Разведение рук назад пёк дек": "Разведение рук в пек-дек", - "Разведение рук пек дек": "Разведение рук в пек-дек", - "Разведение рук пёк дек": "Разведение рук в пек-дек", - "Разгибание ног сидя": "Разгибание ног сидя", - "Разгибание рук сидя (трицепс машина)": "Разгибание рук сидя (трицепс машина)", - "Румынская тяга": "Румынская тяга", - "Сведение пек дек": "Сведение рук в пек-дек", - "Сведение рук в пек дек": "Сведение рук в пек-дек", - "Сведение рук в пек декх": "Сведение рук в пек-дек", - "Сведение рук пек дек": "Сведение рук в пек-дек", - "Сведение рук пёк дек": "Сведение рук в пек-дек", - "Сгибание ног лежа": "Сгибание ног лежа", - "Сгибание ног лёжа": "Сгибание ног лежа", - "Сгибание ног сидя": "Сгибание ног сидя", - "Сгибание рук с гантелями стоя (супинирование?)": "Подъем гантелей на бицепс стоя", - "Сгибание штанги стоя на бицепс": "Подъем штанги на бицепс стоя", - "Трицепс машина": "Разгибание рук сидя (трицепс машина)", - "Тяга вертикального блока": "Тяга вертикального блока", - "Тяга вертикального блока обратным хватом": "Тяга вертикального блока (обратный хват)", - "Тяга вертикального блока прямым хватом": "Тяга вертикального блока", - "Тяга верхнего блока": "Тяга вертикального блока", - "Тяга верхнего блока за": "Тяга вертикального блока", - "Тяга гантелей в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантелей к поясу лёжа на животе на скамье": "Тяга гантелей на скамье", - "Тяга гантелей лежа на животе на скамье 80°": "Тяга гантелей на скамье", - "Тяга гантелей на скамье": "Тяга гантелей на скамье", - "Тяга гантели в наклоне": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне 1 рукой": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне к поясу к стойки": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне одной рукой": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели в наклоне одной рукой (каждой)": "Тяга гантелей в наклоне (по очереди)", - "Тяга гантели лежа в наклоне на скамье": "Тяга гантелей на скамье", - "Тяга горизонтально блока одной рукой": "Тяга горизонтального блока (по очереди)", - "Тяга горизонтального блока": "Тяга горизонтального блока", - "Тяга горизонтального блока 1 рукой поочерёдно": "Тяга горизонтального блока (по очереди)", - "Тяга горизонтального блока одной рукой": "Тяга горизонтального блока (по очереди)", -} - diff --git a/obsidian/notes_parser.py b/obsidian/notes_parser.py deleted file mode 100644 index 4c8a2f1..0000000 --- a/obsidian/notes_parser.py +++ /dev/null @@ -1,121 +0,0 @@ -import os -import re -from pprint import pprint -from typing import List, Tuple -from datetime import datetime -from obsidian.mapper import obsidian_unique_exercies_mapping - -from obsidian.py_models import Approach, Exercise, Training - -current_directory = os.path.dirname(os.path.abspath(__file__)) - - -def get_current_path(): - return current_directory - - -def get_obsidian_examples_file(example_file_name: str): - return os.path.join(get_current_path(), f"examples/{example_file_name}") - - -def read_example_file(example_file_name: str): - path_to_example: str = get_obsidian_examples_file(example_file_name) - with open(path_to_example, "r") as f: - content = f.read() - return content - - -def serialize_exercise(reps: str, weight: str, name: str) -> Exercise: - # Split reps into array of int's - reps: List[int] = [int(rep) for rep in reps.split("-")] - weight_splitted: bool = False - if weight: - weight: List[str] = [weight for weight in weight.split("-")] - # Check if weight is splitted - if any(split_anchor in weight[0] for split_anchor in ["x", "х"]): - weight_splitted = True - splitter = "x" if "x" in weight[0] else "х" - weight: List[float] = [xweight.split(splitter)[0] for xweight in weight] - approaches = [] - if not weight: - for rep_index in range(0, len(reps)): - approach = Approach(weight=0, reps=reps[rep_index]) - approaches.append(approach) - else: - weight_pointer = 0 - for rep_index in range(0, len(reps)): - approach = Approach(weight=weight[weight_pointer], reps=reps[rep_index]) - if rep_index < len(weight) - 1: - weight_pointer += 1 - approaches.append(approach) - exercise = Exercise( - name=name, approaches=approaches, splitted_weight=weight_splitted - ) - return exercise - - -def parse_training_exercises(exercise_line: str) -> Exercise: - stripped: List[str] = [entry.strip() for entry in exercise_line.split("|")][1:-1] - for entry in stripped: - if entry in ["Упражнение", "Вес", "Подходы"]: - raise ValueError - if stripped: - if "---" in stripped[0]: - raise ValueError - if len(stripped) != 3: - raise ValueError - return serialize_exercise( - name=stripped[0], weight=stripped[1], reps=stripped[2] - ) - - -def parse_training_header( - training_data_line: str, -) -> Tuple[bool, str, str, str]: - pattern: str = r"#\s(?P\d+.\d+.\d+)\s\((?P.+)-(?P.+)\)" - match = re.search(pattern, training_data_line) - if match: - date = match.group("date").strip() - trainer = match.group("trainer").strip() - year_count = match.group("year_counter").strip() - return True, date, trainer, year_count - return False, "", "", "" - - -def filter_training_data(training_data: str): - cleaned_text = re.sub(r"^\s*?\n", "", training_data, flags=re.MULTILINE) - return cleaned_text - - -def parse_training_data(): - training_data: str = filter_training_data(read_example_file("full.txt")) - lines = training_data.splitlines() - current_training = None - trains = [] - for index, line in enumerate(lines): - header_parsed, date, trainer, year_count = parse_training_header(line) - if index == len(lines) - 1: - trains.append(current_training) - if header_parsed: - trains.append(current_training) - current_training = Training( - date=datetime.strptime(date, "%d.%m.%Y").date(), exercises=[] - ) - continue - try: - exr = parse_training_exercises(line) - current_training.exercises.append(exr) - except ValueError: - pass - return trains - - -def remap_unique_exercises(obsidian_trainings: List[Training]) -> List[Training]: - for obsidian_training in obsidian_trainings: - if not obsidian_training: - continue - for obsidian_exercise in obsidian_training.exercises: - obsidian_exercise.name = obsidian_unique_exercies_mapping.get( - obsidian_exercise.name - ) - return obsidian_trainings diff --git a/obsidian/py_models.py b/obsidian/py_models.py deleted file mode 100644 index 25fe1c9..0000000 --- a/obsidian/py_models.py +++ /dev/null @@ -1,22 +0,0 @@ -from typing import List, Optional -from pydantic import BaseModel -from datetime import date - - -class Approach(BaseModel): - weight: float - reps: int - - -class Exercise(BaseModel): - name: str - splitted_weight: bool = False - approaches: List[Approach] - - -class Training(BaseModel): - date: date - exercises: Optional[List[Exercise]] - -class Coach(BaseModel): - name: str diff --git a/obsidian/tests/test_obsidian_parser.py b/obsidian/tests/test_obsidian_parser.py deleted file mode 100644 index b40a4a1..0000000 --- a/obsidian/tests/test_obsidian_parser.py +++ /dev/null @@ -1,72 +0,0 @@ -from obsidian.notes_parser import serialize_exercise -from obsidian.py_models import Approach, Exercise -import pytest - - -@pytest.mark.parametrize( - "reps, weight, name, expected", - [ - ( - "12-12-12-10", - "55-59", - "test_exercise", - Exercise( - name="test_exercise", - splitted_weight=False, - approaches=[ - Approach(weight=55, reps=12), - Approach(weight=59, reps=12), - Approach(weight=59, reps=12), - Approach(weight=59, reps=10), - ], - ), - ), - ( - "11-9-7", - "", - "test_exercise", - Exercise( - name="test_exercise", - splitted_weight=False, - approaches=[ - Approach(weight=0, reps=11), - Approach(weight=0, reps=9), - Approach(weight=0, reps=7), - ], - ), - ), - ( - "12-12-12-12", - "15х2-25х2-27.5х2-30х2", - "test_exercise", - Exercise( - name="test_exercise", - splitted_weight=True, - approaches=[ - Approach(weight=15, reps=12), - Approach(weight=25, reps=12), - Approach(weight=27.5, reps=12), - Approach(weight=30, reps=12), - ], - ), - ), - ( - "12-12-12-12", - "15х2-25х2", - "test_exercise", - Exercise( - name="test_exercise", - splitted_weight=True, - approaches=[ - Approach(weight=15, reps=12), - Approach(weight=25, reps=12), - Approach(weight=25, reps=12), - Approach(weight=25, reps=12), - ], - ), - ), - ], -) -def test_approach_parsing(reps, weight, name, expected): - exercise = serialize_exercise(reps, weight, name) - assert expected == exercise diff --git a/parser.py b/parser.py deleted file mode 100644 index e69de29..0000000 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 f0b52c1..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) -> None: - 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/poetry.lock b/poetry.lock deleted file mode 100644 index 6abfe31..0000000 --- a/poetry.lock +++ /dev/null @@ -1,773 +0,0 @@ -# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. - -[[package]] -name = "annotated-types" -version = "0.7.0" -description = "Reusable constraint types to use with typing.Annotated" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, - {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, -] - -[[package]] -name = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "asyncpg" -version = "0.30.0" -description = "An asyncio PostgreSQL driver" -category = "main" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "asyncpg-0.30.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bfb4dd5ae0699bad2b233672c8fc5ccbd9ad24b89afded02341786887e37927e"}, - {file = "asyncpg-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc1f62c792752a49f88b7e6f774c26077091b44caceb1983509edc18a2222ec0"}, - {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3152fef2e265c9c24eec4ee3d22b4f4d2703d30614b0b6753e9ed4115c8a146f"}, - {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7255812ac85099a0e1ffb81b10dc477b9973345793776b128a23e60148dd1af"}, - {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:578445f09f45d1ad7abddbff2a3c7f7c291738fdae0abffbeb737d3fc3ab8b75"}, - {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c42f6bb65a277ce4d93f3fba46b91a265631c8df7250592dd4f11f8b0152150f"}, - {file = "asyncpg-0.30.0-cp310-cp310-win32.whl", hash = "sha256:aa403147d3e07a267ada2ae34dfc9324e67ccc4cdca35261c8c22792ba2b10cf"}, - {file = "asyncpg-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb622c94db4e13137c4c7f98834185049cc50ee01d8f657ef898b6407c7b9c50"}, - {file = "asyncpg-0.30.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e0511ad3dec5f6b4f7a9e063591d407eee66b88c14e2ea636f187da1dcfff6a"}, - {file = "asyncpg-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:915aeb9f79316b43c3207363af12d0e6fd10776641a7de8a01212afd95bdf0ed"}, - {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c198a00cce9506fcd0bf219a799f38ac7a237745e1d27f0e1f66d3707c84a5a"}, - {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3326e6d7381799e9735ca2ec9fd7be4d5fef5dcbc3cb555d8a463d8460607956"}, - {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51da377487e249e35bd0859661f6ee2b81db11ad1f4fc036194bc9cb2ead5056"}, - {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc6d84136f9c4d24d358f3b02be4b6ba358abd09f80737d1ac7c444f36108454"}, - {file = "asyncpg-0.30.0-cp311-cp311-win32.whl", hash = "sha256:574156480df14f64c2d76450a3f3aaaf26105869cad3865041156b38459e935d"}, - {file = "asyncpg-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:3356637f0bd830407b5597317b3cb3571387ae52ddc3bca6233682be88bbbc1f"}, - {file = "asyncpg-0.30.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c902a60b52e506d38d7e80e0dd5399f657220f24635fee368117b8b5fce1142e"}, - {file = "asyncpg-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aca1548e43bbb9f0f627a04666fedaca23db0a31a84136ad1f868cb15deb6e3a"}, - {file = "asyncpg-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c2a2ef565400234a633da0eafdce27e843836256d40705d83ab7ec42074efb3"}, - {file = "asyncpg-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1292b84ee06ac8a2ad8e51c7475aa309245874b61333d97411aab835c4a2f737"}, - {file = "asyncpg-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0f5712350388d0cd0615caec629ad53c81e506b1abaaf8d14c93f54b35e3595a"}, - {file = "asyncpg-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:db9891e2d76e6f425746c5d2da01921e9a16b5a71a1c905b13f30e12a257c4af"}, - {file = "asyncpg-0.30.0-cp312-cp312-win32.whl", hash = "sha256:68d71a1be3d83d0570049cd1654a9bdfe506e794ecc98ad0873304a9f35e411e"}, - {file = "asyncpg-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:9a0292c6af5c500523949155ec17b7fe01a00ace33b68a476d6b5059f9630305"}, - {file = "asyncpg-0.30.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05b185ebb8083c8568ea8a40e896d5f7af4b8554b64d7719c0eaa1eb5a5c3a70"}, - {file = "asyncpg-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c47806b1a8cbb0a0db896f4cd34d89942effe353a5035c62734ab13b9f938da3"}, - {file = "asyncpg-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b6fde867a74e8c76c71e2f64f80c64c0f3163e687f1763cfaf21633ec24ec33"}, - {file = "asyncpg-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46973045b567972128a27d40001124fbc821c87a6cade040cfcd4fa8a30bcdc4"}, - {file = "asyncpg-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9110df111cabc2ed81aad2f35394a00cadf4f2e0635603db6ebbd0fc896f46a4"}, - {file = "asyncpg-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04ff0785ae7eed6cc138e73fc67b8e51d54ee7a3ce9b63666ce55a0bf095f7ba"}, - {file = "asyncpg-0.30.0-cp313-cp313-win32.whl", hash = "sha256:ae374585f51c2b444510cdf3595b97ece4f233fde739aa14b50e0d64e8a7a590"}, - {file = "asyncpg-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:f59b430b8e27557c3fb9869222559f7417ced18688375825f8f12302c34e915e"}, - {file = "asyncpg-0.30.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:29ff1fc8b5bf724273782ff8b4f57b0f8220a1b2324184846b39d1ab4122031d"}, - {file = "asyncpg-0.30.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64e899bce0600871b55368b8483e5e3e7f1860c9482e7f12e0a771e747988168"}, - {file = "asyncpg-0.30.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b290f4726a887f75dcd1b3006f484252db37602313f806e9ffc4e5996cfe5cb"}, - {file = "asyncpg-0.30.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f86b0e2cd3f1249d6fe6fd6cfe0cd4538ba994e2d8249c0491925629b9104d0f"}, - {file = "asyncpg-0.30.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:393af4e3214c8fa4c7b86da6364384c0d1b3298d45803375572f415b6f673f38"}, - {file = "asyncpg-0.30.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fd4406d09208d5b4a14db9a9dbb311b6d7aeeab57bded7ed2f8ea41aeef39b34"}, - {file = "asyncpg-0.30.0-cp38-cp38-win32.whl", hash = "sha256:0b448f0150e1c3b96cb0438a0d0aa4871f1472e58de14a3ec320dbb2798fb0d4"}, - {file = "asyncpg-0.30.0-cp38-cp38-win_amd64.whl", hash = "sha256:f23b836dd90bea21104f69547923a02b167d999ce053f3d502081acea2fba15b"}, - {file = "asyncpg-0.30.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f4e83f067b35ab5e6371f8a4c93296e0439857b4569850b178a01385e82e9ad"}, - {file = "asyncpg-0.30.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5df69d55add4efcd25ea2a3b02025b669a285b767bfbf06e356d68dbce4234ff"}, - {file = "asyncpg-0.30.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3479a0d9a852c7c84e822c073622baca862d1217b10a02dd57ee4a7a081f708"}, - {file = "asyncpg-0.30.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26683d3b9a62836fad771a18ecf4659a30f348a561279d6227dab96182f46144"}, - {file = "asyncpg-0.30.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1b982daf2441a0ed314bd10817f1606f1c28b1136abd9e4f11335358c2c631cb"}, - {file = "asyncpg-0.30.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1c06a3a50d014b303e5f6fc1e5f95eb28d2cee89cf58384b700da621e5d5e547"}, - {file = "asyncpg-0.30.0-cp39-cp39-win32.whl", hash = "sha256:1b11a555a198b08f5c4baa8f8231c74a366d190755aa4f99aacec5970afe929a"}, - {file = "asyncpg-0.30.0-cp39-cp39-win_amd64.whl", hash = "sha256:8b684a3c858a83cd876f05958823b68e8d14ec01bb0c0d14a6704c5bf9711773"}, - {file = "asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851"}, -] - -[package.dependencies] -async-timeout = {version = ">=4.0.3", markers = "python_version < \"3.11.0\""} - -[package.extras] -docs = ["Sphinx (>=8.1.3,<8.2.0)", "sphinx-rtd-theme (>=1.2.2)"] -gssauth = ["gssapi", "sspilib"] -test = ["distro (>=1.9.0,<1.10.0)", "flake8 (>=6.1,<7.0)", "flake8-pyi (>=24.1.0,<24.2.0)", "gssapi", "k5test", "mypy (>=1.8.0,<1.9.0)", "sspilib", "uvloop (>=0.15.3)"] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "greenlet" -version = "3.1.1" -description = "Lightweight in-process concurrent programming" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, - {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, - {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, - {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, - {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, - {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, - {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, - {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, - {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, - {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, - {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, - {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, - {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, - {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, - {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, - {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, - {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, - {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, - {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, - {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, - {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, - {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, - {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, - {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, - {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, - {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, - {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, - {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, - {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, - {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, - {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, - {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, - {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, -] - -[package.extras] -docs = ["Sphinx", "furo"] -test = ["objgraph", "psutil"] - -[[package]] -name = "grpcio" -version = "1.70.0" -description = "HTTP/2-based RPC framework" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851"}, - {file = "grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf"}, - {file = "grpcio-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:374d014f29f9dfdb40510b041792e0e2828a1389281eb590df066e1cc2b404e5"}, - {file = "grpcio-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2af68a6f5c8f78d56c145161544ad0febbd7479524a59c16b3e25053f39c87f"}, - {file = "grpcio-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7df14b2dcd1102a2ec32f621cc9fab6695effef516efbc6b063ad749867295"}, - {file = "grpcio-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c78b339869f4dbf89881e0b6fbf376313e4f845a42840a7bdf42ee6caed4b11f"}, - {file = "grpcio-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:58ad9ba575b39edef71f4798fdb5c7b6d02ad36d47949cd381d4392a5c9cbcd3"}, - {file = "grpcio-1.70.0-cp310-cp310-win32.whl", hash = "sha256:2b0d02e4b25a5c1f9b6c7745d4fa06efc9fd6a611af0fb38d3ba956786b95199"}, - {file = "grpcio-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:0de706c0a5bb9d841e353f6343a9defc9fc35ec61d6eb6111802f3aa9fef29e1"}, - {file = "grpcio-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:17325b0be0c068f35770f944124e8839ea3185d6d54862800fc28cc2ffad205a"}, - {file = "grpcio-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:dbe41ad140df911e796d4463168e33ef80a24f5d21ef4d1e310553fcd2c4a386"}, - {file = "grpcio-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5ea67c72101d687d44d9c56068328da39c9ccba634cabb336075fae2eab0d04b"}, - {file = "grpcio-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb5277db254ab7586769e490b7b22f4ddab3876c490da0a1a9d7c695ccf0bf77"}, - {file = "grpcio-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7831a0fc1beeeb7759f737f5acd9fdcda520e955049512d68fda03d91186eea"}, - {file = "grpcio-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:27cc75e22c5dba1fbaf5a66c778e36ca9b8ce850bf58a9db887754593080d839"}, - {file = "grpcio-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d63764963412e22f0491d0d32833d71087288f4e24cbcddbae82476bfa1d81fd"}, - {file = "grpcio-1.70.0-cp311-cp311-win32.whl", hash = "sha256:bb491125103c800ec209d84c9b51f1c60ea456038e4734688004f377cfacc113"}, - {file = "grpcio-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:d24035d49e026353eb042bf7b058fb831db3e06d52bee75c5f2f3ab453e71aca"}, - {file = "grpcio-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ef4c14508299b1406c32bdbb9fb7b47612ab979b04cf2b27686ea31882387cff"}, - {file = "grpcio-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:aa47688a65643afd8b166928a1da6247d3f46a2784d301e48ca1cc394d2ffb40"}, - {file = "grpcio-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:880bfb43b1bb8905701b926274eafce5c70a105bc6b99e25f62e98ad59cb278e"}, - {file = "grpcio-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e654c4b17d07eab259d392e12b149c3a134ec52b11ecdc6a515b39aceeec898"}, - {file = "grpcio-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2394e3381071045a706ee2eeb6e08962dd87e8999b90ac15c55f56fa5a8c9597"}, - {file = "grpcio-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b3c76701428d2df01964bc6479422f20e62fcbc0a37d82ebd58050b86926ef8c"}, - {file = "grpcio-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac073fe1c4cd856ebcf49e9ed6240f4f84d7a4e6ee95baa5d66ea05d3dd0df7f"}, - {file = "grpcio-1.70.0-cp312-cp312-win32.whl", hash = "sha256:cd24d2d9d380fbbee7a5ac86afe9787813f285e684b0271599f95a51bce33528"}, - {file = "grpcio-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:0495c86a55a04a874c7627fd33e5beaee771917d92c0e6d9d797628ac40e7655"}, - {file = "grpcio-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa573896aeb7d7ce10b1fa425ba263e8dddd83d71530d1322fd3a16f31257b4a"}, - {file = "grpcio-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:d405b005018fd516c9ac529f4b4122342f60ec1cee181788249372524e6db429"}, - {file = "grpcio-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f32090238b720eb585248654db8e3afc87b48d26ac423c8dde8334a232ff53c9"}, - {file = "grpcio-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfa089a734f24ee5f6880c83d043e4f46bf812fcea5181dcb3a572db1e79e01c"}, - {file = "grpcio-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f19375f0300b96c0117aca118d400e76fede6db6e91f3c34b7b035822e06c35f"}, - {file = "grpcio-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:7c73c42102e4a5ec76608d9b60227d917cea46dff4d11d372f64cbeb56d259d0"}, - {file = "grpcio-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:0a5c78d5198a1f0aa60006cd6eb1c912b4a1520b6a3968e677dbcba215fabb40"}, - {file = "grpcio-1.70.0-cp313-cp313-win32.whl", hash = "sha256:fe9dbd916df3b60e865258a8c72ac98f3ac9e2a9542dcb72b7a34d236242a5ce"}, - {file = "grpcio-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:4119fed8abb7ff6c32e3d2255301e59c316c22d31ab812b3fbcbaf3d0d87cc68"}, - {file = "grpcio-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:8058667a755f97407fca257c844018b80004ae8035565ebc2812cc550110718d"}, - {file = "grpcio-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:879a61bf52ff8ccacbedf534665bb5478ec8e86ad483e76fe4f729aaef867cab"}, - {file = "grpcio-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ba0a173f4feacf90ee618fbc1a27956bfd21260cd31ced9bc707ef551ff7dc7"}, - {file = "grpcio-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558c386ecb0148f4f99b1a65160f9d4b790ed3163e8610d11db47838d452512d"}, - {file = "grpcio-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:412faabcc787bbc826f51be261ae5fa996b21263de5368a55dc2cf824dc5090e"}, - {file = "grpcio-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3b0f01f6ed9994d7a0b27eeddea43ceac1b7e6f3f9d86aeec0f0064b8cf50fdb"}, - {file = "grpcio-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7385b1cb064734005204bc8994eed7dcb801ed6c2eda283f613ad8c6c75cf873"}, - {file = "grpcio-1.70.0-cp38-cp38-win32.whl", hash = "sha256:07269ff4940f6fb6710951116a04cd70284da86d0a4368fd5a3b552744511f5a"}, - {file = "grpcio-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:aba19419aef9b254e15011b230a180e26e0f6864c90406fdbc255f01d83bc83c"}, - {file = "grpcio-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4f1937f47c77392ccd555728f564a49128b6a197a05a5cd527b796d36f3387d0"}, - {file = "grpcio-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0cd430b9215a15c10b0e7d78f51e8a39d6cf2ea819fd635a7214fae600b1da27"}, - {file = "grpcio-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:e27585831aa6b57b9250abaf147003e126cd3a6c6ca0c531a01996f31709bed1"}, - {file = "grpcio-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1af8e15b0f0fe0eac75195992a63df17579553b0c4af9f8362cc7cc99ccddf4"}, - {file = "grpcio-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbce24409beaee911c574a3d75d12ffb8c3e3dd1b813321b1d7a96bbcac46bf4"}, - {file = "grpcio-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ff4a8112a79464919bb21c18e956c54add43ec9a4850e3949da54f61c241a4a6"}, - {file = "grpcio-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5413549fdf0b14046c545e19cfc4eb1e37e9e1ebba0ca390a8d4e9963cab44d2"}, - {file = "grpcio-1.70.0-cp39-cp39-win32.whl", hash = "sha256:b745d2c41b27650095e81dea7091668c040457483c9bdb5d0d9de8f8eb25e59f"}, - {file = "grpcio-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:a31d7e3b529c94e930a117b2175b2efd179d96eb3c7a21ccb0289a8ab05b645c"}, - {file = "grpcio-1.70.0.tar.gz", hash = "sha256:8d1584a68d5922330025881e63a6c1b54cc8117291d382e4fa69339b6d914c56"}, -] - -[package.extras] -protobuf = ["grpcio-tools (>=1.70.0)"] - -[[package]] -name = "grpcio-tools" -version = "1.70.0" -description = "Protobuf code generator for gRPC" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "grpcio_tools-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:4d456521290e25b1091975af71604facc5c7db162abdca67e12a0207b8bbacbe"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:d50080bca84f53f3a05452e06e6251cbb4887f5a1d1321d1989e26d6e0dc398d"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:02e3bf55fb569fe21b54a32925979156e320f9249bb247094c4cbaa60c23a80d"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88a3ec6fa2381f616d567f996503e12ca353777941b61030fd9733fd5772860e"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6034a0579fab2aed8685fa1a558de084668b1e9b01a82a4ca7458b9bedf4654c"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:701bbb1ff406a21a771f5b1df6be516c0a59236774b6836eaad7696b1d128ea8"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eeb86864e1432fc1ab61e03395a2a4c04e9dd9c89db07e6fe68c7c2ac8ec24f"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-win32.whl", hash = "sha256:d53c8c45e843b5836781ad6b82a607c72c2f9a3f556e23d703a0e099222421fa"}, - {file = "grpcio_tools-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:22024caee36ab65c2489594d718921dcbb5bd18d61c5417a9ede94fd8dc8a589"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:5f5aba12d98d25c7ab2dd983939e2c21556a7d15f903b286f24d88d2c6e30c0a"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:d47a6c6cfc526b290b7b53a37dd7e6932983f7a168b56aab760b4b597c47f30f"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:b5a9beadd1e24772ffa2c70f07d72f73330d356b78b246e424f4f2ed6c6713f3"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb8135eef160a62505f074bf7a3d62f3b13911c3c14037c5392bf877114213b5"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7ac9b3e13ace8467a586c53580ee22f9732c355583f3c344ef8c6c0666219cc"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:63f367363a4a1489a0046b19f9d561216ea0d206c40a6f1bf07a58ccfb7be480"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54ceffef59a059d2c7304554a8bbb20eedb05a3f937159ab1c332c1b28e12c9f"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-win32.whl", hash = "sha256:7a90a66a46821140a2a2b0be787dfabe42e22e9a5ba9cc70726b3e5c71a3b785"}, - {file = "grpcio_tools-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:4ebf09733545a69c166b02caa14c34451e38855544820dab7fdde5c28e2dbffe"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ec5d6932c3173d7618267b3b3fd77b9243949c5ec04302b7338386d4f8544e0b"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:f22852da12f53b02a3bdb29d0c32fcabab9c7c8f901389acffec8461083f110d"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:7d45067e6efd20881e98a0e1d7edd7f207b1625ad7113321becbfe0a6ebee46c"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3020c97f03b30eee3c26aa2a55fbe003f1729c6f879a378507c2c78524db7c12"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7fd472fce3b33bdf7fbc24d40da7ab10d7a088bcaf59c37433c2c57330fbcb6"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3875543d74ce1a698a11f498f83795216ce929cb29afa5fac15672c7ba1d6dd2"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a130c24d617a3a57369da784080dfa8848444d41b7ae1250abc06e72e706a8d9"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-win32.whl", hash = "sha256:8eae17c920d14e2e451dbb18f5d8148f884e10228061941b33faa8fceee86e73"}, - {file = "grpcio_tools-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:99caa530242a0a832d8b6a6ab94b190c9b449d3e237f953911b4d56207569436"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:f024688d04e7a9429489ed695b85628075c3c6d655198ba3c6ccbd1d8b7c333b"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:1fa9a81621d7178498dedcf94eb8f276a7594327faf3dd5fd1935ce2819a2bdb"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:c6da2585c0950cdb650df1ff6d85b3fe31e22f8370b9ee11f8fe641d5b4bf096"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70234b592af17050ec30cf35894790cef52aeae87639efe6db854a7fa783cc8c"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c021b040d0a9f5bb96a725c4d2b95008aad127d6bed124a7bbe854973014f5b"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:114a42e566e5b16a47e98f7910a6c0074b37e2d1faacaae13222e463d0d0d43c"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:4cae365d7e3ba297256216a9a256458b286f75c64603f017972b3ad1ee374437"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-win32.whl", hash = "sha256:ae139a8d3ddd8353f62af3af018e99ebcd2f4a237bd319cb4b6f58dd608aaa54"}, - {file = "grpcio_tools-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:04bf30c0eb2741defe3ab6e0a6102b022d69cfd39d68fab9b954993ceca8d346"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:076f71c6d5adcf237ebca63f1ed51098293261dab9f301e3dfd180e896e5fa89"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:d1fc2112e9c40167086e2e6a929b253e5281bffd070fab7cd1ae019317ffc11d"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:904f13d2d04f88178b09d8ef89549b90cbf8792b684a7c72540fc1a9887697e2"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1de6c71833d36fb8cc8ac10539681756dc2c5c67e5d4aa4d05adb91ecbdd8474"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ab788afced2d2c59bef86479967ce0b28485789a9f2cc43793bb7aa67f9528b"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:836293dcbb1e59fa52aa8aa890bd7a32a8eea7651cd614e96d86de4f3032fe73"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:740b3741d124c5f390dd50ad1c42c11788882baf3c202cd3e69adee0e3dde559"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-win32.whl", hash = "sha256:b9e4a12b862ba5e42d8028da311e8d4a2c307362659b2f4141d0f940f8c12b49"}, - {file = "grpcio_tools-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:fd04c93af460b1456cd12f8f85502503e1db6c4adc1b7d4bd775b12c1fd94fee"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:52d7e7ef11867fe7de577076b1f2ac6bf106b2325130e3de66f8c364c96ff332"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0f7ed0372afd9f5eb938334e84681396257015ab92e03de009aa3170e64b24d0"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:24a5b0328ffcfe0c4a9024f302545abdb8d6f24921409a5839f2879555b96fea"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9387b30f3b2f46942fb5718624d7421875a6ce458620d6e15817172d78db1e1a"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4545264e06e1cd7fb21b9447bb5126330bececb4bc626c98f793fda2fd910bf8"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:79b723ce30416e8e1d7ff271f97ade79aaf30309a595d80c377105c07f5b20fd"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1c0917dce12af04529606d437def83962d51c59dcde905746134222e94a2ab1b"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-win32.whl", hash = "sha256:5cb0baa52d4d44690fac6b1040197c694776a291a90e2d3c369064b4d5bc6642"}, - {file = "grpcio_tools-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:840ec536ab933db2ef8d5acaa6b712d0e9e8f397f62907c852ec50a3f69cdb78"}, - {file = "grpcio_tools-1.70.0.tar.gz", hash = "sha256:e578fee7c1c213c8e471750d92631d00f178a15479fb2cb3b939a07fc125ccd3"}, -] - -[package.dependencies] -grpcio = ">=1.70.0" -protobuf = ">=5.26.1,<6.0dev" -setuptools = "*" - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "protobuf" -version = "5.29.3" -description = "" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "protobuf-5.29.3-cp310-abi3-win32.whl", hash = "sha256:3ea51771449e1035f26069c4c7fd51fba990d07bc55ba80701c78f886bf9c888"}, - {file = "protobuf-5.29.3-cp310-abi3-win_amd64.whl", hash = "sha256:a4fa6f80816a9a0678429e84973f2f98cbc218cca434abe8db2ad0bffc98503a"}, - {file = "protobuf-5.29.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a8434404bbf139aa9e1300dbf989667a83d42ddda9153d8ab76e0d5dcaca484e"}, - {file = "protobuf-5.29.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:daaf63f70f25e8689c072cfad4334ca0ac1d1e05a92fc15c54eb9cf23c3efd84"}, - {file = "protobuf-5.29.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:c027e08a08be10b67c06bf2370b99c811c466398c357e615ca88c91c07f0910f"}, - {file = "protobuf-5.29.3-cp38-cp38-win32.whl", hash = "sha256:84a57163a0ccef3f96e4b6a20516cedcf5bb3a95a657131c5c3ac62200d23252"}, - {file = "protobuf-5.29.3-cp38-cp38-win_amd64.whl", hash = "sha256:b89c115d877892a512f79a8114564fb435943b59067615894c3b13cd3e1fa107"}, - {file = "protobuf-5.29.3-cp39-cp39-win32.whl", hash = "sha256:0eb32bfa5219fc8d4111803e9a690658aa2e6366384fd0851064b963b6d1f2a7"}, - {file = "protobuf-5.29.3-cp39-cp39-win_amd64.whl", hash = "sha256:6ce8cc3389a20693bfde6c6562e03474c40851b44975c9b2bf6df7d8c4f864da"}, - {file = "protobuf-5.29.3-py3-none-any.whl", hash = "sha256:0a18ed4a24198528f2333802eb075e59dea9d679ab7a6c5efb017a59004d849f"}, - {file = "protobuf-5.29.3.tar.gz", hash = "sha256:5da0f41edaf117bde316404bad1a486cb4ededf8e4a54891296f648e8e076620"}, -] - -[[package]] -name = "psycopg2" -version = "2.9.10" -description = "psycopg2 - Python-PostgreSQL Database Adapter" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "psycopg2-2.9.10-cp310-cp310-win32.whl", hash = "sha256:5df2b672140f95adb453af93a7d669d7a7bf0a56bcd26f1502329166f4a61716"}, - {file = "psycopg2-2.9.10-cp310-cp310-win_amd64.whl", hash = "sha256:c6f7b8561225f9e711a9c47087388a97fdc948211c10a4bccbf0ba68ab7b3b5a"}, - {file = "psycopg2-2.9.10-cp311-cp311-win32.whl", hash = "sha256:47c4f9875125344f4c2b870e41b6aad585901318068acd01de93f3677a6522c2"}, - {file = "psycopg2-2.9.10-cp311-cp311-win_amd64.whl", hash = "sha256:0435034157049f6846e95103bd8f5a668788dd913a7c30162ca9503fdf542cb4"}, - {file = "psycopg2-2.9.10-cp312-cp312-win32.whl", hash = "sha256:65a63d7ab0e067e2cdb3cf266de39663203d38d6a8ed97f5ca0cb315c73fe067"}, - {file = "psycopg2-2.9.10-cp312-cp312-win_amd64.whl", hash = "sha256:4a579d6243da40a7b3182e0430493dbd55950c493d8c68f4eec0b302f6bbf20e"}, - {file = "psycopg2-2.9.10-cp313-cp313-win_amd64.whl", hash = "sha256:91fd603a2155da8d0cfcdbf8ab24a2d54bca72795b90d2a3ed2b6da8d979dee2"}, - {file = "psycopg2-2.9.10-cp39-cp39-win32.whl", hash = "sha256:9d5b3b94b79a844a986d029eee38998232451119ad653aea42bb9220a8c5066b"}, - {file = "psycopg2-2.9.10-cp39-cp39-win_amd64.whl", hash = "sha256:88138c8dedcbfa96408023ea2b0c369eda40fe5d75002c0964c78f46f11fa442"}, - {file = "psycopg2-2.9.10.tar.gz", hash = "sha256:12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11"}, -] - -[[package]] -name = "pydantic" -version = "2.10.5" -description = "Data validation using Python type hints" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"}, - {file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" -typing-extensions = ">=4.12.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.27.2" -description = "Core functionality for Pydantic validation and serialization" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pytest" -version = "8.3.4" -description = "pytest: simple powerful testing with Python" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, - {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "python-dotenv" -version = "1.0.1" -description = "Read key-value pairs from a .env file and set them as environment variables" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, - {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, -] - -[package.extras] -cli = ["click (>=5.0)"] - -[[package]] -name = "setuptools" -version = "75.8.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"}, - {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"] -core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.14.0,<1.15.0)", "pytest-mypy"] - -[[package]] -name = "sqlalchemy" -version = "2.0.37" -description = "Database Abstraction Library" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, - {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, - {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, - {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, - {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, - {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, - {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, - {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, - {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, - {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, -] - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version < \"3.14\" and platform_machine == \"aarch64\" or python_version < \"3.14\" and platform_machine == \"ppc64le\" or python_version < \"3.14\" and platform_machine == \"x86_64\" or python_version < \"3.14\" and platform_machine == \"amd64\" or python_version < \"3.14\" and platform_machine == \"AMD64\" or python_version < \"3.14\" and platform_machine == \"win32\" or python_version < \"3.14\" and platform_machine == \"WIN32\""} -typing-extensions = ">=4.6.0" - -[package.extras] -aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] -aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] -asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] -mssql = ["pyodbc"] -mssql-pymssql = ["pymssql"] -mssql-pyodbc = ["pyodbc"] -mypy = ["mypy (>=0.910)"] -mysql = ["mysqlclient (>=1.4.0)"] -mysql-connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=8)"] -oracle-oracledb = ["oracledb (>=1.0.1)"] -postgresql = ["psycopg2 (>=2.7)"] -postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.29.1)"] -postgresql-psycopg = ["psycopg (>=3.0.7)"] -postgresql-psycopg2binary = ["psycopg2-binary"] -postgresql-psycopg2cffi = ["psycopg2cffi"] -postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] -pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3_binary"] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "f590636643c34629bbb6f7b9bc0b20975fe3c6f86807ebb6408da99aae5a90b6" diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 4d610be..0000000 --- a/pyproject.toml +++ /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/utils/__init__.py b/utils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/utils/enums.py b/utils/enums.py deleted file mode 100644 index 5980341..0000000 --- a/utils/enums.py +++ /dev/null @@ -1,61 +0,0 @@ -list_of_unique_names = [ - # Apple - "Жим штанги лежа", - "Жим штанги сидя (45 градусов)", - "Жим ногами (гакк-машина)", - "Подъем ног на турнике", - "Гантели молот", - "Гантели молот (по очереди)", - "Жим от груди сидя в тренажере (блоки)", - "Наклоны с прямой спиной", - "Разгибание спины", - "Скручивания", - "Тяга Т-грифа", - "Тяга штанги в наклоне", - "Тяга штанги в наклоне (обратным хватом)", - "Разгибание рук в наклоне (кик-бек)", - # Obsidian - "Тяга горизонтального блока", - "Тяга горизонтального блока (по очереди)", - "Тяга гантелей в наклоне (по очереди)", - "Тяга гантелей на скамье", - "Тяга вертикального блока", - "Тяга вертикального блока (обратный хват)", - "Разгибание рук сидя (трицепс машина)", - "Подъем штанги на бицепс стоя", - "Подъем гантелей на бицепс стоя", - "Подъем гантелей на бицепс сидя", - "Сгибание ног сидя", - "Сгибание ног лежа", - "Сведение рук в пек-дек", - "Румынская тяга", - "Разгибание ног сидя", - "Разведение рук в стороны стоя (гантели)", - "Разведение рук в стороны в наклоне (гантели)", - "Приседания", - "Подъём ног в висе", - "Подтягивания", - "Подтягивания обратным хватом", - "Отжимания", - "Отведение рук в кроссовере (по очереди)", - "Разведение рук в пек-дек (по очереди)", - "Разведение рук в пек-дек", - "Отжимание на трицепс в кроссовере", - "Баттерфляй", - "Болгарские сплит-приседения", - "Брусья", - "Вертикальная тяга одной рукой", - "Выпады", - "Гиперэкстензия", - "Гравитрон", - "Гребная тяга с упором в грудь", - "Гребная тяга с упором в грудь (по очереди)", - "Разведение рук в стороны (дельт-машина)", - "Жим гантелей лежа", - "Жим гантелей лежа (Под углом 45 градусов)", - "Жим гантелей сидя", - "Жим ногами", - "Жим от груди сидя в тренажере (рычаги)", - "Жим от плеч вверх в тренажере (рычаги)", - "Икроножные сидя", -]