From c9e458f66042dd9d581b9e33a718962b6f8765d9 Mon Sep 17 00:00:00 2001 From: Ivan Koldakov Date: Wed, 1 May 2024 20:40:34 +0200 Subject: [PATCH] Initial commit [rewrite project] --- .dockerignore | 0 .github/workflows/python-app.yml | 7 +- .pre-commit-config.yaml | 5 +- Dockerfile | 46 - Makefile | 39 +- README.md | 6 +- alembic.ini | 2 +- app/core/__init__.py | 6 - app/graph_ql/routers.py | 7 - app/graph_ql/schemas.py | 286 --- app/graph_ql/tests/test_schemas.py | 16 - app/main.py | 83 - app/middlewares/secure.py | 56 - app/repositories/base.py | 198 -- app/repositories/models.py | 410 ---- app/repositories/sessions.py | 39 - app/repositories/tests/test_models.py | 12 - app/routers/characters.py | 98 - app/routers/root.py | 63 - app/routers/tokens.py | 66 - app/routers/users.py | 94 - app/services/auth.py | 4 - app/services/base.py | 13 - app/services/callbacks.py | 248 --- app/services/characters.py | 109 - app/services/emails.py | 49 - app/services/episodes.py | 70 - app/services/hashers.py | 142 -- app/services/notifications.py | 60 - app/services/root.py | 34 - app/services/seasons.py | 45 - app/services/security.py | 162 -- app/services/tokens.py | 75 - app/services/users.py | 227 -- app/templates.py | 30 - babel.cfg | 8 - configs/__init__.py | 0 configs/plugins/__init__.py | 0 configs/plugins/env_vars.py | 16 - docker-entrypoint.sh | 7 +- futuramaapi/__init__.py | 7 + futuramaapi/__main__.py | 11 + futuramaapi/apps/__init__.py | 11 + futuramaapi/apps/app.py | 85 + futuramaapi/apps/hypercorn.py | 27 + futuramaapi/core/__init__.py | 6 + .../core/configs.py | 11 +- .../middlewares}/__init__.py | 0 futuramaapi/middlewares/cors.py | 10 + futuramaapi/middlewares/secure.py | 65 + .../mixins}/__init__.py | 0 futuramaapi/mixins/pydantic.py | 67 + futuramaapi/pydantic/__init__.py | 5 + futuramaapi/pydantic/_base.py | 17 + .../repositories}/__init__.py | 0 futuramaapi/repositories/base.py | 101 + .../repositories/migrations}/README | 0 .../repositories/migrations}/__init__.py | 0 .../repositories/migrations}/env.py | 8 +- .../repositories/migrations}/script.py.mako | 0 .../1353be8a56b8_initial_project_structure.py | 4 +- ...e33d1ba_add_broadcast_number_to_episode.py | 2 +- .../versions/928d4358646c_add_image_field.py | 5 +- .../migrations/versions}/__init__.py | 0 ...060df1b8_add_production_code_to_episode.py | 2 +- .../versions/d413d1284339_initial_revision.py | 1 + .../ee5656c8dc7f_define_user_model.py | 2 +- futuramaapi/repositories/models.py | 205 ++ futuramaapi/repositories/session.py | 68 + futuramaapi/routers/__init__.py | 21 + futuramaapi/routers/callbacks/__init__.py | 5 + .../routers/callbacks/api.py | 38 +- futuramaapi/routers/callbacks/schemas.py | 118 ++ futuramaapi/routers/characters/__init__.py | 5 + futuramaapi/routers/characters/api.py | 61 + futuramaapi/routers/characters/schemas.py | 32 + futuramaapi/routers/episodes/__init__.py | 5 + .../routers/episodes/api.py | 24 +- futuramaapi/routers/episodes/schemas.py | 43 + futuramaapi/routers/notifications/__init__.py | 5 + .../routers/notifications/api.py | 10 +- futuramaapi/routers/notifications/schemas.py | 57 + futuramaapi/routers/root/__init__.py | 5 + futuramaapi/routers/root/api.py | 37 + futuramaapi/routers/schemas.py | 1 + futuramaapi/routers/seasons/__init__.py | 5 + .../routers/seasons/api.py | 24 +- futuramaapi/routers/seasons/schemas.py | 16 + .../tests => futuramaapi/utils}/__init__.py | 0 futuramaapi/utils/helpers.py | 2 + install-dependencies.sh | 8 - locale/en_US/LC_MESSAGES/messages.po | 229 -- poetry.lock | 1862 +++++++++++++++++ pyproject.toml | 49 +- requirements.txt | 72 - static/intro-image.jpg | Bin 0 -> 701095 bytes templates/about.html | 96 - templates/base.html | 111 - templates/emails/confirmation.html | 179 -- templates/index.html | 64 - {app/routers => tests/unit}/__init__.py | 0 .../unit/repositories}/__init__.py | 0 102 files changed, 3107 insertions(+), 3635 deletions(-) delete mode 100644 .dockerignore delete mode 100644 Dockerfile delete mode 100644 app/core/__init__.py delete mode 100644 app/graph_ql/routers.py delete mode 100644 app/graph_ql/schemas.py delete mode 100644 app/graph_ql/tests/test_schemas.py delete mode 100644 app/main.py delete mode 100644 app/middlewares/secure.py delete mode 100644 app/repositories/base.py delete mode 100644 app/repositories/models.py delete mode 100644 app/repositories/sessions.py delete mode 100644 app/repositories/tests/test_models.py delete mode 100644 app/routers/characters.py delete mode 100644 app/routers/root.py delete mode 100644 app/routers/tokens.py delete mode 100644 app/routers/users.py delete mode 100644 app/services/auth.py delete mode 100644 app/services/base.py delete mode 100644 app/services/callbacks.py delete mode 100644 app/services/characters.py delete mode 100644 app/services/emails.py delete mode 100644 app/services/episodes.py delete mode 100644 app/services/hashers.py delete mode 100644 app/services/notifications.py delete mode 100644 app/services/root.py delete mode 100644 app/services/seasons.py delete mode 100644 app/services/security.py delete mode 100644 app/services/tokens.py delete mode 100644 app/services/users.py delete mode 100644 app/templates.py delete mode 100644 babel.cfg delete mode 100644 configs/__init__.py delete mode 100644 configs/plugins/__init__.py delete mode 100644 configs/plugins/env_vars.py create mode 100644 futuramaapi/__init__.py create mode 100644 futuramaapi/__main__.py create mode 100644 futuramaapi/apps/__init__.py create mode 100644 futuramaapi/apps/app.py create mode 100644 futuramaapi/apps/hypercorn.py create mode 100644 futuramaapi/core/__init__.py rename app/core/settings.py => futuramaapi/core/configs.py (87%) rename {alembic/versions => futuramaapi/middlewares}/__init__.py (100%) create mode 100644 futuramaapi/middlewares/cors.py create mode 100644 futuramaapi/middlewares/secure.py rename {app/graph_ql => futuramaapi/mixins}/__init__.py (100%) create mode 100644 futuramaapi/mixins/pydantic.py create mode 100644 futuramaapi/pydantic/__init__.py create mode 100644 futuramaapi/pydantic/_base.py rename {app/graph_ql/tests => futuramaapi/repositories}/__init__.py (100%) create mode 100644 futuramaapi/repositories/base.py rename {alembic => futuramaapi/repositories/migrations}/README (100%) rename {app/middlewares => futuramaapi/repositories/migrations}/__init__.py (100%) rename {alembic => futuramaapi/repositories/migrations}/env.py (93%) rename {alembic => futuramaapi/repositories/migrations}/script.py.mako (100%) rename {alembic => futuramaapi/repositories/migrations}/versions/1353be8a56b8_initial_project_structure.py (100%) rename {alembic => futuramaapi/repositories/migrations}/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py (100%) rename {alembic => futuramaapi/repositories/migrations}/versions/928d4358646c_add_image_field.py (95%) rename {app/repositories => futuramaapi/repositories/migrations/versions}/__init__.py (100%) rename {alembic => futuramaapi/repositories/migrations}/versions/c03e060df1b8_add_production_code_to_episode.py (100%) rename {alembic => futuramaapi/repositories/migrations}/versions/d413d1284339_initial_revision.py (99%) rename {alembic => futuramaapi/repositories/migrations}/versions/ee5656c8dc7f_define_user_model.py (100%) create mode 100644 futuramaapi/repositories/models.py create mode 100644 futuramaapi/repositories/session.py create mode 100644 futuramaapi/routers/__init__.py create mode 100644 futuramaapi/routers/callbacks/__init__.py rename app/routers/callbacks.py => futuramaapi/routers/callbacks/api.py (77%) create mode 100644 futuramaapi/routers/callbacks/schemas.py create mode 100644 futuramaapi/routers/characters/__init__.py create mode 100644 futuramaapi/routers/characters/api.py create mode 100644 futuramaapi/routers/characters/schemas.py create mode 100644 futuramaapi/routers/episodes/__init__.py rename app/routers/episodes.py => futuramaapi/routers/episodes/api.py (74%) create mode 100644 futuramaapi/routers/episodes/schemas.py create mode 100644 futuramaapi/routers/notifications/__init__.py rename app/routers/notifications.py => futuramaapi/routers/notifications/api.py (77%) create mode 100644 futuramaapi/routers/notifications/schemas.py create mode 100644 futuramaapi/routers/root/__init__.py create mode 100644 futuramaapi/routers/root/api.py create mode 100644 futuramaapi/routers/schemas.py create mode 100644 futuramaapi/routers/seasons/__init__.py rename app/routers/seasons.py => futuramaapi/routers/seasons/api.py (73%) create mode 100644 futuramaapi/routers/seasons/schemas.py rename {app/repositories/tests => futuramaapi/utils}/__init__.py (100%) create mode 100644 futuramaapi/utils/helpers.py delete mode 100644 install-dependencies.sh delete mode 100644 locale/en_US/LC_MESSAGES/messages.po create mode 100644 poetry.lock delete mode 100644 requirements.txt create mode 100644 static/intro-image.jpg delete mode 100644 templates/about.html delete mode 100644 templates/base.html delete mode 100644 templates/emails/confirmation.html delete mode 100644 templates/index.html rename {app/routers => tests/unit}/__init__.py (100%) rename {app/services => tests/unit/repositories}/__init__.py (100%) diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index e69de29..0000000 diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index bda7236..8693ef0 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -23,11 +23,10 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install ruff pytest - python -m pip install -r requirements.txt + make install-dev - name: Code style run: | - pre-commit run --all-files + poetry run pre-commit run --all-files - name: Pytest run: | - make tests + make test diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index feca58c..05bce2d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,13 +5,14 @@ repos: rev: v4.5.0 hooks: - id: check-added-large-files + args: ["--maxkb=700"] - id: check-yaml - id: check-toml - id: check-json - id: check-symlinks - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.1.7 + rev: v0.4.2 hooks: - id: ruff - id: ruff-format @@ -27,7 +28,7 @@ repos: - manual - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.7.1 + rev: v1.10.0 hooks: - id: mypy pass_filenames: false diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index ad4c9c4..0000000 --- a/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM python:3.12.0-slim-bullseye - -# Environ -ENV PYTHONUNBUFFERED=1 -ENV PYTHONDONTWRITEBYTECODE=1 -ENV VIRTUAL_ENV=/opt/venv -ENV PATH="$VIRTUAL_ENV/bin:$PATH" - -# Arguments -ARG APP_USER=qworpa -ARG WORK_DIR=/app - -# Install OS dependencies -COPY install-dependencies.sh /tmp -RUN . /tmp/install-dependencies.sh - -# Install python environ -RUN python3 -m venv $VIRTUAL_ENV -COPY requirements.txt /tmp -RUN pip install --upgrade pip -RUN pip install --no-cache-dir -r /tmp/requirements.txt - -# Add user -RUN groupadd \ - --system ${APP_USER} \ - && useradd --no-log-init --system --gid ${APP_USER} ${APP_USER} - -# Copy project files to the work dir -COPY ./ ${WORK_DIR} - -# Set owner to the project -RUN chown -R ${APP_USER}:${APP_USER} ${WORK_DIR} - -# Set work dir -WORKDIR ${WORK_DIR} - -EXPOSE 8000 - -# Set project user -USER ${APP_USER}:${APP_USER} - -# Compile messages -RUN cd ${WORK_DIR}; make messages-compile - -# Main launch command -CMD ["./docker-entrypoint.sh"] diff --git a/Makefile b/Makefile index c35b0e3..eebbf64 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,27 @@ SHELL = /bin/bash +PYTHON = python3.12 help: # Display this message @sed -ne '/@sed/!s/# //p' $(MAKEFILE_LIST) -messages-init: # locale=LANG, init LANG language - @test $${locale?Please specify locale. Example \"locale=en_CA\"} - @pybabel init -l $(locale) -i locale/messages.pot -d locale +install-dev: # Install DEV/TEST Environ and dependencies + @echo "Upgrading pip" + @$(PYTHON) -m pip install --upgrade pip + @echo "Installing poetry" + @$(PYTHON) -m pip install poetry + @echo "Installing dependencies" + @$(PYTHON) -m poetry install -messages-extract: # Extract messages to locale/messages.pot - @pybabel extract \ - --version=0.0.1 \ - --msgid-bugs-address=coldie322@gmail.com \ - --project=FuturamaAPI \ - --copyright-holder=FuturamaAPI \ - --mapping babel.cfg \ - --output-file=locale/messages.pot \ - . +install: # Install Environ and dependencies + @echo "Upgrading pip" + @$(PYTHON) -m pip install --upgrade pip + @echo "Installing poetry" + @$(PYTHON) -m pip install poetry + @echo "Installing dependencies" + @$(PYTHON) -m poetry install --without dev --without test -messages: # Update all locales - @$(MAKE) messages-extract - @pybabel update --input-file=locale/messages.pot --output-dir=locale +test: # Run tests + @poetry run $(PYTHON) -m pytest -messages-compile: # Generate .mo files for all locales - @pybabel compile --directory=locale - -tests: # Run tests - @python -m pytest +migrate: # Migrate + @poetry run $(PYTHON) -m alembic upgrade head diff --git a/README.md b/README.md index 18a54e3..216e860 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,8 @@ If you create models in a new file please import it in env.py. Because alembic does not detect child classes. ```commandline -alembic revision --autogenerate -m "Revision Name" -alembic upgrade head +poetry run alembic revision --autogenerate -m "Revision Name" +poetry run alembic upgrade head ```

(back to top)

@@ -72,7 +72,7 @@ export $(cat .env | xargs) # Compile tranlations make messages-compile # Run hypercorn server -hypercorn --reload app.main:app +hypercorn --reload futuramaapi.main:app ```

(back to top)

diff --git a/alembic.ini b/alembic.ini index e4ed6f6..5278187 100644 --- a/alembic.ini +++ b/alembic.ini @@ -2,7 +2,7 @@ [alembic] # path to migration scripts -script_location = alembic +script_location = futuramaapi/repositories/migrations # template used to generate migration file names; The default value is %%(rev)s_%%(slug)s # Uncomment the line below if you want the files to be prepended with date and time diff --git a/app/core/__init__.py b/app/core/__init__.py deleted file mode 100644 index 54be719..0000000 --- a/app/core/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from app.core.settings import feature_flags, settings - -__all__ = [ - "feature_flags", - "settings", -] diff --git a/app/graph_ql/routers.py b/app/graph_ql/routers.py deleted file mode 100644 index b2c4539..0000000 --- a/app/graph_ql/routers.py +++ /dev/null @@ -1,7 +0,0 @@ -import strawberry -from strawberry.fastapi import GraphQLRouter - -from app.graph_ql.schemas import Query - -schema = strawberry.Schema(Query) -router = GraphQLRouter(schema, path="/graphql") diff --git a/app/graph_ql/schemas.py b/app/graph_ql/schemas.py deleted file mode 100644 index 3c6ca3f..0000000 --- a/app/graph_ql/schemas.py +++ /dev/null @@ -1,286 +0,0 @@ -from typing import Any - -import strawberry - -from app.repositories.models import ( - Character as CharacterModel, -) -from app.repositories.models import ( - CharacterDoesNotExist, - CharacterGender, - CharacterGenderFilter, - CharacterSpecies, - CharacterSpeciesFilter, - CharacterStatus, - CharacterStatusFilter, - EpisodeDoesNotExist, - SeasonDoesNotExist, -) -from app.repositories.models import ( - Episode as EpisodeModel, -) -from app.repositories.models import ( - Season as SeasonModel, -) -from app.repositories.sessions import get_async_session_ctx -from app.services.base import EpisodeBase as EpisodeBaseSchema -from app.services.characters import Character as CharacterSchema -from app.services.episodes import ( - Episode as EpisodeSchema, -) -from app.services.episodes import ( - SeasonEpisode as SeasonEpisodeSchema, -) -from app.services.seasons import ( - EpisodeSeason as EpisodeSeasonSchema, -) -from app.services.seasons import ( - Season as SeasonSchema, -) - - -class BaseQueryException(Exception): - ... - - -class CharacterQueryException(BaseQueryException): - ... - - -class LimitViolation(CharacterQueryException): - ... - - -class OffsetViolation(CharacterQueryException): - ... - - -@strawberry.experimental.pydantic.type(model=CharacterSchema) -class Character: - id: strawberry.auto # noqa: A003 - name: strawberry.auto - gender: strawberry.enum(CharacterGender) # type: ignore - status: strawberry.enum(CharacterStatus) # type: ignore - species: strawberry.enum(CharacterSpecies) # type: ignore - created_at: strawberry.auto - image: strawberry.auto - - -@strawberry.type -class PageBase: - limit: int - offset: int - total: int - edges: list[Any] - - @staticmethod - def get_schema_class(): - raise NotImplementedError() - - @staticmethod - def get_edge_class(): - raise NotImplementedError() - - @classmethod - def from_params(cls, edges, limit: int, offset: int, total: int, /): - schema_class = cls.get_schema_class() - edge_class = cls.get_edge_class() - return cls( - limit=limit, # type: ignore - offset=offset, # type: ignore - total=total, # type: ignore - edges=[edge_class.from_pydantic(schema_class.model_validate(edge)) for edge in edges], # type: ignore - ) - - -@strawberry.type -class Characters(PageBase): - edges: list[Character] - - @staticmethod - def get_schema_class(): - return CharacterSchema - - @staticmethod - def get_edge_class(): - return Character - - -@strawberry.experimental.pydantic.type(model=SeasonEpisodeSchema, all_fields=True) -class SeasonEpisode: - ... - - -@strawberry.experimental.pydantic.type(model=EpisodeBaseSchema, all_fields=True) -class EpisodeBase: - ... - - -@strawberry.experimental.pydantic.type(model=EpisodeSchema) -class Episode(EpisodeBase): - air_date: strawberry.auto - duration: strawberry.auto - created_at: strawberry.auto - season: SeasonEpisode - broadcast_code: str - - -@strawberry.experimental.pydantic.type(model=EpisodeSeasonSchema) -class EpisodeSeason(EpisodeBase): - id: strawberry.auto # noqa: A003 - name: strawberry.auto - broadcast_number: strawberry.auto - production_code: strawberry.auto - - -@strawberry.type -class Episodes(PageBase): - edges: list[Episode] - - @staticmethod - def get_schema_class(): - return EpisodeSchema - - @staticmethod - def get_edge_class(): - return Episode - - -@strawberry.experimental.pydantic.type(model=SeasonSchema) -class Season: - id: strawberry.auto # noqa: A003 - episodes: list[EpisodeSeason] - - -def validate_limit(limit: int, min_: int, max_: int, /) -> None: - if not min_ <= limit <= max_: - raise LimitViolation(f"Limit can be more than {min_} and less than {max_}") from None - - -@strawberry.type -class Seasons(PageBase): - edges: list[Season] - - @staticmethod - def get_schema_class(): - return SeasonSchema - - @staticmethod - def get_edge_class(): - return Season - - -@strawberry.type -class Query: - @strawberry.field() - async def character(self, character_id: int) -> Character | None: - async with get_async_session_ctx() as session: - try: - character: CharacterModel = await CharacterModel.get( - session, - character_id, - ) - except CharacterDoesNotExist: - return None - return Character.from_pydantic(CharacterSchema.model_validate(character)) # type: ignore - - @strawberry.field() - async def characters( # noqa: PLR0913 - self, - *, - limit: int | None = 50, - offset: int | None = 0, - gender: strawberry.enum(CharacterGenderFilter) | None = None, # type: ignore - status: strawberry.enum(CharacterStatusFilter) | None = None, # type: ignore - species: strawberry.enum(CharacterSpeciesFilter) | None = None, # type: ignore - ) -> Characters: - if limit is None: - limit = 50 - if offset is None: - offset = 0 - # For some reason self does not work under strawberry decorator, - # so class attrs can't be used. Please find another way. - _min_l: int = 1 - _max_l: int = 50 - _min_offset: int = 0 - validate_limit(limit, _min_l, _max_l) - - async with get_async_session_ctx() as session: - total: int = await CharacterModel.count(session) - validate_limit(offset, _min_offset, total) - characters = await CharacterModel.filter( - session, - limit=limit, - offset=offset, - gender=gender, - character_status=status, - species=species, - ) - return Characters.from_params(characters, limit, offset, total) - - @strawberry.field() - async def episode(self, episode_id: int) -> Episode | None: - async with get_async_session_ctx() as session: - try: - episode: EpisodeModel = await EpisodeModel.get( - session, - episode_id, - ) - except EpisodeDoesNotExist: - return None - return Episode.from_pydantic(EpisodeSchema.model_validate(episode)) # type: ignore - - @strawberry.field() - async def episodes( - self, - *, - limit: int | None = 50, - offset: int | None = 0, - ) -> Episodes: - if limit is None: - limit = 50 - if offset is None: - offset = 0 - validate_limit(limit, 1, 50) - async with get_async_session_ctx() as session: - total: int = await CharacterModel.count(session) - validate_limit(offset, 0, total) - episodes = await EpisodeModel.filter( - session, - limit=limit, - select_in_load=EpisodeModel.season, - offset=offset, - ) - return Episodes.from_params(episodes, limit, offset, total) - - @strawberry.field() - async def season(self, season_id: int) -> Season | None: - async with get_async_session_ctx() as session: - try: - season: SeasonModel = await SeasonModel.get(session, season_id) - except SeasonDoesNotExist: - return None - return Season.from_pydantic(SeasonSchema.model_validate(season)) # type: ignore - - @strawberry.field() - async def seasons( - self, - *, - limit: int | None = 50, - offset: int | None = 0, - ) -> Seasons: - if limit is None: - limit = 50 - if offset is None: - offset = 0 - validate_limit(limit, 1, 50) - async with get_async_session_ctx() as session: - total: int = await SeasonModel.count(session) - validate_limit(offset, 0, total) - seasons = await SeasonModel.filter( - session, - limit=limit, - select_in_load=SeasonModel.episodes, - offset=offset, - ) - return Seasons.from_params(seasons, limit, offset, total) diff --git a/app/graph_ql/tests/test_schemas.py b/app/graph_ql/tests/test_schemas.py deleted file mode 100644 index e8457ff..0000000 --- a/app/graph_ql/tests/test_schemas.py +++ /dev/null @@ -1,16 +0,0 @@ -import pytest - -from app.graph_ql.schemas import LimitViolation, validate_limit - - -class TestLimitValidation: - def test_validate_limit_should_raise_limit_violation_when_limit_less_then_min_allowed_value(self): - with pytest.raises(LimitViolation): - validate_limit(0, 1, 3) - - def test_validate_limit_should_raise_limit_violation_when_limit_more_then_max_allowed_value(self): - with pytest.raises(LimitViolation): - validate_limit(4, 1, 3) - - def test_validate_limit_should_return_none_when_limit_more_then_min_value_and_less_then_max_value(self): - assert validate_limit(2, 1, 3) is None diff --git a/app/main.py b/app/main.py deleted file mode 100644 index 2974cd3..0000000 --- a/app/main.py +++ /dev/null @@ -1,83 +0,0 @@ -import mimetypes - -from fastapi import FastAPI -from fastapi.middleware.cors import CORSMiddleware -from fastapi.staticfiles import StaticFiles -from fastapi_pagination import add_pagination - -from app.core import feature_flags, settings -from app.graph_ql.routers import router as graphql_router -from app.middlewares.secure import HTTPSRedirectMiddleware -from app.routers.callbacks import router as callbacks_router -from app.routers.characters import router as characters_router -from app.routers.episodes import router as episodes_router -from app.routers.notifications import router as notifications_router -from app.routers.root import router as root_router -from app.routers.seasons import router as seasons_router -from app.routers.tokens import router as tokens_router -from app.routers.users import router as users_router - -mimetypes.add_type("image/webp", ".webp") - -app = FastAPI( - docs_url=None, - redoc_url=None, -) - -if feature_flags.enable_https_redirect: - app.add_middleware(HTTPSRedirectMiddleware) - -app.add_middleware( - CORSMiddleware, - allow_origins=settings.allow_origins, - allow_methods=["*"], - allow_headers=["*"], -) - -app.include_router(root_router) - -# API -app.include_router( - characters_router, - tags=["characters"], - prefix="/api", -) -app.include_router( - episodes_router, - tags=["episodes"], - prefix="/api", -) -app.include_router( - notifications_router, - tags=["notifications"], - prefix="/api", -) -app.include_router( - seasons_router, - tags=["seasons"], - prefix="/api", -) -app.include_router( - callbacks_router, - tags=["callbacks"], - prefix="/api", -) -app.include_router( - graphql_router, - prefix="/api", - include_in_schema=False, -) -app.include_router( - users_router, - tags=["users"], - prefix="/api", -) -app.include_router( - tokens_router, - tags=["tokens"], - prefix="/api", -) - -app.mount("/static", StaticFiles(directory="static"), name="static") - -add_pagination(app) diff --git a/app/middlewares/secure.py b/app/middlewares/secure.py deleted file mode 100644 index 6abd37a..0000000 --- a/app/middlewares/secure.py +++ /dev/null @@ -1,56 +0,0 @@ -import logging - -from starlette import status -from starlette.datastructures import URL -from starlette.responses import RedirectResponse -from starlette.types import ASGIApp, Receive, Scope, Send - -from app.core import settings - -logger = logging.getLogger(__name__) - - -class HTTPSRedirectMiddleware: - https_port = 443 - http_port = 80 - proto_header = "x-forwarded-proto" - port_header = "x-forwarded-port" - - def __init__(self, app: ASGIApp) -> None: - self.app = app - - def is_secure(self, headers: dict): - try: - host: str = headers["host"] - except KeyError: - logger.info("Host not found in headers") - return False - try: - proto: str = headers[self.proto_header] - except KeyError: - logger.info("x-forwarded-proto not found in headers") - return False - try: - port: str = headers[self.port_header] - except KeyError: - logger.info("x-forwarded-port not found in headers") - return False - - if host == settings.trusted_host and proto in ("https", "wss") and int(port) == self.https_port: - return True - return False - - async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: - headers: dict = {h[0].decode().lower(): h[1].decode() for h in scope["headers"]} - if not self.is_secure(headers): - url = URL(scope=scope) - redirect_scheme = {"http": "https", "ws": "wss"}[url.scheme] - netloc = url.hostname if url.port in (self.http_port, self.https_port) else url.netloc - url = url.replace(scheme=redirect_scheme, netloc=netloc) - response = RedirectResponse( - url, - status_code=status.HTTP_307_TEMPORARY_REDIRECT, - ) - await response(scope, receive, send) - else: - await self.app(scope, receive, send) diff --git a/app/repositories/base.py b/app/repositories/base.py deleted file mode 100644 index ce94779..0000000 --- a/app/repositories/base.py +++ /dev/null @@ -1,198 +0,0 @@ -from collections.abc import Sequence -from enum import Enum -from typing import TYPE_CHECKING, Any, Self -from uuid import UUID, uuid4 - -from asyncpg.exceptions import UniqueViolationError -from sqlalchemy import UUID as COLUMN_UUID -from sqlalchemy import Column, DateTime, Row, select -from sqlalchemy.exc import IntegrityError, NoResultFound -from sqlalchemy.ext.asyncio.session import AsyncSession -from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, selectinload -from sqlalchemy.orm.attributes import InstrumentedAttribute -from sqlalchemy.sql import func -from sqlalchemy.sql.elements import BinaryExpression, UnaryExpression - -if TYPE_CHECKING: - from sqlalchemy.engine.result import Result - - -class OrderByDirection(Enum): - ASC = "asc" - DESC = "desc" - - -class OrderBy(Enum): - ID = "id" - CREATED_AT = "createdAt" - - -class ModelDoesNotExist(Exception): - """Model Does Not Exist.""" - - -class ModelAlreadyExist(Exception): - """Model Already Exists""" - - -class Base(DeclarativeBase): - __abstract__ = True - - order_by = OrderBy - - model_already_exists: type[ModelAlreadyExist] = ModelAlreadyExist - model_does_not_exist: type[ModelDoesNotExist] = ModelDoesNotExist - - id: Mapped[int] = mapped_column(primary_key=True) # noqa: A003 - - created_at = Column( - DateTime( - timezone=True, - ), - server_default=func.now(), - nullable=False, - ) - uuid = Column( - COLUMN_UUID( - as_uuid=True, - ), - primary_key=False, - unique=True, - nullable=False, - default=uuid4, - ) - - @classmethod - async def get( - cls, - session: AsyncSession, - val: int | str | UUID, - /, - *, - field: InstrumentedAttribute | None = None, - ) -> Self: - if field is None: - field = cls.id - statement = select(cls).where(field == val) - cursor: Result = await session.execute(statement) - try: - return cursor.scalars().one() - except NoResultFound: - raise cls.model_does_not_exist() from None - - @staticmethod - def filter_obj_to_cond( - obj, - orig, - model_field: Column[str | Enum], - /, - ) -> BinaryExpression: - if obj.name.startswith("NOT_"): - return model_field != orig[obj.name.split("NOT_", 1)[1]] - return model_field == orig[obj.name] - - @classmethod - def get_filter_statement( # noqa: PLR0913 - cls, - *, - limit: int | None = None, - order_by=OrderBy.ID, - order_by_direction=OrderByDirection.ASC, - select_in_load: InstrumentedAttribute | None = None, - offset: int | None = None, - **kwargs, - ): - statement = select(cls) - statement = statement.order_by( - cls.get_order_by( - field=order_by, - direction=order_by_direction, - ) - ) - cond_list: list = cls.get_cond_list(**kwargs) - if cond_list: - statement = statement.where(*cond_list) - if select_in_load is not None: - statement = statement.options(selectinload(select_in_load)) - if offset: - statement = statement.offset(offset) - if limit is not None: - statement = statement.limit(limit) - return statement - - @classmethod - def get_cond_list(cls, **kwargs) -> list[BinaryExpression]: - return [] - - @classmethod - async def filter( # noqa: A003, PLR0913 - cls, - session: AsyncSession, - /, - *, - limit: int | None = None, - order_by=None, - order_by_direction=OrderByDirection.ASC, - select_in_load: InstrumentedAttribute | None = None, - **kwargs, - ) -> Sequence[Row[tuple[Any, ...] | Any]]: - if order_by is None: - order_by = cls.order_by.ID - statement = cls.get_filter_statement( - limit=limit, - order_by=order_by, - order_by_direction=order_by_direction, - select_in_load=select_in_load, - **kwargs, - ) - cursor: Result = await session.execute(statement) - return cursor.scalars().all() - - @classmethod - def get_order_by( - cls, - *, - field=OrderBy.ID, - direction=OrderByDirection.ASC, - ) -> UnaryExpression: - _field: InstrumentedAttribute - if field is None: - _field = cls.id - else: - _field = cls.__table__.c[field.name.lower()] - if direction == OrderByDirection.DESC: - return _field.desc() - return _field.asc() - - @classmethod - async def count(cls, session: AsyncSession) -> int: - res = await session.execute(func.count(cls.id)) - return res.scalar() - - @classmethod - async def add( - cls, - session: AsyncSession, - data, - /, - *, - commit: bool = True, - extra_fields: dict[ - str, - Any, - ] - | None = None, - ) -> Self: - obj: Self = cls(**data.model_dump()) - if extra_fields is not None: - for name, value in extra_fields.items(): - setattr(obj, name, value) - session.add(obj) - if commit is True: - try: - await session.commit() - except IntegrityError as err: - if err.orig.sqlstate == UniqueViolationError.sqlstate: - raise cls.model_already_exists() from None - raise - return obj diff --git a/app/repositories/models.py b/app/repositories/models.py deleted file mode 100644 index f172d6b..0000000 --- a/app/repositories/models.py +++ /dev/null @@ -1,410 +0,0 @@ -from enum import Enum -from typing import TYPE_CHECKING -from uuid import UUID - -from fastapi_storages import FileSystemStorage -from fastapi_storages.integrations.sqlalchemy import ImageType -from sqlalchemy import ( - VARCHAR, - Boolean, - Column, - Date, - ForeignKey, - Integer, - SmallInteger, - select, -) -from sqlalchemy.dialects.postgresql import ENUM # TODO: engine agnostic. -from sqlalchemy.exc import NoResultFound -from sqlalchemy.ext.asyncio.session import AsyncSession -from sqlalchemy.orm import Mapped, mapped_column, relationship, selectinload -from sqlalchemy.orm.attributes import InstrumentedAttribute -from sqlalchemy.sql.elements import BinaryExpression - -from app.core import settings -from app.repositories.base import Base, ModelAlreadyExist, ModelDoesNotExist - -if TYPE_CHECKING: - from sqlalchemy.engine.result import Result - - -def to_camel( - val: str, -): - return "".join([word if idx == 0 else word.capitalize() for idx, word in enumerate(val.lower().split("_"))]) - - -def generate_inverted_enum( - name: str, - proto_enum: type[Enum], - /, -) -> Enum: - return Enum(name, {f"NOT_{i.name}": f"!{i.value}" for i in [*proto_enum]}) - - -def generate_filter_enum( - name: str, - enums, -) -> Enum: - unpacked_enums: list[Enum] = [val for _e in enums for val in _e] - return Enum(name, {e.name: to_camel(e.value) for e in unpacked_enums}) - - -class CharacterStatus(Enum): - ALIVE = "ALIVE" - DEAD = "DEAD" - UNKNOWN = "UNKNOWN" - - -CharacterInvertedStatus = generate_inverted_enum( - "CharacterInvertedStatus", - CharacterStatus, -) - - -CharacterStatusFilter = generate_filter_enum( - "CharacterStatusFilter", - [ - CharacterStatus, - CharacterInvertedStatus, - ], -) - - -class CharacterGender(Enum): - MALE = "MALE" - FEMALE = "FEMALE" - UNKNOWN = "UNKNOWN" - - -CharacterInvertedGender = generate_inverted_enum( - "CharacterInvertedGender", - CharacterGender, -) - - -CharacterGenderFilter = generate_filter_enum( - "CharacterGenderFilter", - [ - CharacterGender, - CharacterInvertedGender, - ], -) - - -class CharacterSpecies(Enum): - HUMAN = "HUMAN" - ROBOT = "ROBOT" - HEAD = "HEAD" - ALIEN = "ALIEN" - MUTANT = "MUTANT" - MONSTER = "MONSTER" - UNKNOWN = "UNKNOWN" - - -CharacterInvertedSpecies = generate_inverted_enum( - "CharacterInvertedSpecies", - CharacterSpecies, -) - - -CharacterSpeciesFilter = generate_filter_enum( - "CharacterSpeciesFilter", - [ - CharacterSpecies, - CharacterInvertedSpecies, - ], -) - - -class Season(Base): - __tablename__ = "seasons" - - # Mappers - episodes: Mapped[list["Episode"]] = relationship( - back_populates="season", - ) - - @classmethod - async def get( - cls, - session: AsyncSession, - val: int | str | UUID, - /, - *, - field: InstrumentedAttribute = None, - ) -> "Season": - if field is None: - field = Season.id - cursor: "Result" = await session.execute( - select(Season).where(field == val).options(selectinload(Season.episodes)) - ) - try: - return cursor.scalars().one() - except NoResultFound as err: - raise SeasonDoesNotExist() from err - - -class SeasonDoesNotExist(ModelDoesNotExist): - """Season does not exist.""" - - -class EpisodeCharacterAssociation(Base): - __tablename__ = "episode_character_association" - - id = None # noqa: A003 - created_at = None - uuid = None - episode_id: Mapped[int] = mapped_column( - ForeignKey("episodes.id"), - primary_key=True, - ) - character_id: Mapped[int] = mapped_column( - ForeignKey("characters.id"), - primary_key=True, - ) - - -class Episode(Base): - __tablename__ = "episodes" - - name = Column( - VARCHAR( - length=128, - ), - nullable=True, - ) - air_date = Column( - Date(), - nullable=True, - ) - duration = Column( - Integer, - nullable=True, - ) - production_code = Column( - VARCHAR( - length=8, - ), - nullable=True, - ) - broadcast_number = Column( - SmallInteger, - nullable=True, - ) - - # Mappers - season_id: Mapped[int] = mapped_column( - ForeignKey("seasons.id"), - ) - season: Mapped["Season"] = relationship( - back_populates="episodes", - ) - - characters: Mapped[list["Character"]] = relationship( - secondary="episode_character_association", - back_populates="episodes", - ) - - @classmethod - async def get( - cls, - session: AsyncSession, - val: int | str | UUID, - /, - *, - field: InstrumentedAttribute = None, - ) -> "Episode": - if field is None: - field = Episode.id - cursor: "Result" = await session.execute( - select(Episode).where(field == val).options(selectinload(Episode.season)) - ) - try: - return cursor.scalars().one() - except NoResultFound as err: - raise EpisodeDoesNotExist() from err - - -class EpisodeDoesNotExist(ModelDoesNotExist): - """Episode does not exist.""" - - -class CharacterOrderBy(Enum): - ID = "id" - NAME = "name" - CREATED_AT = "createdAt" - - -class Character(Base): - __tablename__ = "characters" - order_by = CharacterOrderBy - - name = Column( - VARCHAR( - length=128, - ), - nullable=False, - ) - status = Column( - ENUM( - CharacterStatus, - ), - nullable=False, - ) - gender = Column( - ENUM( - CharacterGender, - ), - nullable=False, - ) - species = Column( - ENUM( - CharacterSpecies, - ), - nullable=False, - ) - image = Column( - ImageType( - storage=FileSystemStorage(path=settings.project_root / settings.static), - ), - ) - - # Mappers - episodes: Mapped[list["Episode"]] = relationship( - secondary="episode_character_association", - back_populates="characters", - ) - - @classmethod - async def get( - cls, - session: AsyncSession, - val: int | str | UUID, - /, - *, - field: InstrumentedAttribute = None, - ) -> "Character": - if field is None: - field = Character.id - cursor: "Result" = await session.execute(select(Character).where(field == val)) - try: - return cursor.scalars().one() - except NoResultFound as err: - raise CharacterDoesNotExist() from err - - @classmethod - def get_cond_list(cls, **kwargs) -> list[BinaryExpression]: - gender: CharacterGenderFilter | None = kwargs.get("gender") # type: ignore[valid-type] - character_status: CharacterStatusFilter | None = kwargs.get("character_status") # type: ignore[valid-type] - species: CharacterSpeciesFilter | None = kwargs.get("species") # type: ignore[valid-type] - query: str | None = kwargs.get("query") - cond_list = [] - if gender is not None: - cond_list.append( - cls.filter_obj_to_cond( - gender, - CharacterGender, - Character.gender, - ) - ) - if character_status is not None: - cond_list.append( - cls.filter_obj_to_cond( - character_status, - CharacterStatus, - Character.status, - ) - ) - if species is not None: - cond_list.append( - cls.filter_obj_to_cond( - species, - CharacterSpecies, - Character.species, - ) - ) - if query is not None: - cond_list.append(Character.name.ilike(f"%{query.lower()}%")) - return cond_list - - -class CharacterDoesNotExist(ModelDoesNotExist): - """Character does not exist.""" - - -class UserAlreadyExists(ModelAlreadyExist): - """User does not exist.""" - - -class User(Base): - __tablename__ = "users" - model_already_exists = UserAlreadyExists - - name = Column( - VARCHAR( - length=64, - ), - nullable=False, - ) - surname = Column( - VARCHAR( - length=64, - ), - nullable=False, - ) - middle_name = Column( - VARCHAR( - length=64, - ), - nullable=True, - ) - email = Column( - VARCHAR( - length=320, - ), - nullable=False, - unique=True, - ) - username = Column( - VARCHAR( - length=64, - ), - nullable=False, - unique=True, - ) - password = Column( - VARCHAR( - length=128, - ), - nullable=False, - ) - is_confirmed = Column( - Boolean, - default=False, - ) - is_subscribed = Column( - Boolean, - default=True, - ) - - @classmethod - async def get( - cls, - session: AsyncSession, - val: int | str | UUID, - /, - *, - field: InstrumentedAttribute = None, - ) -> "User": - if field is None: - field = User.id - cursor: "Result" = await session.execute(select(User).where(field == val)) - try: - return cursor.scalars().one() - except NoResultFound as err: - raise UserDoesNotExist() from err - - -class UserDoesNotExist(ModelDoesNotExist): - """User does not exist.""" diff --git a/app/repositories/sessions.py b/app/repositories/sessions.py deleted file mode 100644 index 5178fdb..0000000 --- a/app/repositories/sessions.py +++ /dev/null @@ -1,39 +0,0 @@ -from contextlib import asynccontextmanager - -from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.core import settings - -async_engine = create_async_engine( - str(settings.database_url), - echo=True, - future=True, -) - - -def build_async_session() -> async_sessionmaker: - return async_sessionmaker( - bind=async_engine, - class_=AsyncSession, - expire_on_commit=False, - ) - - -async def get_async_session() -> AsyncSession: - async_session: async_sessionmaker = build_async_session() - async with async_session() as session: - try: - yield session - finally: - await session.close() - - -@asynccontextmanager -async def get_async_session_ctx() -> AsyncSession: - async_session = build_async_session() - async with async_session() as session: - try: - yield session - finally: - await session.close() diff --git a/app/repositories/tests/test_models.py b/app/repositories/tests/test_models.py deleted file mode 100644 index db67e10..0000000 --- a/app/repositories/tests/test_models.py +++ /dev/null @@ -1,12 +0,0 @@ -from app.repositories.models import to_camel - - -class TestModelUtils: - def test_to_camel_should_return_snake_case_when_lower_case_text_has_one_underline(self): - assert to_camel("snake_case") == "snakeCase" - - def test_to_camel_should_return_snake_case_when_lower_case_text_has_two_underlines(self): - assert to_camel("snake_case_snake") == "snakeCaseSnake" - - def test_to_camel_should_return_snake_case_when_upper_case_text_has_one_underline(self): - assert to_camel("SNAKE_CASE") == "snakeCase" diff --git a/app/routers/characters.py b/app/routers/characters.py deleted file mode 100644 index 21b83e4..0000000 --- a/app/routers/characters.py +++ /dev/null @@ -1,98 +0,0 @@ -from typing import Annotated - -from fastapi import APIRouter, Depends, Query, status -from fastapi_pagination import Page -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.base import OrderByDirection -from app.repositories.models import ( - Character as CharacterModel, -) -from app.repositories.models import ( - CharacterGenderFilter, - CharacterSpeciesFilter, - CharacterStatusFilter, -) -from app.repositories.sessions import get_async_session -from app.services.characters import ( - Character, - process_get_character, - process_get_characters, -) - -router = APIRouter(prefix="/characters") - - -@router.get( - "/{character_id}", - status_code=status.HTTP_200_OK, - response_model=Character, - name="character", -) -async def get_character( - character_id: int, - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> Character: - """Retrieve specific character. - - This endpoint enables users to retrieve detailed information about a specific Futurama character by providing - their unique ID. The response will include essential details such as the character's name, status, - gender, species, image, and other relevant details. - - Can be used to utilize this endpoint to obtain in-depth insights - into a particular character from the Futurama universe. - """ - return await process_get_character(character_id, session) - - -@router.get( - "", - status_code=status.HTTP_200_OK, - response_model=Page[Character], - name="characters", -) -async def get_characters( # noqa: PLR0913 - gender: CharacterGenderFilter | None = None, - character_status: Annotated[ - CharacterStatusFilter | None, - Query(alias="status"), - ] = None, - species: CharacterSpeciesFilter | None = None, - order_by: Annotated[ - CharacterModel.order_by | None, - Query(alias="orderBy"), - ] = CharacterModel.order_by.ID, - direction: Annotated[ - OrderByDirection | None, - Query(alias="orderByDirection"), - ] = OrderByDirection.ASC, - query: Annotated[ - str | None, - Query( - alias="query", - description="Name search query.", - max_length=128, - ), - ] = None, - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> Page[Character]: - """Retrieve characters. - - Explore advanced filtering options in our API documentation by checking out the variety of query parameters - available. - - Also, you can include filtering in requests. - Use the "!" symbol for logical negation in filtering. For example, If you want to retrieve all aliens with - known gender and known status, your request would be - `/api/characters/?gender=!unknown&status=!unknown&species=alien`. - Check query Parameters to more info. - """ - return await process_get_characters( - session, - gender=gender, - character_status=character_status, - species=species, - order_by=order_by, - direction=direction, - query=query, - ) diff --git a/app/routers/root.py b/app/routers/root.py deleted file mode 100644 index bf43aff..0000000 --- a/app/routers/root.py +++ /dev/null @@ -1,63 +0,0 @@ -from fastapi import APIRouter, Depends, Request, status -from fastapi.openapi.docs import get_redoc_html -from fastapi.responses import FileResponse, Response -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.sessions import get_async_session -from app.services.root import process_about, process_get_root -from app.templates import gnu_translations - -router = APIRouter() - - -@router.get( - "/health", - tags=["health_check"], - include_in_schema=False, - status_code=status.HTTP_200_OK, -) -async def get_health() -> Response: - return Response(status_code=status.HTTP_200_OK) - - -@router.get( - "/", - include_in_schema=False, - status_code=status.HTTP_200_OK, - name="root", -) -async def get_root( - request: Request, - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> Response: - return await process_get_root(request, session) - - -@router.get( - "/favicon.ico", - include_in_schema=False, -) -async def favicon() -> FileResponse: - return FileResponse("favicon.ico") - - -@router.get( - "/docs", - include_in_schema=False, - name="redoc_html", -) -async def get_redoc(): - return get_redoc_html( - openapi_url="/openapi.json", - title=f'{gnu_translations.gettext("FB00003")} | {gnu_translations.gettext("FB00001")}', - redoc_favicon_url="/favicon.ico", - ) - - -@router.get( - "/about", - include_in_schema=False, - name="about", -) -async def about(request: Request): - return await process_about(request) diff --git a/app/routers/tokens.py b/app/routers/tokens.py deleted file mode 100644 index c8a15cd..0000000 --- a/app/routers/tokens.py +++ /dev/null @@ -1,66 +0,0 @@ -from typing import Annotated - -from fastapi import APIRouter, Depends, status -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.sessions import get_async_session -from app.services.auth import oauth2_refresh_scheme -from app.services.security import ( - OAuth2PasswordRequestJson, - RefreshTokenData, - UnauthorizedResponse, -) -from app.services.tokens import ( - RefreshToken, - Token, - process_refresh_token_auth_user, - process_token_auth_user, -) - -router = APIRouter(prefix="/tokens") - - -@router.post( - "/users/auth", - responses={ - status.HTTP_401_UNAUTHORIZED: { - "model": UnauthorizedResponse, - }, - }, - response_model=Token, - name="user_token_auth", -) -async def token_auth_user( - form_data: Annotated[OAuth2PasswordRequestJson, Depends()], - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> Token: - """Authenticate user. - - JSON Web Token (JWT) authentication is a popular method for securing web applications and APIs. - It enables the exchange of digitally signed tokens between a client (user) and a server, - to authenticate and authorize users. - - Use a token in a response to get secured stored data of your user. - """ - return await process_token_auth_user(session, form_data) - - -@router.post( - "/users/refresh", - responses={ - status.HTTP_401_UNAUTHORIZED: { - "model": UnauthorizedResponse, - }, - }, - response_model=RefreshToken, - name="user_token_auth_refresh", -) -async def refresh_token_auth_user( - token: Annotated[RefreshTokenData, Depends(oauth2_refresh_scheme)], -) -> RefreshToken: - """Refresh JWT. - - The Refresh JWT Token endpoint extends the lifespan of JSON Web Tokens (JWTs) without requiring user - reauthentication. This API feature ensures uninterrupted access to secured resources. - """ - return await process_refresh_token_auth_user(token) diff --git a/app/routers/users.py b/app/routers/users.py deleted file mode 100644 index 6069843..0000000 --- a/app/routers/users.py +++ /dev/null @@ -1,94 +0,0 @@ -from typing import Annotated - -from fastapi import APIRouter, Depends, status -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.sessions import get_async_session -from app.services.auth import oauth2_scheme -from app.services.security import AccessTokenData -from app.services.users import ( - User, - UserAdd, - UserUpdate, - process_activate, - process_add_user, - process_get_me, - process_update, -) - -router = APIRouter(prefix="/users") - - -@router.post( - "", - status_code=status.HTTP_201_CREATED, - response_model=User, - name="user", -) -async def add_user( - body: UserAdd, - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> User: - """Create User. - - The user add endpoint is an API function allowing the creation of new user accounts. - It receives user details via HTTP requests, validates the information, - and stores it in the system's database. - This endpoint is essential for user registration and onboarding. - - Please note that currently endpoint is not protected. - However, if there are a lot of spam requests, the endpoint will be blocked or limited. - """ - return await process_add_user(body, session) - - -@router.get( - "/me", - response_model=User, - name="user_me", -) -async def get_me( - token: Annotated[AccessTokenData, Depends(oauth2_scheme)], - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> User: - """Get user details. - - Retrieve authenticated user profile information, including username, email, and account details. - Personalize user experiences within the application using the JSON response containing user-specific data. - """ - return await process_get_me(token, session) - - -@router.get( - "/activate", - response_model=User, - name="activate_user", -) -async def activate( - sig: str, - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> User: - """Get user details. - - Retrieve authenticated user profile information, including username, email, and account details. - Personalize user experiences within the application using the JSON response containing user-specific data. - """ - return await process_activate(sig, session) - - -@router.put( - "/", - response_model=User, - name="update_user", -) -async def update( - user: UserUpdate, - token: Annotated[AccessTokenData, Depends(oauth2_scheme)], - session: AsyncSession = Depends(get_async_session), # noqa: B008 -) -> User: - """Update user details. - - This endpoint is crucial for users to manage and maintain accurate profile information, - often including authentication and authorization checks for security. - """ - return await process_update(token, user, session) diff --git a/app/services/auth.py b/app/services/auth.py deleted file mode 100644 index 701c721..0000000 --- a/app/services/auth.py +++ /dev/null @@ -1,4 +0,0 @@ -from app.services.security import OAuth2JWTBearer, OAuth2JWTBearerRefresh - -oauth2_scheme = OAuth2JWTBearer(tokenUrl="token") -oauth2_refresh_scheme = OAuth2JWTBearerRefresh(tokenUrl="token") diff --git a/app/services/base.py b/app/services/base.py deleted file mode 100644 index 1bc8435..0000000 --- a/app/services/base.py +++ /dev/null @@ -1,13 +0,0 @@ -from pydantic import BaseModel, Field - - -class EpisodeBase(BaseModel): - id: int # noqa: A003 - name: str - broadcast_number: int = Field(alias="number") - production_code: str = Field( - alias="productionCode", - examples=[ - "1ACV01", - ], - ) diff --git a/app/services/callbacks.py b/app/services/callbacks.py deleted file mode 100644 index f93d7a6..0000000 --- a/app/services/callbacks.py +++ /dev/null @@ -1,248 +0,0 @@ -import json -from asyncio import sleep -from random import randint - -from fastapi import BackgroundTasks -from httpx import AsyncClient, Response -from pydantic import BaseModel, ConfigDict, Field, HttpUrl -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.models import ( - Character as CharacterModel, -) -from app.repositories.models import ( - CharacterDoesNotExist as CharacterDoesNotExistException, -) -from app.repositories.models import ( - Episode as EpisodeModel, -) -from app.repositories.models import ( - EpisodeDoesNotExist as EpisodeDoesNotExistException, -) -from app.repositories.models import ( - Season as SeasonModel, -) -from app.repositories.models import ( - SeasonDoesNotExist as SeasonDoesNotExistException, -) -from app.services.characters import Character -from app.services.episodes import Episode -from app.services.seasons import Season - -MIN_DELAY: int = 5 -MAX_DELAY: int = 10 - - -class CallbackRequest(BaseModel): - callback_url: HttpUrl = Field( - alias="callbackUrl", - ) - - model_config = ConfigDict(populate_by_name=True) - - -class CallbackResponse(BaseModel): - delay: int = Field( - ge=MIN_DELAY, - le=MAX_DELAY, - description="Delay after which the callback will be sent.", - ) - - -class _ObjectDoesNotExist(BaseModel): - id: int = Field( # noqa: A003 - description="Requested object ID.", - ) - detail: str = Field( - examples=[ - "Not found", - ], - ) - - -class CharacterDoesNotExist(_ObjectDoesNotExist): - """Character does not exist response.""" - - -class _ObjectType(BaseModel): - type: str = Field( # noqa: A003 - description="Requested Object type.", - ) - - -class CharacterCallbackResponse(_ObjectType): - item: Character | CharacterDoesNotExist - - -async def _get_character_or_not_found_object( - id_: int, - session: AsyncSession, - /, -) -> Character | CharacterDoesNotExist: - character: Character | CharacterDoesNotExist - try: - character = await CharacterModel.get(session, id_) - except CharacterDoesNotExistException: - character = CharacterDoesNotExist( - id=id_, - detail="Not found", - ) - return character - - -async def _send_callback(url: HttpUrl, body: BaseModel, /): - async with AsyncClient(http2=True) as client: - callback_response: Response = await client.post( - f"{url}", - json=json.loads(body.model_dump_json(by_alias=True)), - ) - callback_response.raise_for_status() - - -async def callback_characters_background_task( - character_id: int, - callback_request: CallbackRequest, - response: CallbackResponse, - session: AsyncSession, - /, -): - await sleep(response.delay) - character: Character | CharacterDoesNotExist = await _get_character_or_not_found_object(character_id, session) - body = CharacterCallbackResponse( - type=Character.__name__, - item=character, - ) - await _send_callback(callback_request.callback_url, body) - - -async def process_characters_callback( - character_id, - callback_request: CallbackRequest, - session: AsyncSession, - background_tasks: BackgroundTasks, - /, -) -> CallbackResponse: - response: CallbackResponse = CallbackResponse(delay=randint(MIN_DELAY, MAX_DELAY)) # noqa: S311 - background_tasks.add_task( - callback_characters_background_task, - character_id, - callback_request, - response, - session, - ) - return response - - -class EpisodeDoesNotExist(_ObjectDoesNotExist): - """Episode does not exist response.""" - - -async def _get_episode_or_not_found_object( - id_: int, - session: AsyncSession, - /, -) -> Episode | EpisodeDoesNotExist: - episode: Episode | EpisodeDoesNotExist - try: - episode = await EpisodeModel.get(session, id_) - except EpisodeDoesNotExistException: - episode = EpisodeDoesNotExist( - id=id_, - detail="Not found", - ) - return episode - - -class EpisodeCallbackResponse(_ObjectType): - item: Episode | EpisodeDoesNotExist - - -async def callback_episodes_background_task( - episode_id: int, - callback_request: CallbackRequest, - response: CallbackResponse, - session: AsyncSession, - /, -): - await sleep(response.delay) - episode: Episode | EpisodeDoesNotExist = await _get_episode_or_not_found_object(episode_id, session) - body = EpisodeCallbackResponse( - type=Episode.__name__, - item=episode, - ) - await _send_callback(callback_request.callback_url, body) - - -async def process_episodes_callback( - episode_id, - episode_request, - session, - background_tasks, -) -> CallbackResponse: - response: CallbackResponse = CallbackResponse(delay=randint(MIN_DELAY, MAX_DELAY)) # noqa: S311 - background_tasks.add_task( - callback_episodes_background_task, - episode_id, - episode_request, - response, - session, - ) - return response - - -# Season related part. -class SeasonDoesNotExist(_ObjectDoesNotExist): - """Season does not exist response.""" - - -async def _get_season_or_not_found_object( - id_: int, - session: AsyncSession, - /, -) -> Season | SeasonDoesNotExist: - season: Season | SeasonDoesNotExist - try: - season = await SeasonModel.get(session, id_) - except SeasonDoesNotExistException: - season = SeasonDoesNotExist( - id=id_, - detail="Not found", - ) - return season - - -class SeasonCallbackResponse(_ObjectType): - item: Season | SeasonDoesNotExist - - -async def callback_seasons_background_task( - season_id: int, - callback_request: CallbackRequest, - response: CallbackResponse, - session: AsyncSession, - /, -): - await sleep(response.delay) - season: Season | SeasonDoesNotExist = await _get_season_or_not_found_object(season_id, session) - body = SeasonCallbackResponse( - type=Season.__name__, - item=season, - ) - await _send_callback(callback_request.callback_url, body) - - -async def process_seasons_callback( - season_id, - season_request, - session, - background_tasks, -) -> CallbackResponse: - response: CallbackResponse = CallbackResponse(delay=randint(MIN_DELAY, MAX_DELAY)) # noqa: S311 - background_tasks.add_task( - callback_seasons_background_task, - season_id, - season_request, - response, - session, - ) - return response diff --git a/app/services/characters.py b/app/services/characters.py deleted file mode 100644 index 1f109ec..0000000 --- a/app/services/characters.py +++ /dev/null @@ -1,109 +0,0 @@ -from datetime import datetime -from typing import Any - -from fastapi import HTTPException, Request, status -from fastapi_pagination import Page -from fastapi_pagination.ext.sqlalchemy import paginate -from fastapi_storages import StorageImage -from pydantic import BaseModel, ConfigDict, Field, HttpUrl, field_validator -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.core import settings -from app.repositories.base import OrderByDirection -from app.repositories.models import Character as CharacterModel -from app.repositories.models import ( - CharacterDoesNotExist, - CharacterGender, - CharacterGenderFilter, - CharacterSpecies, - CharacterSpeciesFilter, - CharacterStatus, - CharacterStatusFilter, -) - - -def build_url(*, path: str | None = None): - path = f"{settings.static}/{path}" if path else f"{settings.static}" - return HttpUrl.build( - scheme="https", - host=settings.trusted_host, - path=path, - ) - - -class Character(BaseModel): - id: int # noqa: A003 - name: str - gender: CharacterGender - status: CharacterStatus - species: CharacterSpecies - created_at: datetime = Field(alias="createdAt") - image: HttpUrl | None = None - - @field_validator("image", mode="before") - @classmethod - def make_url(cls, value: StorageImage | None) -> HttpUrl | None: - """Makes URL from DB path. - - FastAPI does NOT work properly with proxy, so for now protocol will be hardcoded. - TODO: propagate forwarded headers, rely on trusted host. - - Args: - value (fastapi_storages.StorageImage): Image field. - - Returns: - ``pydantic.HttpUrl`` if Character has an image returns absolute URL to image and ``None`` otherwise. - """ - if value is None: - return None - return build_url(path=value._name) - - model_config = ConfigDict(from_attributes=True, populate_by_name=True) - - def __init__(self, request: Request | None = None, **data: Any): - self.request = request - super().__init__(**data) - - -async def get_character( - character_id: int, - session: AsyncSession, - /, -) -> Character: - try: - character: CharacterModel = await CharacterModel.get(session, character_id) - except CharacterDoesNotExist: - raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from None - return Character.model_validate(character) - - -async def process_get_character( - character_id: int, - session: AsyncSession, - /, -) -> Character: - return await get_character(character_id, session) - - -async def process_get_characters( # noqa: PLR0913 - session: AsyncSession, - /, - *, - gender: CharacterGenderFilter | None = None, - character_status: CharacterStatusFilter | None = None, - species: CharacterSpeciesFilter | None = None, - order_by: CharacterModel.order_by | None = None, - direction: OrderByDirection | None = None, - query: str | None = None, -) -> Page[Character]: - return await paginate( - session, - CharacterModel.get_filter_statement( - order_by=order_by, - order_by_direction=direction, - gender=gender, - character_statusx=character_status, - species=species, - query=query, - ), - ) diff --git a/app/services/emails.py b/app/services/emails.py deleted file mode 100644 index 2617022..0000000 --- a/app/services/emails.py +++ /dev/null @@ -1,49 +0,0 @@ -from fastapi_mail import ConnectionConfig, FastMail, MessageSchema, MessageType -from pydantic import BaseModel, EmailStr, HttpUrl - -from app.core import settings - -conf = ConnectionConfig( - MAIL_USERNAME=settings.email.host_user, - MAIL_PASSWORD=settings.email.api_key, - MAIL_FROM=settings.email.default_from, - MAIL_PORT=settings.email.port, - MAIL_SERVER=settings.email.host, - MAIL_FROM_NAME=settings.email.from_name, - MAIL_STARTTLS=settings.email.start_tls, - MAIL_SSL_TLS=settings.email.ssl_tls, - USE_CREDENTIALS=settings.email.use_credentials, - VALIDATE_CERTS=settings.email.validate_certs, - TEMPLATE_FOLDER=settings.project_root / "templates", -) - - -fast_mail = FastMail(conf) - - -class _User(BaseModel): - name: str - surname: str - - -class ConfirmationBody(BaseModel): - url: HttpUrl - user: _User - - -async def send_confirmation( - emails: list[EmailStr], - subject: str, - template_body: ConfirmationBody, - /, -): - message = MessageSchema( - subject=subject, - recipients=emails, - template_body=template_body.model_dump(), - subtype=MessageType.html, - ) - await fast_mail.send_message( - message, - template_name="emails/confirmation.html", - ) diff --git a/app/services/episodes.py b/app/services/episodes.py deleted file mode 100644 index 292d0a0..0000000 --- a/app/services/episodes.py +++ /dev/null @@ -1,70 +0,0 @@ -from datetime import date, datetime - -from fastapi import HTTPException, status -from fastapi_pagination import Page -from fastapi_pagination.ext.sqlalchemy import paginate -from pydantic import BaseModel, ConfigDict, Field, computed_field -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.models import ( - Episode as EpisodeModel, -) -from app.repositories.models import ( - EpisodeDoesNotExist, -) -from app.services.base import EpisodeBase - - -class SeasonEpisode(BaseModel): - id: int # noqa: A003 - - model_config = ConfigDict(from_attributes=True, populate_by_name=True) - - -class Episode(EpisodeBase): - air_date: date | None = Field(alias="airDate") - duration: int | None - created_at: datetime = Field(alias="createdAt") - season: SeasonEpisode - - model_config = ConfigDict(from_attributes=True, populate_by_name=True) - - @computed_field( # type: ignore[misc] - alias="broadcastCode", - examples=[ - "S01E01", - ], - return_type=str, - ) - @property - def broadcast_code(self) -> str: - return f"S{self.season.id:02d}E{self.broadcast_number:02d}" - - -async def get_episode( - episode_id: int, - session: AsyncSession, - /, -) -> Episode: - try: - episode: EpisodeModel = await EpisodeModel.get(session, episode_id) - except EpisodeDoesNotExist: - raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from None - return Episode.model_validate(episode) - - -async def process_get_episode( - episode_id: int, - session: AsyncSession, - /, -) -> Episode: - return await get_episode(episode_id, session) - - -async def process_get_episodes(session: AsyncSession, /) -> Page[Episode]: - return await paginate( - session, - EpisodeModel.get_filter_statement( - select_in_load=EpisodeModel.season, - ), - ) diff --git a/app/services/hashers.py b/app/services/hashers.py deleted file mode 100644 index 1b819d7..0000000 --- a/app/services/hashers.py +++ /dev/null @@ -1,142 +0,0 @@ -import base64 -import hashlib -import math -import secrets -from collections.abc import Callable - -from pydantic import BaseModel - -RANDOM_STRING_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" - - -class HasherBaseException(Exception): - """Hasher Base Exception.""" - - -def pbkdf2( - password: bytes, - salt: bytes, - iterations: int, - /, - *, - dk_len: int | None = 0, - digest: Callable | None = None, -): - if digest is None: - digest = hashlib.sha256 - dk_len = dk_len or None - return hashlib.pbkdf2_hmac(digest().name, password, salt, iterations, dk_len) - - -def compare( - val1: bytes, - val2: bytes, - /, -) -> bool: - return secrets.compare_digest(val1, val2) - - -def get_random_string( - length: int, - /, - *, - allowed_chars=RANDOM_STRING_CHARS, -): - return "".join(secrets.choice(allowed_chars) for i in range(length)) - - -class DecodedPassword(BaseModel): - algorithm: str - hash: str # noqa: A003 - iterations: int - salt: str - - -class PasswordHasherBase: - algorithm: str | None = None - library = None - salt_entropy = 128 - separator = "." - - def salt(self) -> str: - count = math.ceil(self.salt_entropy / math.log2(len(RANDOM_STRING_CHARS))) - return get_random_string(count, allowed_chars=RANDOM_STRING_CHARS) - - def verify(self, password, encoded, /) -> bool: - raise NotImplementedError() - - def _check_encode_args(self, password: str, salt: str, /): - if not password: - raise ValueError() from None - if not salt or self.separator in salt: - raise ValueError() from None - - def encode( - self, - password: str, - /, - *, - salt: str | None = None, - iterations: int | None = None, - ) -> str: - raise NotImplementedError() - - def decode(self, encoded, /) -> DecodedPassword: - raise NotImplementedError() - - -class HashMismatch(HasherBaseException): - """Hash Mismatch""" - - -class PasswordHasherPBKDF2(PasswordHasherBase): - algorithm: str = "pbkdf2_sha256" - iterations: int = 600000 - digest = hashlib.sha256 - - def encode( - self, - password: str, - /, - *, - salt: str | None = None, - iterations: int | None = None, - ) -> str: - if salt is None: - salt = self.salt() - self._check_encode_args(password, salt) - - if iterations is None: - iterations = self.iterations - - hash_ = pbkdf2( - password.encode(), - salt.encode(), - iterations, - digest=getattr(self, "digest"), # noqa: B009 Dirty hack, all questions to mypy. - ) - hash_ = base64.b64encode(hash_).decode("ascii").strip() - return f"{self.algorithm}{self.separator}{iterations}{self.separator}{salt}{self.separator}{hash_}" - - def decode(self, encoded, /) -> DecodedPassword: - algorithm, iterations, salt, hash_ = encoded.split(self.separator, 3) - if algorithm != self.algorithm: - raise HashMismatch() from None - return DecodedPassword( - algorithm=algorithm, - hash=hash_, - iterations=iterations, - salt=salt, - ) - - def verify(self, password: str, encoded: str, /) -> bool: - decoded_password: DecodedPassword = self.decode(encoded) - encoded_: str = self.encode( - password, - salt=decoded_password.salt, - iterations=decoded_password.iterations, - ) - return compare(encoded.encode(), encoded_.encode()) - - -hasher = PasswordHasherPBKDF2() diff --git a/app/services/notifications.py b/app/services/notifications.py deleted file mode 100644 index 293f1e1..0000000 --- a/app/services/notifications.py +++ /dev/null @@ -1,60 +0,0 @@ -from asyncio import sleep -from datetime import datetime -from random import randint - -from fastapi import Request -from pydantic import BaseModel, Field -from sqlalchemy.ext.asyncio.session import AsyncSession -from sse_starlette import EventSourceResponse, ServerSentEvent - -from app.services.characters import Character, get_character -from app.templates import gnu_translations - -MIN_COORDINATE = 0 -MAX_COORDINATE = 2**6 - - -class CharacterMove(BaseModel): - name: str = Field(gnu_translations.gettext("FB00007")) - x: int = Field( - description=gnu_translations.gettext("FB00008"), - ge=MIN_COORDINATE, - le=MAX_COORDINATE, - ) - y: int = Field( - description=gnu_translations.gettext("FB00009"), - ge=MIN_COORDINATE, - le=MAX_COORDINATE, - ) - time: datetime = datetime.now() - - -async def generate_character_move( - request: Request, - character: Character, - /, -): - # I don't like infinite loops, please check if range can be used. - while True: - if await request.is_disconnected(): - # Can be removed. Do not trust lib, force connection close. - break - - yield ServerSentEvent( - data=CharacterMove( - name=character.name, - x=randint(MIN_COORDINATE, MAX_COORDINATE), # noqa: S311 - y=randint(MIN_COORDINATE, MAX_COORDINATE), # noqa: S311 - ).model_dump() - ) - await sleep(randint(1, 3)) # noqa: S311 - - -async def process_character_sse( - character_id: int, - request: Request, - session: AsyncSession, - /, -) -> EventSourceResponse: - character: Character = await get_character(character_id, session) - return EventSourceResponse(generate_character_move(request, character)) diff --git a/app/services/root.py b/app/services/root.py deleted file mode 100644 index f54a1f7..0000000 --- a/app/services/root.py +++ /dev/null @@ -1,34 +0,0 @@ -from fastapi import Request -from fastapi.responses import Response -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.models import Character as CharacterModel -from app.repositories.models import User as UserModel -from app.templates import templates - - -async def process_get_root( - request: Request, - session: AsyncSession, - /, -) -> Response: - characters = await CharacterModel.filter(session, limit=6) - user_count = await UserModel.count(session) - return templates.TemplateResponse( - request, - "index.html", - { - "characters": characters, - "user_count": user_count, - }, - ) - - -async def process_about( - request: Request, - /, -) -> Response: - return templates.TemplateResponse( - request, - "about.html", - ) diff --git a/app/services/seasons.py b/app/services/seasons.py deleted file mode 100644 index d416225..0000000 --- a/app/services/seasons.py +++ /dev/null @@ -1,45 +0,0 @@ -from fastapi import HTTPException, status -from fastapi_pagination import Page -from fastapi_pagination.ext.sqlalchemy import paginate -from pydantic import BaseModel, ConfigDict -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.models import ( - Season as SeasonModel, -) -from app.repositories.models import ( - SeasonDoesNotExist, -) -from app.services.base import EpisodeBase - - -class EpisodeSeason(EpisodeBase): - model_config = ConfigDict(from_attributes=True, populate_by_name=True) - - -class Season(BaseModel): - id: int # noqa: A003 - episodes: list[EpisodeSeason] - - model_config = ConfigDict(from_attributes=True, populate_by_name=True) - - -async def process_get_season( - season_id: int, - session: AsyncSession, - /, -) -> Season: - try: - season: SeasonModel = await SeasonModel.get(session, season_id) - except SeasonDoesNotExist: - raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from None - return Season.model_validate(season) - - -async def process_get_seasons(session: AsyncSession, /) -> Page[Season]: - return await paginate( - session, - SeasonModel.get_filter_statement( - select_in_load=SeasonModel.episodes, - ), - ) diff --git a/app/services/security.py b/app/services/security.py deleted file mode 100644 index 7d0502a..0000000 --- a/app/services/security.py +++ /dev/null @@ -1,162 +0,0 @@ -from copy import deepcopy -from datetime import UTC, datetime, timedelta -from enum import Enum -from typing import Annotated -from uuid import UUID - -from fastapi import HTTPException, Request, status -from fastapi.param_functions import Body -from fastapi.security import OAuth2PasswordBearer -from jose import exceptions, jwt -from pydantic import BaseModel, Field, ValidationError -from typing_extensions import Doc - -from app.core import settings - -DEFAULT_JWT_EXPIRATION_TIME: int = 15 * 60 -REFRESH_JWT_EXPIRATION_TIME: int = 60 * 60 * 24 * 21 - - -class TokenType(Enum): - REFRESH = "REFRESH" - ACCESS = "ACCESS" - - -class TokenBase(BaseModel): - type: TokenType # noqa: A003 - - -class AccessTokenData(TokenBase): - uuid: UUID - type: TokenType = TokenType.ACCESS # noqa: A003 - - -class RefreshTokenData(TokenBase): - nonce: str = Field(min_length=32, max_length=32) - uuid: UUID - type: TokenType = TokenType.REFRESH # noqa: A003 - - -def generate_jwt_signature( - payload: dict, - /, - *, - expiration_time: int = DEFAULT_JWT_EXPIRATION_TIME, - algorithm: str = "HS256", -) -> str: - cleaned_payload: dict = deepcopy(payload) - - cleaned_payload.update( - { - "exp": datetime.now(UTC) + timedelta(seconds=expiration_time), - } - ) - - return jwt.encode(cleaned_payload, settings.secret_key, algorithm=algorithm) - - -class SignatureErrorBase(Exception): - """Base JWT Error""" - - -class FatalSignatureError(SignatureErrorBase): - """Fatal Signature Error""" - - -class SignatureExpiredError(SignatureErrorBase): - """Signature Expired Error""" - - -def decode_jwt_signature( - token: str, - /, - *, - algorithms: list[str] | None = None, -) -> dict: - if algorithms is None: - algorithms = ["HS256"] - - try: - return jwt.decode(token, settings.secret_key, algorithms=algorithms) - except (exceptions.JWSError, exceptions.JWSSignatureError, exceptions.JWTError): - raise FatalSignatureError() from None - except exceptions.ExpiredSignatureError: - raise SignatureExpiredError() from None - - -class UnauthorizedResponse(BaseModel): - detail: str - - -class OAuth2PasswordRequestJson: - def __init__( - self, - *, - username: Annotated[ - str, - Body(), - Doc( - """ - `username` string. The OAuth2 spec requires the exact field name - `username`. - """ - ), - ], - password: Annotated[ - str, - Body(), - Doc( - """ - `password` string. The OAuth2 spec requires the exact field name - `password". - """ - ), - ], - ): - self.username = username - self.password = password - - -class OAuth2JWTBearerBase(OAuth2PasswordBearer): - _model: type[BaseModel] | None = None - - def extra_checks(self, model): - raise NotImplementedError() from None - - async def __call__(self, request: Request) -> str | BaseModel | None: - if self._model is None: - raise ValueError("model is not defined") - param = await super().__call__(request) - try: - decoded_token: dict = decode_jwt_signature(param) - except SignatureExpiredError: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail="Token expired", - ) from None - except FatalSignatureError: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - ) from None - try: - model = self._model(**decoded_token) - except ValidationError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - self.extra_checks(model) - return model - - -class OAuth2JWTBearer(OAuth2JWTBearerBase): - _model: type[BaseModel] | None = AccessTokenData - - def extra_checks(self, model): - if model.type != TokenType.ACCESS: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - - -class OAuth2JWTBearerRefresh(OAuth2JWTBearerBase): - _model: type[BaseModel] | None = RefreshTokenData - - def extra_checks(self, model): - if model.type != TokenType.REFRESH: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None diff --git a/app/services/tokens.py b/app/services/tokens.py deleted file mode 100644 index ff64e01..0000000 --- a/app/services/tokens.py +++ /dev/null @@ -1,75 +0,0 @@ -from json import loads -from uuid import uuid4 - -from fastapi import HTTPException, status -from pydantic import BaseModel, ConfigDict, Field -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.repositories.models import User as UserModel -from app.repositories.models import UserDoesNotExist -from app.services.hashers import hasher -from app.services.security import ( - REFRESH_JWT_EXPIRATION_TIME, - AccessTokenData, - OAuth2PasswordRequestJson, - RefreshTokenData, - generate_jwt_signature, -) - - -class Token(BaseModel): - access_token: str = Field(alias="accessToken") - refresh_token: str = Field(alias="refreshToken") - - model_config = ConfigDict( - from_attributes=True, - populate_by_name=True, - ) - - -async def process_token_auth_user( - session: AsyncSession, - data: OAuth2PasswordRequestJson, - /, -) -> Token: - try: - user: UserModel = await UserModel.get( - session, - data.username, - field=UserModel.username, - ) - except UserDoesNotExist: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - if not hasher.verify(data.password, user.password): - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - - return Token( - access_token=generate_jwt_signature( - loads( - AccessTokenData(uuid=user.uuid).model_dump_json(by_alias=True), - ), - ), - refresh_token=generate_jwt_signature( - loads( - RefreshTokenData( - uuid=user.uuid, - nonce=uuid4().hex, - ).model_dump_json(by_alias=True) - ), - expiration_time=REFRESH_JWT_EXPIRATION_TIME, - ), - ) - - -class RefreshToken(BaseModel): - access_token: str - - -async def process_refresh_token_auth_user(data: RefreshTokenData) -> RefreshToken: - return RefreshToken( - access_token=generate_jwt_signature( - loads( - AccessTokenData(**data.model_dump()).model_dump_json(by_alias=True), - ), - ) - ) diff --git a/app/services/users.py b/app/services/users.py deleted file mode 100644 index d90c2d7..0000000 --- a/app/services/users.py +++ /dev/null @@ -1,227 +0,0 @@ -from datetime import datetime -from gettext import gettext as _ -from json import dumps, loads -from urllib.parse import urlencode -from uuid import UUID - -from fastapi import HTTPException, status -from pydantic import BaseModel, ConfigDict, EmailStr, Field, HttpUrl, field_validator -from sqlalchemy.ext.asyncio.session import AsyncSession - -from app.core import feature_flags, settings -from app.repositories.models import ( - User as UserModel, -) -from app.repositories.models import ( - UserAlreadyExists, - UserDoesNotExist, -) -from app.services.emails import ConfirmationBody, send_confirmation -from app.services.hashers import hasher -from app.services.security import ( - AccessTokenData, - FatalSignatureError, - SignatureExpiredError, - decode_jwt_signature, - generate_jwt_signature, -) - - -class UserBase(BaseModel): - name: str = Field( - min_length=1, - max_length=64, - ) - surname: str = Field( - min_length=1, - max_length=64, - ) - middle_name: str | None = Field( - default=None, - alias="middleName", - min_length=1, - max_length=64, - ) - email: EmailStr - username: str = Field( - min_length=5, - max_length=64, - ) - password: str = Field( - min_length=8, - max_length=128, - ) - is_subscribed: bool = Field( - default=True, - alias="isSubscribed", - ) - - model_config = ConfigDict( - from_attributes=True, - populate_by_name=True, - ) - - -class PasswordHashMixin: - @field_validator("password", mode="before") - @classmethod - def hash_password(cls, value: str) -> str: - return hasher.encode(value) - - -class UserAdd(UserBase, PasswordHashMixin): - ... - - -class User(UserBase): - id: int # noqa: A003 - is_confirmed: bool = Field(alias="isConfirmed") - created_at: datetime = Field(alias="createdAt") - - -EXPIRATION_72_HOURS = 60 * 60 * 72 - - -def _get_signature(uuid: UUID): - return generate_jwt_signature( - loads( - dumps( - { - "uuid": uuid, - }, - default=str, - ) - ), - expiration_time=EXPIRATION_72_HOURS, - ) - - -def get_confirmation_body(user: UserModel, /) -> ConfirmationBody: - url = HttpUrl.build( - scheme="https", - host=settings.trusted_host, - path="api/users/activate", - query=urlencode( - { - "sig": _get_signature(user.uuid), - } - ), - ) - return ConfirmationBody( - url=url, - user={ - "name": user.name, - "surname": user.surname, - }, - ) - - -async def process_add_user(body: UserAdd, session: AsyncSession, /) -> User: - try: - user: UserModel = await UserModel.add(session, body) - except UserAlreadyExists: - raise HTTPException( - detail="User with username or email already exists", - status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, - ) from None - if feature_flags.activate_users: - await send_confirmation( - [user.email], - _("FuturamaAPI - Account Activation"), - get_confirmation_body(user), - ) - return User.model_validate(user) - - -async def process_get_me(token: AccessTokenData, session: AsyncSession, /) -> User: - try: - user: UserModel = await UserModel.get(session, token.uuid, field=UserModel.uuid) - except UserDoesNotExist: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - return User.model_validate(user) - - -def _get_uuid(signature: str, /) -> UUID: - try: - decoded_signature = decode_jwt_signature(signature) - except SignatureExpiredError: - raise HTTPException( - detail="Token has expired", - status_code=status.HTTP_401_UNAUTHORIZED, - ) from None - except FatalSignatureError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - - try: - uuid = decoded_signature["uuid"] - except KeyError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - - return UUID(uuid) - - -async def process_activate(signature: str, session: AsyncSession, /) -> User: - uuid = _get_uuid(signature) - try: - user: UserModel = await UserModel.get(session, uuid, field=UserModel.uuid) - except UserDoesNotExist: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - if user.is_confirmed: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - - user.is_confirmed = True - await session.commit() - - return User.model_validate(user) - - -class UserUpdate(BaseModel, PasswordHashMixin): - name: str | None = Field( - min_length=1, - max_length=64, - default=None, - ) - surname: str | None = Field( - min_length=1, - max_length=64, - default=None, - ) - middle_name: str | None = Field( - default=None, - alias="middleName", - min_length=1, - max_length=64, - ) - password: str | None = Field( - default=None, - min_length=8, - max_length=128, - ) - is_subscribed: bool | None = Field( - default=None, - alias="isSubscribed", - ) - - model_config = ConfigDict( - from_attributes=True, - populate_by_name=True, - ) - - -async def process_update( - token: AccessTokenData, - request_user: UserUpdate, - session: AsyncSession, - /, -) -> User: - request_user_dict: dict = request_user.model_dump(exclude_none=True) - if not request_user_dict: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - try: - user: UserModel = await UserModel.get(session, token.uuid, field=UserModel.uuid) - except UserDoesNotExist: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) from None - for field, value in request_user_dict.items(): - setattr(user, field, value) - await session.commit() - return user diff --git a/app/templates.py b/app/templates.py deleted file mode 100644 index a5374d8..0000000 --- a/app/templates.py +++ /dev/null @@ -1,30 +0,0 @@ -import gettext -from typing import TYPE_CHECKING - -from fastapi.templating import Jinja2Templates -from jinja2 import pass_context - -if TYPE_CHECKING: - from fastapi import Request - from starlette.datastructures import URL - -try: - gnu_translations = gettext.translation( - domain="messages", - localedir="locale", - languages=["en_US"], - ) -except FileNotFoundError: - raise RuntimeError("Please compile messages first") from None - - -@pass_context -def relative_path_for(context: dict, name: str, /, **path_params) -> str: - request: "Request" = context["request"] - http_url: "URL" = request.url_for(name, **path_params) - return http_url.path - - -templates = Jinja2Templates(directory="templates", extensions=["jinja2.ext.i18n"]) -templates.env.globals["relative_path_for"] = relative_path_for -templates.env.install_gettext_translations(gnu_translations) diff --git a/babel.cfg b/babel.cfg deleted file mode 100644 index d75463f..0000000 --- a/babel.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[ignore: **/static/**] -[ignore: **/theme/**] - -[python: **.py] - -[jinja2: **/templates/**.html] -encoding = utf-8 -silent = false diff --git a/configs/__init__.py b/configs/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/configs/plugins/__init__.py b/configs/plugins/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/configs/plugins/env_vars.py b/configs/plugins/env_vars.py deleted file mode 100644 index f369e86..0000000 --- a/configs/plugins/env_vars.py +++ /dev/null @@ -1,16 +0,0 @@ -import os - -import pytest - - -@pytest.hookimpl(tryfirst=True) -def pytest_load_initial_conftests(args, early_config, parser): - with open(".env.template") as file: - data = file.read() - - for line in data.splitlines(): - if not line.strip() or line.startswith("#"): - continue - - key, value = line.split()[0].split("=", 1) - os.environ[key] = value diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index e6619e4..016ac74 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -5,10 +5,7 @@ then PORT=8080 fi -# locale -make messages-compile - # Migrations -alembic upgrade head +make migrate -hypercorn -b :$PORT -k uvloop app.main:app +poetry run python -m futuramaapi -b :$PORT diff --git a/futuramaapi/__init__.py b/futuramaapi/__init__.py new file mode 100644 index 0000000..f955241 --- /dev/null +++ b/futuramaapi/__init__.py @@ -0,0 +1,7 @@ +from .apps import app +from .apps.hypercorn import hypercorn_config + +__all__ = [ + "app", + "hypercorn_config", +] diff --git a/futuramaapi/__main__.py b/futuramaapi/__main__.py new file mode 100644 index 0000000..23e27bf --- /dev/null +++ b/futuramaapi/__main__.py @@ -0,0 +1,11 @@ +import sys + +from .apps import run + + +def _run() -> int: + return run(sys.argv[1:]) + + +if __name__ == "__main__": + sys.exit(_run()) diff --git a/futuramaapi/apps/__init__.py b/futuramaapi/apps/__init__.py new file mode 100644 index 0000000..85aabcf --- /dev/null +++ b/futuramaapi/apps/__init__.py @@ -0,0 +1,11 @@ +from fastapi import FastAPI + +from .app import futurama_api +from .hypercorn import run + +app: FastAPI = futurama_api.app + +__all__ = [ + "app", + "run", +] diff --git a/futuramaapi/apps/app.py b/futuramaapi/apps/app.py new file mode 100644 index 0000000..4644904 --- /dev/null +++ b/futuramaapi/apps/app.py @@ -0,0 +1,85 @@ +import mimetypes +from collections.abc import Generator +from contextlib import asynccontextmanager +from typing import Any + +from fastapi import FastAPI +from fastapi.routing import APIRouter +from fastapi.staticfiles import StaticFiles +from fastapi_pagination import add_pagination + +from futuramaapi.core import feature_flags, settings +from futuramaapi.middlewares.cors import CORSMiddleware +from futuramaapi.middlewares.secure import HTTPSRedirectMiddleware +from futuramaapi.repositories.session import session_manager + +mimetypes.add_type("image/webp", ".webp") + + +class FuturamaAPI: + def __init__( + self, + routers: list[APIRouter], + *, + lifespan: Generator[Any, Any, None] | Any | None, + ) -> None: + self.routers: list[APIRouter] = routers + self.app: FastAPI = FastAPI( + docs_url=None, + redoc_url=None, + lifespan=lifespan, + ) + + self.build() + + def _add_middlewares(self) -> None: + if feature_flags.enable_https_redirect: + self.app.add_middleware(HTTPSRedirectMiddleware) + + self.app.add_middleware( + CORSMiddleware, + allow_origins=settings.allow_origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], + ) + + def _add_routers(self) -> None: + for router in self.routers: + self.app.include_router(router) + + def _add_static(self) -> None: + self.app.mount( + "/static", + StaticFiles(directory="static"), + name="static", + ) + + def build(self) -> None: + self._add_middlewares() + self._add_routers() + self._add_static() + + add_pagination(self.app) + + +@asynccontextmanager +async def _lifespan(_: FastAPI): + yield + if session_manager.engine is not None: + await session_manager.close() + + +def _get_routers() -> list[APIRouter]: + from futuramaapi.routers import api_router, root_router + + return [ + api_router, + root_router, + ] + + +futurama_api: FuturamaAPI = FuturamaAPI( + _get_routers(), + lifespan=_lifespan, +) diff --git a/futuramaapi/apps/hypercorn.py b/futuramaapi/apps/hypercorn.py new file mode 100644 index 0000000..7b27a04 --- /dev/null +++ b/futuramaapi/apps/hypercorn.py @@ -0,0 +1,27 @@ +import sys +from typing import TYPE_CHECKING + +from hypercorn.__main__ import main + +if TYPE_CHECKING: + from collections.abc import Sequence + + +class Config: + worker_class = "uvloop" + + +hypercorn_config: Config = Config() + + +def run( + args: list[str] | None, +): + argv: Sequence[str] = args if args is not None else sys.argv[1:] + main( + [ + "futuramaapi:app", + "--config=python:futuramaapi.hypercorn_config", + *argv, + ] + ) diff --git a/futuramaapi/core/__init__.py b/futuramaapi/core/__init__.py new file mode 100644 index 0000000..f769a85 --- /dev/null +++ b/futuramaapi/core/__init__.py @@ -0,0 +1,6 @@ +from futuramaapi.core.configs import feature_flags, settings + +__all__ = [ + "feature_flags", + "settings", +] diff --git a/app/core/settings.py b/futuramaapi/core/configs.py similarity index 87% rename from app/core/settings.py rename to futuramaapi/core/configs.py index af20f56..689e26e 100644 --- a/app/core/settings.py +++ b/futuramaapi/core/configs.py @@ -2,7 +2,7 @@ from typing import Any from urllib.parse import ParseResult, urlparse -from pydantic import EmailStr, Field, PostgresDsn +from pydantic import EmailStr, Field, HttpUrl, PostgresDsn from pydantic.fields import FieldInfo from pydantic_settings import ( BaseSettings, @@ -78,12 +78,19 @@ def settings_customise_sources( # noqa: PLR0913 ) -> tuple[PydanticBaseSettingsSource, ...]: return (_EnvSource(settings_cls),) + def build_url(self, *, path: str | None = None) -> HttpUrl: + path = f"{self.static}/{path}" if path else f"{self.static}" + return HttpUrl.build( + scheme="https", + host=self.trusted_host, + path=path, + ) + settings = Settings() class FeatureFlags(BaseSettings): - activate_users: bool = False enable_https_redirect: bool = False diff --git a/alembic/versions/__init__.py b/futuramaapi/middlewares/__init__.py similarity index 100% rename from alembic/versions/__init__.py rename to futuramaapi/middlewares/__init__.py diff --git a/futuramaapi/middlewares/cors.py b/futuramaapi/middlewares/cors.py new file mode 100644 index 0000000..c77fb32 --- /dev/null +++ b/futuramaapi/middlewares/cors.py @@ -0,0 +1,10 @@ +from fastapi.middleware.cors import CORSMiddleware as CORSMiddlewareBase + + +class CORSMiddleware(CORSMiddlewareBase): + def is_allowed_origin(self, origin: str) -> bool: + # Starlette restricts to have origin "*" with allow_credentials for ``fastapi.middleware.cors.CORSMiddleware``. + # But for FuturamaAPI it's fine if anyone can access API. + # Not a security issue at all. But if you have any suggestions you are free to create a task here: + # https://github.com/koldakov/futuramaapi/issues. + return True diff --git a/futuramaapi/middlewares/secure.py b/futuramaapi/middlewares/secure.py new file mode 100644 index 0000000..28984f7 --- /dev/null +++ b/futuramaapi/middlewares/secure.py @@ -0,0 +1,65 @@ +import logging + +from starlette import status +from starlette.datastructures import URL +from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint +from starlette.requests import Request +from starlette.responses import RedirectResponse, Response +from starlette.types import Scope + +from futuramaapi.core import settings + +logger = logging.getLogger(__name__) + + +class HTTPSRedirectMiddleware(BaseHTTPMiddleware): + https_port: int = 443 + http_port: int = 80 + + def is_secure(self, headers: dict): + try: + host: str = headers["host"] + except KeyError: + logger.info("Host not found in headers") + return False + try: + proto: str = headers["x-forwarded-proto"] + except KeyError: + logger.info("x-forwarded-proto not found in headers") + return False + try: + port: str = headers["x-forwarded-port"] + except KeyError: + logger.info("x-forwarded-port not found in headers") + return False + + if host == settings.trusted_host and proto in ("https", "wss") and int(port) == self.https_port: + return True + return False + + def _fix_url(self, scope: Scope, /): + url = URL(scope=scope) + redirect_scheme = {"http": "https", "ws": "wss"}[url.scheme] + netloc = url.hostname if url.port in (self.http_port, self.https_port) else url.netloc + return url.replace(scheme=redirect_scheme, netloc=netloc) + + @staticmethod + def headers_to_dict(headers: list, /) -> dict: + return {h[0].decode(): h[1].decode() for h in headers} + + async def dispatch( + self, + request: Request, + call_next: RequestResponseEndpoint, + ) -> Response: + headers: dict = self.headers_to_dict(request.scope["headers"]) + if self.is_secure(headers): + response = await call_next(request) + return response + + url: URL = self._fix_url(request.scope) + return RedirectResponse( + url, + status_code=status.HTTP_301_MOVED_PERMANENTLY, + headers={h[0].decode(): h[1].decode() for h in request.scope["headers"]}, + ) diff --git a/app/graph_ql/__init__.py b/futuramaapi/mixins/__init__.py similarity index 100% rename from app/graph_ql/__init__.py rename to futuramaapi/mixins/__init__.py diff --git a/futuramaapi/mixins/pydantic.py b/futuramaapi/mixins/pydantic.py new file mode 100644 index 0000000..fdf5c2e --- /dev/null +++ b/futuramaapi/mixins/pydantic.py @@ -0,0 +1,67 @@ +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING, Any, Self + +from fastapi_pagination import Page +from fastapi_pagination.ext.sqlalchemy import paginate +from pydantic import BaseModel +from sqlalchemy.ext.asyncio.session import AsyncSession + +from futuramaapi.repositories.base import Base, FilterStatementKwargs, ModelDoesNotExistError +from futuramaapi.routers.schemas import ModelNotFoundError + +if TYPE_CHECKING: + from sqlalchemy import Select + + +class BaseModelGetMixin[Model: BaseModel](ABC): # type: ignore[valid-type] + def __init_subclass__(cls): + """ + Sanity check. + """ + if not hasattr(cls, "model_validate"): + raise RuntimeError(f"Class {cls.__name__} should be inherited from ``pydantic.BaseModel``.") + + @classmethod + @abstractmethod + def model_validate( + cls: type[Model], # type: ignore[name-defined] + obj: Any, + *, + strict: bool | None = None, + from_attributes: bool | None = None, + context: dict[str, Any] | None = None, + ) -> Model: # type: ignore[name-defined] + ... + + @staticmethod + @abstractmethod + def get_model() -> type[Base]: ... + + @classmethod + async def get(cls, session: AsyncSession, id_: int, /) -> Self: + try: + obj: Base = await cls.get_model().get(session, id_) + except ModelDoesNotExistError: + raise ModelNotFoundError() from None + return cls.model_validate(obj) + + @classmethod + async def paginate( + cls, + session: AsyncSession, + /, + offset: int = 20, + limit: int = 20, + ) -> Page[Model]: # type: ignore[name-defined] + model: type[Base] = cls.get_model() + statement: Select[tuple[Base]] = model.get_filter_statement( + FilterStatementKwargs( + offset=offset, + limit=limit, + ) + ) + + return await paginate( + session, + statement, + ) diff --git a/futuramaapi/pydantic/__init__.py b/futuramaapi/pydantic/__init__.py new file mode 100644 index 0000000..9a4a879 --- /dev/null +++ b/futuramaapi/pydantic/__init__.py @@ -0,0 +1,5 @@ +from ._base import BaseModel + +__all__ = [ + "BaseModel", +] diff --git a/futuramaapi/pydantic/_base.py b/futuramaapi/pydantic/_base.py new file mode 100644 index 0000000..27d0d73 --- /dev/null +++ b/futuramaapi/pydantic/_base.py @@ -0,0 +1,17 @@ +import json + +from pydantic import BaseModel as BaseModelOrig +from pydantic import ConfigDict + +from futuramaapi.utils.helpers import to_camel + + +class BaseModel(BaseModelOrig): + model_config = ConfigDict( + from_attributes=True, + populate_by_name=True, + alias_generator=to_camel, + ) + + def to_dict(self, *, by_alias: bool = True) -> dict: + return json.loads(self.model_dump_json(by_alias=by_alias)) diff --git a/app/graph_ql/tests/__init__.py b/futuramaapi/repositories/__init__.py similarity index 100% rename from app/graph_ql/tests/__init__.py rename to futuramaapi/repositories/__init__.py diff --git a/futuramaapi/repositories/base.py b/futuramaapi/repositories/base.py new file mode 100644 index 0000000..96466f6 --- /dev/null +++ b/futuramaapi/repositories/base.py @@ -0,0 +1,101 @@ +from typing import TYPE_CHECKING, NamedTuple, Self +from uuid import UUID, uuid4 + +from sqlalchemy import UUID as COLUMN_UUID +from sqlalchemy import Column, DateTime, Select, select +from sqlalchemy.exc import NoResultFound +from sqlalchemy.ext.asyncio.session import AsyncSession +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column +from sqlalchemy.orm.attributes import InstrumentedAttribute +from sqlalchemy.orm.strategy_options import Load +from sqlalchemy.sql import func + +if TYPE_CHECKING: + from sqlalchemy.engine.result import Result + + +class ModelBaseError(Exception): ... + + +class ModelDoesNotExistError(ModelBaseError): ... + + +class FilterStatementKwargs(NamedTuple): + offset: int | None = None + limit: int | None = None + + +class Base(DeclarativeBase): + __abstract__ = True + + id: Mapped[int] = mapped_column(primary_key=True) + + created_at = Column( + DateTime( + timezone=True, + ), + server_default=func.now(), + nullable=False, + ) + uuid = Column( + COLUMN_UUID( + as_uuid=True, + ), + primary_key=False, + unique=True, + nullable=False, + default=uuid4, + ) + + @classmethod + async def count(cls, session: AsyncSession, /) -> int: + cursor: Result = await session.execute(func.count(cls.id)) + return cursor.scalar() + + @staticmethod + def get_select_in_load() -> list[Load]: + return [] + + @classmethod + def get_options(cls) -> list[Load]: + return [*cls.get_select_in_load()] + + @classmethod + async def get( + cls, + session: AsyncSession, + val: int | str | UUID, + /, + *, + field: InstrumentedAttribute | None = None, + ) -> Self: + options: list[Load] = cls.get_options() + if field is None: + field = cls.id + + statement: Select = select(cls).where(field == val) + if options: + statement = statement.options(*options) + + cursor: Result = await session.execute(statement) + try: + return cursor.scalars().one() + except NoResultFound as err: + raise ModelDoesNotExistError() from err + + @classmethod + def get_filter_statement( + cls, + kwargs: FilterStatementKwargs, + /, + ) -> Select[tuple[Self]]: + statement: Select[tuple[Base]] = select(cls) + + options: list[Load] = cls.get_options() + if options: + statement.options(*options) + if kwargs.offset is not None: + statement = statement.offset(kwargs.offset) + if kwargs.limit is not None: + statement = statement.limit(kwargs.limit) + return statement diff --git a/alembic/README b/futuramaapi/repositories/migrations/README similarity index 100% rename from alembic/README rename to futuramaapi/repositories/migrations/README diff --git a/app/middlewares/__init__.py b/futuramaapi/repositories/migrations/__init__.py similarity index 100% rename from app/middlewares/__init__.py rename to futuramaapi/repositories/migrations/__init__.py diff --git a/alembic/env.py b/futuramaapi/repositories/migrations/env.py similarity index 93% rename from alembic/env.py rename to futuramaapi/repositories/migrations/env.py index 4f8e26c..9e0a565 100644 --- a/alembic/env.py +++ b/futuramaapi/repositories/migrations/env.py @@ -1,14 +1,14 @@ import asyncio from logging.config import fileConfig +from alembic import context from sqlalchemy import pool from sqlalchemy.engine import Connection from sqlalchemy.ext.asyncio import async_engine_from_config -from alembic import context -from app.core import settings -from app.repositories import models # noqa: F401, do not remove. -from app.repositories.base import Base +from futuramaapi.core import settings +from futuramaapi.repositories import models # noqa: F401, do not remove. +from futuramaapi.repositories.base import Base # this is the Alembic Config object, which provides # access to the values within the .ini file in use. diff --git a/alembic/script.py.mako b/futuramaapi/repositories/migrations/script.py.mako similarity index 100% rename from alembic/script.py.mako rename to futuramaapi/repositories/migrations/script.py.mako diff --git a/alembic/versions/1353be8a56b8_initial_project_structure.py b/futuramaapi/repositories/migrations/versions/1353be8a56b8_initial_project_structure.py similarity index 100% rename from alembic/versions/1353be8a56b8_initial_project_structure.py rename to futuramaapi/repositories/migrations/versions/1353be8a56b8_initial_project_structure.py index c1d72f3..2f4fc4e 100644 --- a/alembic/versions/1353be8a56b8_initial_project_structure.py +++ b/futuramaapi/repositories/migrations/versions/1353be8a56b8_initial_project_structure.py @@ -4,12 +4,12 @@ Revises: d413d1284339 Create Date: 2023-12-02 18:33:01.171361 """ + from collections.abc import Sequence import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - from alembic import op +from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision: str = "1353be8a56b8" diff --git a/alembic/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py b/futuramaapi/repositories/migrations/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py similarity index 100% rename from alembic/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py rename to futuramaapi/repositories/migrations/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py index b420ea5..a1936da 100644 --- a/alembic/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py +++ b/futuramaapi/repositories/migrations/versions/1b86ee33d1ba_add_broadcast_number_to_episode.py @@ -4,10 +4,10 @@ Revises: c03e060df1b8 Create Date: 2023-12-21 21:57:04.032458 """ + from collections.abc import Sequence import sqlalchemy as sa - from alembic import op # revision identifiers, used by Alembic. diff --git a/alembic/versions/928d4358646c_add_image_field.py b/futuramaapi/repositories/migrations/versions/928d4358646c_add_image_field.py similarity index 95% rename from alembic/versions/928d4358646c_add_image_field.py rename to futuramaapi/repositories/migrations/versions/928d4358646c_add_image_field.py index 73b3652..de3144d 100644 --- a/alembic/versions/928d4358646c_add_image_field.py +++ b/futuramaapi/repositories/migrations/versions/928d4358646c_add_image_field.py @@ -4,14 +4,15 @@ Revises: 1353be8a56b8 Create Date: 2023-12-08 20:58:59.382849 """ + from collections.abc import Sequence import sqlalchemy as sa +from alembic import op from fastapi_storages import FileSystemStorage from fastapi_storages.integrations.sqlalchemy import ImageType -from alembic import op -from app.core import settings +from futuramaapi.core import settings # revision identifiers, used by Alembic. revision: str = "928d4358646c" diff --git a/app/repositories/__init__.py b/futuramaapi/repositories/migrations/versions/__init__.py similarity index 100% rename from app/repositories/__init__.py rename to futuramaapi/repositories/migrations/versions/__init__.py diff --git a/alembic/versions/c03e060df1b8_add_production_code_to_episode.py b/futuramaapi/repositories/migrations/versions/c03e060df1b8_add_production_code_to_episode.py similarity index 100% rename from alembic/versions/c03e060df1b8_add_production_code_to_episode.py rename to futuramaapi/repositories/migrations/versions/c03e060df1b8_add_production_code_to_episode.py index 190fb65..dc07e25 100644 --- a/alembic/versions/c03e060df1b8_add_production_code_to_episode.py +++ b/futuramaapi/repositories/migrations/versions/c03e060df1b8_add_production_code_to_episode.py @@ -4,10 +4,10 @@ Revises: 928d4358646c Create Date: 2023-12-21 20:12:27.108201 """ + from collections.abc import Sequence import sqlalchemy as sa - from alembic import op # revision identifiers, used by Alembic. diff --git a/alembic/versions/d413d1284339_initial_revision.py b/futuramaapi/repositories/migrations/versions/d413d1284339_initial_revision.py similarity index 99% rename from alembic/versions/d413d1284339_initial_revision.py rename to futuramaapi/repositories/migrations/versions/d413d1284339_initial_revision.py index 1484abe..ea24303 100644 --- a/alembic/versions/d413d1284339_initial_revision.py +++ b/futuramaapi/repositories/migrations/versions/d413d1284339_initial_revision.py @@ -4,6 +4,7 @@ Revises: Create Date: 2023-11-25 19:46:49.496715 """ + from collections.abc import Sequence revision: str = "d413d1284339" diff --git a/alembic/versions/ee5656c8dc7f_define_user_model.py b/futuramaapi/repositories/migrations/versions/ee5656c8dc7f_define_user_model.py similarity index 100% rename from alembic/versions/ee5656c8dc7f_define_user_model.py rename to futuramaapi/repositories/migrations/versions/ee5656c8dc7f_define_user_model.py index 2cfd326..ab5d552 100644 --- a/alembic/versions/ee5656c8dc7f_define_user_model.py +++ b/futuramaapi/repositories/migrations/versions/ee5656c8dc7f_define_user_model.py @@ -4,10 +4,10 @@ Revises: 1b86ee33d1ba Create Date: 2024-01-21 21:40:59.557432 """ + from collections.abc import Sequence import sqlalchemy as sa - from alembic import op revision: str = "ee5656c8dc7f" diff --git a/futuramaapi/repositories/models.py b/futuramaapi/repositories/models.py new file mode 100644 index 0000000..cc4a897 --- /dev/null +++ b/futuramaapi/repositories/models.py @@ -0,0 +1,205 @@ +from enum import Enum + +from fastapi_storages import FileSystemStorage +from fastapi_storages.integrations.sqlalchemy import ImageType +from sqlalchemy import ( + VARCHAR, + Boolean, + Column, + Date, + ForeignKey, + Integer, + SmallInteger, +) +from sqlalchemy.dialects.postgresql import ENUM # TODO: engine agnostic. +from sqlalchemy.orm import Mapped, mapped_column, relationship, selectinload +from sqlalchemy.orm.strategy_options import Load + +from futuramaapi.core import settings +from futuramaapi.repositories.base import Base + + +class SeasonModel(Base): + __tablename__ = "seasons" + + # Mappers + episodes: Mapped[list["EpisodeModel"]] = relationship( + back_populates="season", + ) + + @staticmethod + def get_select_in_load() -> list[Load]: + return [selectinload(SeasonModel.episodes)] + + +class EpisodeCharacterAssociationModel(Base): + __tablename__ = "episode_character_association" + + id = None + created_at = None + uuid = None + + episode_id: Mapped[int] = mapped_column( + ForeignKey("episodes.id"), + primary_key=True, + ) + character_id: Mapped[int] = mapped_column( + ForeignKey("characters.id"), + primary_key=True, + ) + + +class EpisodeModel(Base): + __tablename__ = "episodes" + + name = Column( + VARCHAR( + length=128, + ), + nullable=True, + ) + air_date = Column( + Date(), + nullable=True, + ) + duration = Column( + Integer, + nullable=True, + ) + production_code = Column( + VARCHAR( + length=8, + ), + nullable=True, + ) + broadcast_number = Column( + SmallInteger, + nullable=True, + ) + + # Mappers + season_id: Mapped[int] = mapped_column( + ForeignKey("seasons.id"), + ) + season: Mapped["SeasonModel"] = relationship( + back_populates="episodes", + ) + + characters: Mapped[list["CharacterModel"]] = relationship( + secondary="episode_character_association", + back_populates="episodes", + ) + + @staticmethod + def get_select_in_load() -> list[Load]: + return [selectinload(EpisodeModel.season)] + + +class CharacterModel(Base): + __tablename__ = "characters" + + class CharacterSpecies(Enum): + HUMAN = "HUMAN" + ROBOT = "ROBOT" + HEAD = "HEAD" + ALIEN = "ALIEN" + MUTANT = "MUTANT" + MONSTER = "MONSTER" + UNKNOWN = "UNKNOWN" + + class CharacterStatus(Enum): + ALIVE = "ALIVE" + DEAD = "DEAD" + UNKNOWN = "UNKNOWN" + + class CharacterGender(Enum): + MALE = "MALE" + FEMALE = "FEMALE" + UNKNOWN = "UNKNOWN" + + name = Column( + VARCHAR( + length=128, + ), + nullable=False, + ) + status = Column( + ENUM( + CharacterStatus, + ), + nullable=False, + ) + gender = Column( + ENUM( + CharacterGender, + ), + nullable=False, + ) + species = Column( + ENUM( + CharacterSpecies, + ), + nullable=False, + ) + image = Column( + ImageType( + storage=FileSystemStorage(path=settings.project_root / settings.static), + ), + ) + + # Mappers + episodes: Mapped[list["EpisodeModel"]] = relationship( + secondary="episode_character_association", + back_populates="characters", + ) + + +class UserModel(Base): + __tablename__ = "users" + + name = Column( + VARCHAR( + length=64, + ), + nullable=False, + ) + surname = Column( + VARCHAR( + length=64, + ), + nullable=False, + ) + middle_name = Column( + VARCHAR( + length=64, + ), + nullable=True, + ) + email = Column( + VARCHAR( + length=320, + ), + nullable=False, + unique=True, + ) + username = Column( + VARCHAR( + length=64, + ), + nullable=False, + unique=True, + ) + password = Column( + VARCHAR( + length=128, + ), + nullable=False, + ) + is_confirmed = Column( + Boolean, + default=False, + ) + is_subscribed = Column( + Boolean, + default=True, + ) diff --git a/futuramaapi/repositories/session.py b/futuramaapi/repositories/session.py new file mode 100644 index 0000000..deec779 --- /dev/null +++ b/futuramaapi/repositories/session.py @@ -0,0 +1,68 @@ +from collections.abc import AsyncIterator +from contextlib import asynccontextmanager +from typing import Any + +from pydantic import PostgresDsn +from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine, AsyncSession, async_sessionmaker, create_async_engine + +from futuramaapi.core import settings + + +class SessionManager: + def __init__(self, host: PostgresDsn, /, *, kwargs: dict[str, Any] | None = None) -> None: + if kwargs is None: + kwargs = {} + + self.engine: AsyncEngine | None = create_async_engine(str(host), **kwargs) + self._session_maker: async_sessionmaker[AsyncSession] | None = async_sessionmaker( + autocommit=False, + bind=self.engine, + ) + + async def close(self) -> None: + if self.engine is None: + raise Exception("DatabaseSessionManager is not initialized") + + await self.engine.dispose() + + self.engine = None + self._session_maker = None + + @asynccontextmanager + async def connect(self) -> AsyncIterator[AsyncConnection]: + if self.engine is None: + raise RuntimeError("DatabaseSessionManager is not initialized") + + async with self.engine.begin() as connection: + try: + yield connection + except Exception: + await connection.rollback() + raise + + @asynccontextmanager + async def session(self) -> AsyncIterator[AsyncSession]: + if self._session_maker is None: + raise Exception("DatabaseSessionManager is not initialized") + + session = self._session_maker() + try: + yield session + except Exception: + await session.rollback() + raise + finally: + await session.close() + + +session_manager: SessionManager = SessionManager( + settings.database_url, + kwargs={ + "echo": True, + }, +) + + +async def get_async_session(): + async with session_manager.session() as session: + yield session diff --git a/futuramaapi/routers/__init__.py b/futuramaapi/routers/__init__.py new file mode 100644 index 0000000..a7743de --- /dev/null +++ b/futuramaapi/routers/__init__.py @@ -0,0 +1,21 @@ +from fastapi import APIRouter + +from .callbacks import router as callbacks_router +from .characters import router as characters_router +from .episodes import router as episodes_router +from .notifications import router as notification_router +from .root import router as root_router +from .seasons import router as seasons_router + +__all__ = [ + "api_router", + "root_router", +] + +api_router = APIRouter(prefix="/api") + +api_router.include_router(callbacks_router) +api_router.include_router(characters_router) +api_router.include_router(episodes_router) +api_router.include_router(notification_router) +api_router.include_router(seasons_router) diff --git a/futuramaapi/routers/callbacks/__init__.py b/futuramaapi/routers/callbacks/__init__.py new file mode 100644 index 0000000..9726651 --- /dev/null +++ b/futuramaapi/routers/callbacks/__init__.py @@ -0,0 +1,5 @@ +from .api import router + +__all__ = [ + "router", +] diff --git a/app/routers/callbacks.py b/futuramaapi/routers/callbacks/api.py similarity index 77% rename from app/routers/callbacks.py rename to futuramaapi/routers/callbacks/api.py index be2ab7e..10454e2 100644 --- a/app/routers/callbacks.py +++ b/futuramaapi/routers/callbacks/api.py @@ -1,19 +1,21 @@ from fastapi import APIRouter, BackgroundTasks, Depends, status from sqlalchemy.ext.asyncio.session import AsyncSession -from app.repositories.sessions import get_async_session -from app.services.callbacks import ( +from futuramaapi.repositories.session import get_async_session +from futuramaapi.routers.callbacks.schemas import Character +from futuramaapi.routers.episodes.schemas import Episode +from futuramaapi.routers.seasons.schemas import Season + +from .schemas import ( + CallbackObjectResponse, CallbackRequest, CallbackResponse, - CharacterCallbackResponse, - EpisodeCallbackResponse, - SeasonCallbackResponse, - process_characters_callback, - process_episodes_callback, - process_seasons_callback, ) -router = APIRouter(prefix="/callbacks") +router = APIRouter( + prefix="/callbacks", + tags=["callbacks"], +) _characters_callbacks_router = APIRouter() @@ -23,7 +25,7 @@ status_code=status.HTTP_200_OK, ) def character_callback( - body: CharacterCallbackResponse, + body: CallbackObjectResponse, ): """Request to the provided callback URL.""" @@ -37,7 +39,7 @@ def character_callback( ) async def create_characters_callback_request( character_id: int, - character_request: CallbackRequest, + request: CallbackRequest, background_tasks: BackgroundTasks, session: AsyncSession = Depends(get_async_session), # noqa: B008 ) -> CallbackResponse: @@ -49,7 +51,7 @@ async def create_characters_callback_request( * Receive a delay after which the callback will be sent. * Receive a notification back to the API, as a callback. """ - return await process_characters_callback(character_id, character_request, session, background_tasks) + return await CallbackResponse.process(session, Character, request, character_id, background_tasks) _episodes_callbacks_router = APIRouter() @@ -60,7 +62,7 @@ async def create_characters_callback_request( status_code=status.HTTP_200_OK, ) def episodes_callback( - body: EpisodeCallbackResponse, + body: CallbackObjectResponse, ): """Request to the provided callback URL.""" @@ -74,7 +76,7 @@ def episodes_callback( ) async def create_episodes_callback_request( episode_id: int, - episode_request: CallbackRequest, + request: CallbackRequest, background_tasks: BackgroundTasks, session: AsyncSession = Depends(get_async_session), # noqa: B008 ) -> CallbackResponse: @@ -86,7 +88,7 @@ async def create_episodes_callback_request( * Receive a delay after which the callback will be sent. * Receive a notification back to the API, as a callback. """ - return await process_episodes_callback(episode_id, episode_request, session, background_tasks) + return await CallbackResponse.process(session, Episode, request, episode_id, background_tasks) # Season related endpoints. @@ -98,7 +100,7 @@ async def create_episodes_callback_request( status_code=status.HTTP_200_OK, ) def seasons_callback( - body: SeasonCallbackResponse, + body: CallbackObjectResponse, ): """Request to the provided callback URL.""" @@ -112,7 +114,7 @@ def seasons_callback( ) async def create_seasons_callback_request( season_id: int, - season_request: CallbackRequest, + request: CallbackRequest, background_tasks: BackgroundTasks, session: AsyncSession = Depends(get_async_session), # noqa: B008 ) -> CallbackResponse: @@ -124,4 +126,4 @@ async def create_seasons_callback_request( * Receive a delay after which the callback will be sent. * Receive a notification back to the API, as a callback. """ - return await process_seasons_callback(season_id, season_request, session, background_tasks) + return await CallbackResponse.process(session, Season, request, season_id, background_tasks) diff --git a/futuramaapi/routers/callbacks/schemas.py b/futuramaapi/routers/callbacks/schemas.py new file mode 100644 index 0000000..00e7654 --- /dev/null +++ b/futuramaapi/routers/callbacks/schemas.py @@ -0,0 +1,118 @@ +from asyncio import sleep +from random import randint +from typing import Literal, Self + +from fastapi import BackgroundTasks, HTTPException +from httpx import AsyncClient, Response +from pydantic import Field, HttpUrl +from sqlalchemy.ext.asyncio.session import AsyncSession + +from futuramaapi.pydantic._base import BaseModel +from futuramaapi.routers.characters.schemas import Character +from futuramaapi.routers.episodes.schemas import Episode +from futuramaapi.routers.seasons.schemas import Season + +MIN_DELAY: int = 5 +MAX_DELAY: int = 10 + + +class DoesNotExist(BaseModel): + id: int = Field( + description="Requested Object ID.", + ) + detail: str = Field( + "Not found", + examples=[ + "Not found", + ], + ) + + +class CallbackObjectResponse(BaseModel): + # Can't use type even with noqa: A003, cause native type is being used for a arg typing below. + kind: Literal["Character", "Episode", "Season"] = Field( + alias="type", + description="Requested Object type.", + ) + item: Character | Episode | Season | DoesNotExist + + @classmethod + async def from_item( + cls, + session: AsyncSession, + requested_object: type[Character | Episode | Season], + id_: int, + /, + ) -> Self: + item: Character | Episode | Season | DoesNotExist + try: + item = await requested_object.get(session, id_) + except HTTPException: + item = DoesNotExist( + id=id_, + ) + return cls( + kind=requested_object.__name__, + item=item, + ) + + async def send_callback(self, url: HttpUrl, /) -> None: + async with AsyncClient(http2=True) as client: + callback_response: Response = await client.post( + f"{url}", + json=self.to_dict(), + ) + callback_response.raise_for_status() + + +class CallbackRequest(BaseModel): + callback_url: HttpUrl + + +class CallbackResponse(BaseModel): + @staticmethod + def _generate_random_delay() -> int: + return randint(MIN_DELAY, MAX_DELAY) # noqa: S311 + + delay: int = Field( + default_factory=_generate_random_delay, + ge=MIN_DELAY, + le=MAX_DELAY, + description="Delay after which the callback will be sent.", + ) + + async def process_background_task( + self, + session: AsyncSession, + requested_object: type[Character | Episode | Season], + request: CallbackRequest, + id_: int, + /, + ) -> None: + await sleep(self.delay) + callback_response: CallbackObjectResponse = await CallbackObjectResponse.from_item( + session, + requested_object, + id_, + ) + await callback_response.send_callback(request.callback_url) + + @classmethod + async def process( # noqa: PLR0913 + cls, + session: AsyncSession, + requested_object: type[Character | Episode | Season], + request: CallbackRequest, + id_: int, + background_tasks: BackgroundTasks, + /, + ) -> Self: + response: Self = cls() + background_tasks.add_task( + response.process_background_task, + session, + requested_object, + request, + id_, + ) + return response diff --git a/futuramaapi/routers/characters/__init__.py b/futuramaapi/routers/characters/__init__.py new file mode 100644 index 0000000..9726651 --- /dev/null +++ b/futuramaapi/routers/characters/__init__.py @@ -0,0 +1,5 @@ +from .api import router + +__all__ = [ + "router", +] diff --git a/futuramaapi/routers/characters/api.py b/futuramaapi/routers/characters/api.py new file mode 100644 index 0000000..5d0756e --- /dev/null +++ b/futuramaapi/routers/characters/api.py @@ -0,0 +1,61 @@ +from fastapi import APIRouter, Depends, HTTPException, status +from fastapi_pagination import Page +from sqlalchemy.ext.asyncio.session import AsyncSession + +from futuramaapi.repositories.session import get_async_session +from futuramaapi.routers.schemas import ModelNotFoundError + +from .schemas import Character + +router = APIRouter( + prefix="/characters", + tags=["characters"], +) + + +@router.get( + "/{character_id}", + status_code=status.HTTP_200_OK, + response_model=Character, + name="character", +) +async def get_character( + character_id: int, + session: AsyncSession = Depends(get_async_session), # noqa: B008 +) -> Character: + """Retrieve specific character. + + This endpoint enables users to retrieve detailed information about a specific Futurama character by providing + their unique ID. The response will include essential details such as the character's name, status, + gender, species, image, and other relevant details. + + Can be used to utilize this endpoint to obtain in-depth insights + into a particular character from the Futurama universe. + """ + try: + return await Character.get(session, character_id) + except ModelNotFoundError: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from None + + +@router.get( + "", + status_code=status.HTTP_200_OK, + response_model=Page[Character], + name="characters", +) +async def get_characters( + session: AsyncSession = Depends(get_async_session), # noqa: B008 +) -> Page[Character]: + """Retrieve characters. + + Explore advanced filtering options in our API documentation by checking out the variety of query parameters + available. + + Also, you can include filtering in requests. + Use the "!" symbol for logical negation in filtering. For example, If you want to retrieve all aliens with + known gender and known status, your request would be + `/api/characters/?gender=!unknown&status=!unknown&species=alien`. + Check query Parameters to more info. + """ + return await Character.paginate(session) diff --git a/futuramaapi/routers/characters/schemas.py b/futuramaapi/routers/characters/schemas.py new file mode 100644 index 0000000..9d67ab7 --- /dev/null +++ b/futuramaapi/routers/characters/schemas.py @@ -0,0 +1,32 @@ +from datetime import datetime + +from fastapi_storages import StorageImage +from pydantic import HttpUrl, field_validator + +from futuramaapi.core import settings +from futuramaapi.mixins.pydantic import BaseModelGetMixin +from futuramaapi.pydantic import BaseModel +from futuramaapi.repositories.models import CharacterModel + + +class Character(BaseModel, BaseModelGetMixin): + id: int + name: str + gender: CharacterModel.CharacterGender + status: CharacterModel.CharacterStatus + species: CharacterModel.CharacterSpecies + created_at: datetime + image: HttpUrl | None = None + + @staticmethod + def get_model() -> type[CharacterModel]: + return CharacterModel + + @field_validator("image", mode="before") + @classmethod + def make_url(cls, value: StorageImage | str | None, /) -> HttpUrl | None: + if value is None: + return None + if isinstance(value, StorageImage): + return settings.build_url(path=value._name) + return HttpUrl(value) diff --git a/futuramaapi/routers/episodes/__init__.py b/futuramaapi/routers/episodes/__init__.py new file mode 100644 index 0000000..9726651 --- /dev/null +++ b/futuramaapi/routers/episodes/__init__.py @@ -0,0 +1,5 @@ +from .api import router + +__all__ = [ + "router", +] diff --git a/app/routers/episodes.py b/futuramaapi/routers/episodes/api.py similarity index 74% rename from app/routers/episodes.py rename to futuramaapi/routers/episodes/api.py index 4ef1f8f..7ffa25f 100644 --- a/app/routers/episodes.py +++ b/futuramaapi/routers/episodes/api.py @@ -1,15 +1,16 @@ -from fastapi import APIRouter, Depends, status +from fastapi import APIRouter, Depends, HTTPException, status from fastapi_pagination import Page from sqlalchemy.ext.asyncio.session import AsyncSession -from app.repositories.sessions import get_async_session -from app.services.episodes import ( - Episode, - process_get_episode, - process_get_episodes, -) +from futuramaapi.repositories.session import get_async_session +from futuramaapi.routers.schemas import ModelNotFoundError + +from .schemas import Episode -router = APIRouter(prefix="/episodes") +router = APIRouter( + prefix="/episodes", + tags=["episodes"], +) @router.get( @@ -31,7 +32,10 @@ async def get_episode( Can be used to get in-depth information about a particular episode of Futurama. """ - return await process_get_episode(episode_id, session) + try: + return await Episode.get(session, episode_id) + except ModelNotFoundError: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from None @router.get( @@ -52,4 +56,4 @@ async def get_episodes( and other relevant details. It's particularly useful for those who want to explore the entire catalog of Futurama episodes or implement features such as episode browsing on your site. """ - return await process_get_episodes(session) + return await Episode.paginate(session) diff --git a/futuramaapi/routers/episodes/schemas.py b/futuramaapi/routers/episodes/schemas.py new file mode 100644 index 0000000..5a35632 --- /dev/null +++ b/futuramaapi/routers/episodes/schemas.py @@ -0,0 +1,43 @@ +from datetime import date, datetime + +from pydantic import Field, computed_field + +from futuramaapi.mixins.pydantic import BaseModelGetMixin +from futuramaapi.pydantic import BaseModel +from futuramaapi.repositories.base import Base +from futuramaapi.repositories.models import EpisodeModel + + +class EpisodeBase(BaseModel, BaseModelGetMixin): + id: int + name: str + broadcast_number: int = Field(alias="number") + production_code: str = Field( + examples=[ + "1ACV01", + ], + ) + + @staticmethod + def get_model() -> type[Base]: + return EpisodeModel + + +class Episode(EpisodeBase): + class Season(BaseModel): + id: int + + air_date: date | None + duration: int | None + created_at: datetime + season: Season + + @computed_field( # type: ignore[misc] + examples=[ + "S01E01", + ], + return_type=str, + ) + @property + def broadcast_code(self) -> str: + return f"S{self.season.id:02d}E{self.broadcast_number:02d}" diff --git a/futuramaapi/routers/notifications/__init__.py b/futuramaapi/routers/notifications/__init__.py new file mode 100644 index 0000000..9726651 --- /dev/null +++ b/futuramaapi/routers/notifications/__init__.py @@ -0,0 +1,5 @@ +from .api import router + +__all__ = [ + "router", +] diff --git a/app/routers/notifications.py b/futuramaapi/routers/notifications/api.py similarity index 77% rename from app/routers/notifications.py rename to futuramaapi/routers/notifications/api.py index 2942789..1a76aee 100644 --- a/app/routers/notifications.py +++ b/futuramaapi/routers/notifications/api.py @@ -2,11 +2,13 @@ from sqlalchemy.ext.asyncio.session import AsyncSession from sse_starlette.sse import EventSourceResponse -from app.repositories.sessions import get_async_session -from app.services.notifications import CharacterMove, process_character_sse +from futuramaapi.repositories.session import get_async_session + +from .schemas import CharacterNotification router = APIRouter( prefix="/notifications", + tags=["notifications"], ) @@ -15,7 +17,7 @@ response_class=EventSourceResponse, responses={ status.HTTP_200_OK: { - "model": CharacterMove, + "model": CharacterNotification, } }, status_code=status.HTTP_200_OK, @@ -33,4 +35,4 @@ async def character_sse( It facilitates real-time updates on character path. Exercise caution when using this endpoint to ensure responsible and accurate data retrieval. """ - return await process_character_sse(character_id, request, session) + return await CharacterNotification.from_request(character_id, request, session) diff --git a/futuramaapi/routers/notifications/schemas.py b/futuramaapi/routers/notifications/schemas.py new file mode 100644 index 0000000..0ed1785 --- /dev/null +++ b/futuramaapi/routers/notifications/schemas.py @@ -0,0 +1,57 @@ +from asyncio import sleep +from datetime import datetime +from random import randint + +from fastapi import Request +from pydantic import Field +from sqlalchemy.ext.asyncio.session import AsyncSession +from sse_starlette import EventSourceResponse, ServerSentEvent + +from futuramaapi.pydantic import BaseModel +from futuramaapi.routers.characters.schemas import Character + +MIN_COORDINATE: int = 0 +MAX_COORDINATE: int = 2**6 + + +class CharacterNotification(BaseModel): + class Notification(BaseModel): + time: datetime = Field(default_factory=datetime.now) + x: int = Field( + description="Character X coordinate", + ge=MIN_COORDINATE, + le=MAX_COORDINATE, + ) + y: int = Field( + description="Character Y coordinate", + ge=MIN_COORDINATE, + le=MAX_COORDINATE, + ) + + item: Character + notification: Notification + + @classmethod + async def get_move(cls, request: Request, character: Character, /): + while True: + if await request.is_disconnected(): + # Can be removed. Do not trust lib, force connection close. + break + + yield ServerSentEvent( + data=cls( + item=character, + notification=cls.Notification( + x=randint(MIN_COORDINATE, MAX_COORDINATE), # noqa: S311 + y=randint(MIN_COORDINATE, MAX_COORDINATE), # noqa: S311 + ), + ).model_dump() + ) + await sleep( + randint(1, 3), # noqa: S311 + ) + + @classmethod + async def from_request(cls, id_: int, request: Request, session: AsyncSession, /): + character: Character = await Character.get(session, id_) + return EventSourceResponse(cls.get_move(request, character)) diff --git a/futuramaapi/routers/root/__init__.py b/futuramaapi/routers/root/__init__.py new file mode 100644 index 0000000..9726651 --- /dev/null +++ b/futuramaapi/routers/root/__init__.py @@ -0,0 +1,5 @@ +from .api import router + +__all__ = [ + "router", +] diff --git a/futuramaapi/routers/root/api.py b/futuramaapi/routers/root/api.py new file mode 100644 index 0000000..d7d3db3 --- /dev/null +++ b/futuramaapi/routers/root/api.py @@ -0,0 +1,37 @@ +from fastapi import APIRouter, Response, status +from fastapi.openapi.docs import get_redoc_html +from fastapi.responses import FileResponse + +router = APIRouter() + + +@router.get( + "/health", + tags=[ + "health", + ], + include_in_schema=False, +) +def health() -> Response: + return Response(status_code=status.HTTP_200_OK) + + +@router.get( + "/favicon.ico", + include_in_schema=False, +) +async def favicon(): + return FileResponse("favicon.ico") + + +@router.get( + "/docs", + include_in_schema=False, + name="redoc_html", +) +async def get_redoc(): + return get_redoc_html( + openapi_url="/openapi.json", + title="Documentation | Futurama API", + redoc_favicon_url="/favicon.ico", + ) diff --git a/futuramaapi/routers/schemas.py b/futuramaapi/routers/schemas.py new file mode 100644 index 0000000..1d0175a --- /dev/null +++ b/futuramaapi/routers/schemas.py @@ -0,0 +1 @@ +class ModelNotFoundError(Exception): ... diff --git a/futuramaapi/routers/seasons/__init__.py b/futuramaapi/routers/seasons/__init__.py new file mode 100644 index 0000000..9726651 --- /dev/null +++ b/futuramaapi/routers/seasons/__init__.py @@ -0,0 +1,5 @@ +from .api import router + +__all__ = [ + "router", +] diff --git a/app/routers/seasons.py b/futuramaapi/routers/seasons/api.py similarity index 73% rename from app/routers/seasons.py rename to futuramaapi/routers/seasons/api.py index bf2d003..0cc9171 100644 --- a/app/routers/seasons.py +++ b/futuramaapi/routers/seasons/api.py @@ -1,15 +1,16 @@ -from fastapi import APIRouter, Depends, status +from fastapi import APIRouter, Depends, HTTPException, status from fastapi_pagination import Page from sqlalchemy.ext.asyncio.session import AsyncSession -from app.repositories.sessions import get_async_session -from app.services.seasons import ( - Season, - process_get_season, - process_get_seasons, -) +from futuramaapi.repositories.session import get_async_session +from futuramaapi.routers.schemas import ModelNotFoundError + +from .schemas import Season -router = APIRouter(prefix="/seasons") +router = APIRouter( + prefix="/seasons", + tags=["seasons"], +) @router.get( @@ -29,7 +30,10 @@ async def get_season( Can be used to gain in-depth insights into a particular season of Futurama. """ - return await process_get_season(season_id, session) + try: + return await Season.get(session, season_id) + except ModelNotFoundError: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from None @router.get( @@ -50,4 +54,4 @@ async def get_seasons( This endpoint is valuable for those interested in exploring the entirety of Futurama's seasons or implementing features like season browsing on your site. """ - return await process_get_seasons(session) + return await Season.paginate(session) diff --git a/futuramaapi/routers/seasons/schemas.py b/futuramaapi/routers/seasons/schemas.py new file mode 100644 index 0000000..645d17e --- /dev/null +++ b/futuramaapi/routers/seasons/schemas.py @@ -0,0 +1,16 @@ +from futuramaapi.mixins.pydantic import BaseModelGetMixin +from futuramaapi.pydantic import BaseModel +from futuramaapi.repositories.base import Base +from futuramaapi.repositories.models import SeasonModel +from futuramaapi.routers.episodes.schemas import EpisodeBase + + +class Season(BaseModel, BaseModelGetMixin): + class Episode(EpisodeBase): ... + + id: int + episodes: list[Episode] + + @staticmethod + def get_model() -> type[Base]: + return SeasonModel diff --git a/app/repositories/tests/__init__.py b/futuramaapi/utils/__init__.py similarity index 100% rename from app/repositories/tests/__init__.py rename to futuramaapi/utils/__init__.py diff --git a/futuramaapi/utils/helpers.py b/futuramaapi/utils/helpers.py new file mode 100644 index 0000000..e0a00f0 --- /dev/null +++ b/futuramaapi/utils/helpers.py @@ -0,0 +1,2 @@ +def to_camel(val: str, /) -> str: + return "".join([word if idx == 0 else word.capitalize() for idx, word in enumerate(val.lower().split("_"))]) diff --git a/install-dependencies.sh b/install-dependencies.sh deleted file mode 100644 index f3abe4f..0000000 --- a/install-dependencies.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -apt-get update -apt-get install --assume-yes --no-install-recommends \ - make - -apt-get clean -rm -rf /var/lib/apt/lists/* diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po deleted file mode 100644 index d4a22c7..0000000 --- a/locale/en_US/LC_MESSAGES/messages.po +++ /dev/null @@ -1,229 +0,0 @@ -# English (United States) translations for FuturamaAPI. -# Copyright (C) 2023 FuturamaAPI -# This file is distributed under the same license as the FuturamaAPI -# project. -# FIRST AUTHOR , 2023. -# -msgid "" -msgstr "" -"Project-Id-Version: FuturamaAPI 0.0.1\n" -"Report-Msgid-Bugs-To: coldie322@gmail.com\n" -"POT-Creation-Date: 2024-03-13 21:39+0100\n" -"PO-Revision-Date: 2023-11-24 14:14+0100\n" -"Last-Translator: FULL NAME \n" -"Language: en_US\n" -"Language-Team: en_US \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.13.1\n" - -#: app/routers/root.py:52 templates/base.html:89 -msgid "FB00003" -msgstr "Documentation" - -#: app/routers/root.py:52 templates/about.html:5 templates/base.html:8 -#: templates/base.html:25 templates/base.html:77 -msgid "FB00001" -msgstr "Futurama API" - -#: app/services/notifications.py:18 -msgid "FB00007" -msgstr "Character name" - -#: app/services/notifications.py:20 -msgid "FB00008" -msgstr "Character X coordinate" - -#: app/services/notifications.py:25 -msgid "FB00009" -msgstr "Character Y coordinate" - -#: app/services/users.py:130 -msgid "FuturamaAPI - Account Activation" -msgstr "" - -#: templates/about.html:5 templates/about.html:13 templates/base.html:54 -msgid "FB00012" -msgstr "About" - -#: templates/about.html:14 -msgid "What is this?" -msgstr "" - -#: templates/about.html:16 -msgid "" -"\n" -" Welcome to\n" -" Hulurama, a REST API and GraphQL API dedicated to " -"celebrating the iconic TV show Futurama.\n" -" Created with the intention of providing a learning playground for " -"enthusiasts like you,\n" -" FuturamaAPI opens the door for exploration and experimentation with " -"new technologies.\n" -" Dive into the world of Futurama, study, and try out the latest in web" -" development.\n" -" " -msgstr "" - -#: templates/about.html:28 -msgid "Check our" -msgstr "" - -#: templates/about.html:29 -msgid "documentation" -msgstr "" - -#: templates/about.html:29 -msgid "to get started." -msgstr "" - -#: templates/about.html:31 -msgid "Key Features" -msgstr "" - -#: templates/about.html:32 -msgid "" -"\n" -"
\n" -"

Comprehensive Access

\n" -"

\n" -" Explore detailed information about characters, seasons, episodes, " -"and more.\n" -"

\n" -"

Real-time Updates

\n" -"

\n" -" Experience the excitement of Server Sent Events (SSE) as " -"FuturamaAPI\n" -" keeps you in the loop with the latest happenings.\n" -"

\n" -"

Documentation

\n" -"

Get started quickly by checking out our documentation for a " -"seamless learning experience.

\n" -"
\n" -" " -msgstr "" - -#: templates/about.html:47 -msgid "Why?" -msgstr "" - -#: templates/about.html:48 -msgid "" -"\n" -"

\n" -" FuturamaAPI was born out of the idea that even lesser-known TV shows " -"deserve dedicated projects.\n" -" It's a space to have fun with Futurama and simultaneously push the " -"boundaries of technology.\n" -" Embrace the challenge and discover the possibilities with FastAPI, " -"SSE, WebSockets, GraphQL, Hypercorn,\n" -" HTTP/2.0, and more.\n" -"

\n" -" " -msgstr "" - -#: templates/about.html:56 -msgid "Technical Stack?" -msgstr "" - -#: templates/about.html:57 -msgid "" -"\n" -"

Futurama is powered by a robust technical stack, including

\n" -"
    \n" -"
  • Python
  • \n" -"
  • FastAPI
  • \n" -"
  • Docker
  • \n" -"
  • Hypercorn
  • \n" -"
  • PostgreSQL + SQLAlchemy (async)
  • \n" -"
  • Alembic for Migrations
  • \n" -"
  • Strawberry for GraphQL
  • \n" -"
\n" -" " -msgstr "" - -#: templates/about.html:69 -msgid "Can I contribute?" -msgstr "" - -#: templates/about.html:70 -msgid "" -"\n" -"

\n" -" Absolutely! Feel free to contribute to the project.\n" -" Here is the link to get started.\n" -" Whether you're a seasoned developer or just starting, your " -"contributions are valuable.\n" -"

\n" -" " -msgstr "" - -#: templates/about.html:77 -msgid "Design?" -msgstr "" - -#: templates/about.html:78 -msgid "" -"\n" -"

\n" -" Admittedly, design is not my strong suit. If you have HTML skills and" -" a passion for design,\n" -" please consider creating a\n" -" pull request for this project.\n" -" Any help is greatly appreciated.\n" -"

\n" -" " -msgstr "" - -#: templates/about.html:86 -msgid "Who are you?" -msgstr "" - -#: templates/about.html:87 -msgid "" -"\n" -"

\n" -" I'm Ivan " -"Koldakov,\n" -" a Python developer and enthusiast.\n" -" Connect with me on LinkedIn\n" -" to stay in the loop and share your thoughts.\n" -"

\n" -" " -msgstr "" - -#: templates/base.html:8 -msgid "FB00002" -msgstr "Welcome" - -#: templates/base.html:62 -msgid "FB00011" -msgstr "GraphQL" - -#: templates/base.html:95 -#, python-format -msgid "" -"Join our community today! Already, %(user_count)s have registered, and " -"we're excited to welcome even more members." -msgstr "" - -#: templates/index.html:31 -msgid "FB00004" -msgstr "Gender" - -#: templates/index.html:33 -msgid "FB00005" -msgstr "Status" - -#: templates/index.html:47 -msgid "FB00006" -msgstr "View" diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..02a9608 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1862 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "alembic" +version = "1.13.1" +description = "A database migration tool for SQLAlchemy." +optional = false +python-versions = ">=3.8" +files = [ + {file = "alembic-1.13.1-py3-none-any.whl", hash = "sha256:2edcc97bed0bd3272611ce3a98d98279e9c209e7186e43e75bbb1b2bdfdbcc43"}, + {file = "alembic-1.13.1.tar.gz", hash = "sha256:4932c8558bf68f2ee92b9bbcb8218671c627064d5b08939437af6d77dc05e595"}, +] + +[package.dependencies] +Mako = "*" +SQLAlchemy = ">=1.3.0" +typing-extensions = ">=4" + +[package.extras] +tz = ["backports.zoneinfo"] + +[[package]] +name = "annotated-types" +version = "0.6.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, +] + +[[package]] +name = "anyio" +version = "4.3.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "asyncpg" +version = "0.29.0" +description = "An asyncio PostgreSQL driver" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "asyncpg-0.29.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72fd0ef9f00aeed37179c62282a3d14262dbbafb74ec0ba16e1b1864d8a12169"}, + {file = "asyncpg-0.29.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52e8f8f9ff6e21f9b39ca9f8e3e33a5fcdceaf5667a8c5c32bee158e313be385"}, + {file = "asyncpg-0.29.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e6823a7012be8b68301342ba33b4740e5a166f6bbda0aee32bc01638491a22"}, + {file = "asyncpg-0.29.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:746e80d83ad5d5464cfbf94315eb6744222ab00aa4e522b704322fb182b83610"}, + {file = "asyncpg-0.29.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ff8e8109cd6a46ff852a5e6bab8b0a047d7ea42fcb7ca5ae6eaae97d8eacf397"}, + {file = "asyncpg-0.29.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:97eb024685b1d7e72b1972863de527c11ff87960837919dac6e34754768098eb"}, + {file = "asyncpg-0.29.0-cp310-cp310-win32.whl", hash = "sha256:5bbb7f2cafd8d1fa3e65431833de2642f4b2124be61a449fa064e1a08d27e449"}, + {file = "asyncpg-0.29.0-cp310-cp310-win_amd64.whl", hash = "sha256:76c3ac6530904838a4b650b2880f8e7af938ee049e769ec2fba7cd66469d7772"}, + {file = "asyncpg-0.29.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4900ee08e85af01adb207519bb4e14b1cae8fd21e0ccf80fac6aa60b6da37b4"}, + {file = "asyncpg-0.29.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a65c1dcd820d5aea7c7d82a3fdcb70e096f8f70d1a8bf93eb458e49bfad036ac"}, + {file = "asyncpg-0.29.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b52e46f165585fd6af4863f268566668407c76b2c72d366bb8b522fa66f1870"}, + {file = "asyncpg-0.29.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc600ee8ef3dd38b8d67421359779f8ccec30b463e7aec7ed481c8346decf99f"}, + {file = "asyncpg-0.29.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:039a261af4f38f949095e1e780bae84a25ffe3e370175193174eb08d3cecab23"}, + {file = "asyncpg-0.29.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6feaf2d8f9138d190e5ec4390c1715c3e87b37715cd69b2c3dfca616134efd2b"}, + {file = "asyncpg-0.29.0-cp311-cp311-win32.whl", hash = "sha256:1e186427c88225ef730555f5fdda6c1812daa884064bfe6bc462fd3a71c4b675"}, + {file = "asyncpg-0.29.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfe73ffae35f518cfd6e4e5f5abb2618ceb5ef02a2365ce64f132601000587d3"}, + {file = "asyncpg-0.29.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6011b0dc29886ab424dc042bf9eeb507670a3b40aece3439944006aafe023178"}, + {file = "asyncpg-0.29.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b544ffc66b039d5ec5a7454667f855f7fec08e0dfaf5a5490dfafbb7abbd2cfb"}, + {file = "asyncpg-0.29.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d84156d5fb530b06c493f9e7635aa18f518fa1d1395ef240d211cb563c4e2364"}, + {file = "asyncpg-0.29.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54858bc25b49d1114178d65a88e48ad50cb2b6f3e475caa0f0c092d5f527c106"}, + {file = "asyncpg-0.29.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bde17a1861cf10d5afce80a36fca736a86769ab3579532c03e45f83ba8a09c59"}, + {file = "asyncpg-0.29.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:37a2ec1b9ff88d8773d3eb6d3784dc7e3fee7756a5317b67f923172a4748a175"}, + {file = "asyncpg-0.29.0-cp312-cp312-win32.whl", hash = "sha256:bb1292d9fad43112a85e98ecdc2e051602bce97c199920586be83254d9dafc02"}, + {file = "asyncpg-0.29.0-cp312-cp312-win_amd64.whl", hash = "sha256:2245be8ec5047a605e0b454c894e54bf2ec787ac04b1cb7e0d3c67aa1e32f0fe"}, + {file = "asyncpg-0.29.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0009a300cae37b8c525e5b449233d59cd9868fd35431abc470a3e364d2b85cb9"}, + {file = "asyncpg-0.29.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cad1324dbb33f3ca0cd2074d5114354ed3be2b94d48ddfd88af75ebda7c43cc"}, + {file = "asyncpg-0.29.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:012d01df61e009015944ac7543d6ee30c2dc1eb2f6b10b62a3f598beb6531548"}, + {file = "asyncpg-0.29.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000c996c53c04770798053e1730d34e30cb645ad95a63265aec82da9093d88e7"}, + {file = "asyncpg-0.29.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e0bfe9c4d3429706cf70d3249089de14d6a01192d617e9093a8e941fea8ee775"}, + {file = "asyncpg-0.29.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:642a36eb41b6313ffa328e8a5c5c2b5bea6ee138546c9c3cf1bffaad8ee36dd9"}, + {file = "asyncpg-0.29.0-cp38-cp38-win32.whl", hash = "sha256:a921372bbd0aa3a5822dd0409da61b4cd50df89ae85150149f8c119f23e8c408"}, + {file = "asyncpg-0.29.0-cp38-cp38-win_amd64.whl", hash = "sha256:103aad2b92d1506700cbf51cd8bb5441e7e72e87a7b3a2ca4e32c840f051a6a3"}, + {file = "asyncpg-0.29.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5340dd515d7e52f4c11ada32171d87c05570479dc01dc66d03ee3e150fb695da"}, + {file = "asyncpg-0.29.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e17b52c6cf83e170d3d865571ba574577ab8e533e7361a2b8ce6157d02c665d3"}, + {file = "asyncpg-0.29.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f100d23f273555f4b19b74a96840aa27b85e99ba4b1f18d4ebff0734e78dc090"}, + {file = "asyncpg-0.29.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48e7c58b516057126b363cec8ca02b804644fd012ef8e6c7e23386b7d5e6ce83"}, + {file = "asyncpg-0.29.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f9ea3f24eb4c49a615573724d88a48bd1b7821c890c2effe04f05382ed9e8810"}, + {file = "asyncpg-0.29.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8d36c7f14a22ec9e928f15f92a48207546ffe68bc412f3be718eedccdf10dc5c"}, + {file = "asyncpg-0.29.0-cp39-cp39-win32.whl", hash = "sha256:797ab8123ebaed304a1fad4d7576d5376c3a006a4100380fb9d517f0b59c1ab2"}, + {file = "asyncpg-0.29.0-cp39-cp39-win_amd64.whl", hash = "sha256:cce08a178858b426ae1aa8409b5cc171def45d4293626e7aa6510696d46decd8"}, + {file = "asyncpg-0.29.0.tar.gz", hash = "sha256:d1c49e1f44fffafd9a55e1a9b101590859d881d639ea2922516f5d9c512d354e"}, +] + +[package.extras] +docs = ["Sphinx (>=5.3.0,<5.4.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["flake8 (>=6.1,<7.0)", "uvloop (>=0.15.3)"] + +[[package]] +name = "boto3" +version = "1.34.102" +description = "The AWS SDK for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "boto3-1.34.102-py3-none-any.whl", hash = "sha256:1c1fb2884f85c0ec6b62e6e7ed5a2a6635e1188f3ab5d2b700f7db1cf8464484"}, + {file = "boto3-1.34.102.tar.gz", hash = "sha256:65e4b9fb9ceefe19976e8822ac0cd68d28946d4697e538741d2bbdb5b45ae42f"}, +] + +[package.dependencies] +botocore = ">=1.34.102,<1.35.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.10.0,<0.11.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.34.102" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">=3.8" +files = [ + {file = "botocore-1.34.102-py3-none-any.whl", hash = "sha256:79ac7fc2729294395c70eff9c23510f00785ad2acd78d6130cb4379e9f27da86"}, + {file = "botocore-1.34.102.tar.gz", hash = "sha256:e2f8a9f4bac6f7b568e6e981ac2a2500bc992329c85dde8546f0cae8605dd009"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} + +[package.extras] +crt = ["awscrt (==0.20.9)"] + +[[package]] +name = "certifi" +version = "2024.2.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +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 = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + +[[package]] +name = "dnspython" +version = "2.6.1" +description = "DNS toolkit" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, + {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=41)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=0.9.25)"] +idna = ["idna (>=3.6)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "email-validator" +version = "2.1.1" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "email_validator-2.1.1-py3-none-any.whl", hash = "sha256:97d882d174e2a65732fb43bfce81a3a834cbc1bde8bf419e30ef5ea976370a05"}, + {file = "email_validator-2.1.1.tar.gz", hash = "sha256:200a70680ba08904be6d1eef729205cc0d687634399a5924d842533efb824b84"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "fastapi" +version = "0.111.0" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi-0.111.0-py3-none-any.whl", hash = "sha256:97ecbf994be0bcbdadedf88c3150252bed7b2087075ac99735403b1b76cc8fc0"}, + {file = "fastapi-0.111.0.tar.gz", hash = "sha256:b9db9dd147c91cb8b769f7183535773d8741dd46f9dc6676cd82eab510228cd7"}, +] + +[package.dependencies] +email_validator = ">=2.0.0" +fastapi-cli = ">=0.0.2" +httpx = ">=0.23.0" +jinja2 = ">=2.11.2" +orjson = ">=3.2.1" +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +python-multipart = ">=0.0.7" +starlette = ">=0.37.2,<0.38.0" +typing-extensions = ">=4.8.0" +ujson = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0" +uvicorn = {version = ">=0.12.0", extras = ["standard"]} + +[package.extras] +all = ["email_validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.3" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi_cli-0.0.3-py3-none-any.whl", hash = "sha256:ae233115f729945479044917d949095e829d2d84f56f55ce1ca17627872825a5"}, + {file = "fastapi_cli-0.0.3.tar.gz", hash = "sha256:3b6e4d2c4daee940fb8db59ebbfd60a72c4b962bcf593e263e4cc69da4ea3d7f"}, +] + +[package.dependencies] +fastapi = "*" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[[package]] +name = "fastapi-pagination" +version = "0.12.24" +description = "FastAPI pagination" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "fastapi_pagination-0.12.24-py3-none-any.whl", hash = "sha256:a639df7301a89414244c6763bb97cff043815cb839070b8a38c58c007cf75d48"}, + {file = "fastapi_pagination-0.12.24.tar.gz", hash = "sha256:c9c6508e0182aab679a13b1de261d4923e3b530b410500dcb271638ff714fb14"}, +] + +[package.dependencies] +fastapi = ">=0.93.0" +pydantic = ">=1.9.1" +typing-extensions = ">=4.8.0,<5.0.0" + +[package.extras] +all = ["SQLAlchemy (>=1.3.20)", "asyncpg (>=0.24.0)", "beanie (>=1.25.0)", "bunnet (>=1.1.0,<2.0.0)", "databases (>=0.6.0)", "django (<5.0.0)", "mongoengine (>=0.23.1,<0.29.0)", "motor (>=2.5.1,<4.0.0)", "orm (>=0.3.1)", "ormar (>=0.11.2)", "piccolo (>=0.89,<0.122)", "pony (>=0.7.16,<0.8.0)", "scylla-driver (>=3.25.6,<4.0.0)", "sqlakeyset (>=2.0.1680321678,<3.0.0)", "sqlmodel (>=0.0.8,<0.0.15)", "tortoise-orm (>=0.16.18,<0.21.0)"] +asyncpg = ["SQLAlchemy (>=1.3.20)", "asyncpg (>=0.24.0)"] +beanie = ["beanie (>=1.25.0)"] +bunnet = ["bunnet (>=1.1.0,<2.0.0)"] +databases = ["databases (>=0.6.0)"] +django = ["databases (>=0.6.0)", "django (<5.0.0)"] +mongoengine = ["mongoengine (>=0.23.1,<0.29.0)"] +motor = ["motor (>=2.5.1,<4.0.0)"] +orm = ["databases (>=0.6.0)", "orm (>=0.3.1)"] +ormar = ["ormar (>=0.11.2)"] +piccolo = ["piccolo (>=0.89,<0.122)"] +scylla-driver = ["scylla-driver (>=3.25.6,<4.0.0)"] +sqlalchemy = ["SQLAlchemy (>=1.3.20)", "sqlakeyset (>=2.0.1680321678,<3.0.0)"] +sqlmodel = ["sqlakeyset (>=2.0.1680321678,<3.0.0)", "sqlmodel (>=0.0.8,<0.0.15)"] +tortoise = ["tortoise-orm (>=0.16.18,<0.21.0)"] + +[[package]] +name = "fastapi-storages" +version = "0.3.0" +description = "FastAPI Storages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi_storages-0.3.0-py3-none-any.whl", hash = "sha256:91adb41a80fdef2a84c0f8244c27ade7ff8bd5db9b7fa95c496c06c03e192477"}, + {file = "fastapi_storages-0.3.0.tar.gz", hash = "sha256:f784335fff9cd163b783e842da04c6d9ed1b306fce8995fda109b170d6d453df"}, +] + +[package.dependencies] +boto3 = ">=1.25,<2.0" + +[package.extras] +full = ["peewee (>=3)", "pillow (>=9.4,<10.0)", "sqlalchemy (>=1.4)"] + +[[package]] +name = "filelock" +version = "3.14.0" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, + {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] + +[[package]] +name = "greenlet" +version = "3.0.3" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, + {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, + {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, + {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, + {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, + {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, + {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, + {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, + {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, + {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, + {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, + {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, + {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, + {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, + {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, + {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "h2" +version = "4.1.0" +description = "HTTP/2 State-Machine based protocol implementation" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d"}, + {file = "h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"}, +] + +[package.dependencies] +hpack = ">=4.0,<5" +hyperframe = ">=6.0,<7" + +[[package]] +name = "hpack" +version = "4.0.0" +description = "Pure-Python HPACK header compression" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"}, + {file = "hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"}, +] + +[[package]] +name = "httpcore" +version = "1.0.5" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] + +[[package]] +name = "httptools" +version = "0.6.1" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "httptools-0.6.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d2f6c3c4cb1948d912538217838f6e9960bc4a521d7f9b323b3da579cd14532f"}, + {file = "httptools-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:00d5d4b68a717765b1fabfd9ca755bd12bf44105eeb806c03d1962acd9b8e563"}, + {file = "httptools-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:639dc4f381a870c9ec860ce5c45921db50205a37cc3334e756269736ff0aac58"}, + {file = "httptools-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e57997ac7fb7ee43140cc03664de5f268813a481dff6245e0075925adc6aa185"}, + {file = "httptools-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0ac5a0ae3d9f4fe004318d64b8a854edd85ab76cffbf7ef5e32920faef62f142"}, + {file = "httptools-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3f30d3ce413088a98b9db71c60a6ada2001a08945cb42dd65a9a9fe228627658"}, + {file = "httptools-0.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:1ed99a373e327f0107cb513b61820102ee4f3675656a37a50083eda05dc9541b"}, + {file = "httptools-0.6.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7a7ea483c1a4485c71cb5f38be9db078f8b0e8b4c4dc0210f531cdd2ddac1ef1"}, + {file = "httptools-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:85ed077c995e942b6f1b07583e4eb0a8d324d418954fc6af913d36db7c05a5a0"}, + {file = "httptools-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b0bb634338334385351a1600a73e558ce619af390c2b38386206ac6a27fecfc"}, + {file = "httptools-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d9ceb2c957320def533671fc9c715a80c47025139c8d1f3797477decbc6edd2"}, + {file = "httptools-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4f0f8271c0a4db459f9dc807acd0eadd4839934a4b9b892f6f160e94da309837"}, + {file = "httptools-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6a4f5ccead6d18ec072ac0b84420e95d27c1cdf5c9f1bc8fbd8daf86bd94f43d"}, + {file = "httptools-0.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:5cceac09f164bcba55c0500a18fe3c47df29b62353198e4f37bbcc5d591172c3"}, + {file = "httptools-0.6.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:75c8022dca7935cba14741a42744eee13ba05db00b27a4b940f0d646bd4d56d0"}, + {file = "httptools-0.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:48ed8129cd9a0d62cf4d1575fcf90fb37e3ff7d5654d3a5814eb3d55f36478c2"}, + {file = "httptools-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f58e335a1402fb5a650e271e8c2d03cfa7cea46ae124649346d17bd30d59c90"}, + {file = "httptools-0.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ad80d7176aa5788902f207a4e79885f0576134695dfb0fefc15b7a4648d503"}, + {file = "httptools-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9bb68d3a085c2174c2477eb3ffe84ae9fb4fde8792edb7bcd09a1d8467e30a84"}, + {file = "httptools-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b512aa728bc02354e5ac086ce76c3ce635b62f5fbc32ab7082b5e582d27867bb"}, + {file = "httptools-0.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:97662ce7fb196c785344d00d638fc9ad69e18ee4bfb4000b35a52efe5adcc949"}, + {file = "httptools-0.6.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8e216a038d2d52ea13fdd9b9c9c7459fb80d78302b257828285eca1c773b99b3"}, + {file = "httptools-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3e802e0b2378ade99cd666b5bffb8b2a7cc8f3d28988685dc300469ea8dd86cb"}, + {file = "httptools-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bd3e488b447046e386a30f07af05f9b38d3d368d1f7b4d8f7e10af85393db97"}, + {file = "httptools-0.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe467eb086d80217b7584e61313ebadc8d187a4d95bb62031b7bab4b205c3ba3"}, + {file = "httptools-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3c3b214ce057c54675b00108ac42bacf2ab8f85c58e3f324a4e963bbc46424f4"}, + {file = "httptools-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ae5b97f690badd2ca27cbf668494ee1b6d34cf1c464271ef7bfa9ca6b83ffaf"}, + {file = "httptools-0.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:405784577ba6540fa7d6ff49e37daf104e04f4b4ff2d1ac0469eaa6a20fde084"}, + {file = "httptools-0.6.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:95fb92dd3649f9cb139e9c56604cc2d7c7bf0fc2e7c8d7fbd58f96e35eddd2a3"}, + {file = "httptools-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dcbab042cc3ef272adc11220517278519adf8f53fd3056d0e68f0a6f891ba94e"}, + {file = "httptools-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf2372e98406efb42e93bfe10f2948e467edfd792b015f1b4ecd897903d3e8d"}, + {file = "httptools-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678fcbae74477a17d103b7cae78b74800d795d702083867ce160fc202104d0da"}, + {file = "httptools-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e0b281cf5a125c35f7f6722b65d8542d2e57331be573e9e88bc8b0115c4a7a81"}, + {file = "httptools-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:95658c342529bba4e1d3d2b1a874db16c7cca435e8827422154c9da76ac4e13a"}, + {file = "httptools-0.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ebaec1bf683e4bf5e9fbb49b8cc36da482033596a415b3e4ebab5a4c0d7ec5e"}, + {file = "httptools-0.6.1.tar.gz", hash = "sha256:c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"}, +] + +[package.extras] +test = ["Cython (>=0.29.24,<0.30.0)"] + +[[package]] +name = "httpx" +version = "0.27.0" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + +[[package]] +name = "hypercorn" +version = "0.16.0" +description = "A ASGI Server based on Hyper libraries and inspired by Gunicorn" +optional = false +python-versions = ">=3.8" +files = [ + {file = "hypercorn-0.16.0-py3-none-any.whl", hash = "sha256:929e45c4acde3fbf7c58edf55336d30a009d2b4cb1f1eb96e6a515d61b663f58"}, + {file = "hypercorn-0.16.0.tar.gz", hash = "sha256:3b17d1dcf4992c1f262d9f9dd799c374125d0b9a8e40e1e2d11e2938b0adfe03"}, +] + +[package.dependencies] +h11 = "*" +h2 = ">=3.1.0" +priority = "*" +uvloop = {version = "*", optional = true, markers = "platform_system != \"Windows\" and extra == \"uvloop\""} +wsproto = ">=0.14.0" + +[package.extras] +docs = ["pydata_sphinx_theme", "sphinxcontrib_mermaid"] +h3 = ["aioquic (>=0.9.0,<1.0)"] +trio = ["exceptiongroup (>=1.1.0)", "trio (>=0.22.0)"] +uvloop = ["uvloop"] + +[[package]] +name = "hyperframe" +version = "6.0.1" +description = "HTTP/2 framing layer for Python" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15"}, + {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, +] + +[[package]] +name = "identify" +version = "2.5.36" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.5.36-py2.py3-none-any.whl", hash = "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa"}, + {file = "identify-2.5.36.tar.gz", hash = "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +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 = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, + {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, +] + +[[package]] +name = "mako" +version = "1.3.3" +description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Mako-1.3.3-py3-none-any.whl", hash = "sha256:5324b88089a8978bf76d1629774fcc2f1c07b82acdf00f4c5dd8ceadfffc4b40"}, + {file = "Mako-1.3.3.tar.gz", hash = "sha256:e16c01d9ab9c11f7290eef1cfefc093fb5a45ee4a3da09e2fec2e4d1bae54e73"}, +] + +[package.dependencies] +MarkupSafe = ">=0.9.2" + +[package.extras] +babel = ["Babel"] +lingua = ["lingua"] +testing = ["pytest"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "nodeenv" +version = "1.8.0" +description = "Node.js virtual environment builder" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, +] + +[package.dependencies] +setuptools = "*" + +[[package]] +name = "orjson" +version = "3.10.3" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +files = [ + {file = "orjson-3.10.3-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9fb6c3f9f5490a3eb4ddd46fc1b6eadb0d6fc16fb3f07320149c3286a1409dd8"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:252124b198662eee80428f1af8c63f7ff077c88723fe206a25df8dc57a57b1fa"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9f3e87733823089a338ef9bbf363ef4de45e5c599a9bf50a7a9b82e86d0228da"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8334c0d87103bb9fbbe59b78129f1f40d1d1e8355bbed2ca71853af15fa4ed3"}, + {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1952c03439e4dce23482ac846e7961f9d4ec62086eb98ae76d97bd41d72644d7"}, + {file = "orjson-3.10.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c0403ed9c706dcd2809f1600ed18f4aae50be263bd7112e54b50e2c2bc3ebd6d"}, + {file = "orjson-3.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:382e52aa4270a037d41f325e7d1dfa395b7de0c367800b6f337d8157367bf3a7"}, + {file = "orjson-3.10.3-cp310-none-win32.whl", hash = "sha256:be2aab54313752c04f2cbaab4515291ef5af8c2256ce22abc007f89f42f49109"}, + {file = "orjson-3.10.3-cp310-none-win_amd64.whl", hash = "sha256:416b195f78ae461601893f482287cee1e3059ec49b4f99479aedf22a20b1098b"}, + {file = "orjson-3.10.3-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:73100d9abbbe730331f2242c1fc0bcb46a3ea3b4ae3348847e5a141265479700"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:544a12eee96e3ab828dbfcb4d5a0023aa971b27143a1d35dc214c176fdfb29b3"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:520de5e2ef0b4ae546bea25129d6c7c74edb43fc6cf5213f511a927f2b28148b"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccaa0a401fc02e8828a5bedfd80f8cd389d24f65e5ca3954d72c6582495b4bcf"}, + {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7bc9e8bc11bac40f905640acd41cbeaa87209e7e1f57ade386da658092dc16"}, + {file = "orjson-3.10.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3582b34b70543a1ed6944aca75e219e1192661a63da4d039d088a09c67543b08"}, + {file = "orjson-3.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c23dfa91481de880890d17aa7b91d586a4746a4c2aa9a145bebdbaf233768d5"}, + {file = "orjson-3.10.3-cp311-none-win32.whl", hash = "sha256:1770e2a0eae728b050705206d84eda8b074b65ee835e7f85c919f5705b006c9b"}, + {file = "orjson-3.10.3-cp311-none-win_amd64.whl", hash = "sha256:93433b3c1f852660eb5abdc1f4dd0ced2be031ba30900433223b28ee0140cde5"}, + {file = "orjson-3.10.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a39aa73e53bec8d410875683bfa3a8edf61e5a1c7bb4014f65f81d36467ea098"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0943a96b3fa09bee1afdfccc2cb236c9c64715afa375b2af296c73d91c23eab2"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e852baafceff8da3c9defae29414cc8513a1586ad93e45f27b89a639c68e8176"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18566beb5acd76f3769c1d1a7ec06cdb81edc4d55d2765fb677e3eaa10fa99e0"}, + {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bd2218d5a3aa43060efe649ec564ebedec8ce6ae0a43654b81376216d5ebd42"}, + {file = "orjson-3.10.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cf20465e74c6e17a104ecf01bf8cd3b7b252565b4ccee4548f18b012ff2f8069"}, + {file = "orjson-3.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ba7f67aa7f983c4345eeda16054a4677289011a478ca947cd69c0a86ea45e534"}, + {file = "orjson-3.10.3-cp312-none-win32.whl", hash = "sha256:17e0713fc159abc261eea0f4feda611d32eabc35708b74bef6ad44f6c78d5ea0"}, + {file = "orjson-3.10.3-cp312-none-win_amd64.whl", hash = "sha256:4c895383b1ec42b017dd2c75ae8a5b862fc489006afde06f14afbdd0309b2af0"}, + {file = "orjson-3.10.3-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:be2719e5041e9fb76c8c2c06b9600fe8e8584e6980061ff88dcbc2691a16d20d"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0175a5798bdc878956099f5c54b9837cb62cfbf5d0b86ba6d77e43861bcec2"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:978be58a68ade24f1af7758626806e13cff7748a677faf95fbb298359aa1e20d"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16bda83b5c61586f6f788333d3cf3ed19015e3b9019188c56983b5a299210eb5"}, + {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ad1f26bea425041e0a1adad34630c4825a9e3adec49079b1fb6ac8d36f8b754"}, + {file = "orjson-3.10.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9e253498bee561fe85d6325ba55ff2ff08fb5e7184cd6a4d7754133bd19c9195"}, + {file = "orjson-3.10.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0a62f9968bab8a676a164263e485f30a0b748255ee2f4ae49a0224be95f4532b"}, + {file = "orjson-3.10.3-cp38-none-win32.whl", hash = "sha256:8d0b84403d287d4bfa9bf7d1dc298d5c1c5d9f444f3737929a66f2fe4fb8f134"}, + {file = "orjson-3.10.3-cp38-none-win_amd64.whl", hash = "sha256:8bc7a4df90da5d535e18157220d7915780d07198b54f4de0110eca6b6c11e290"}, + {file = "orjson-3.10.3-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9059d15c30e675a58fdcd6f95465c1522b8426e092de9fff20edebfdc15e1cb0"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d40c7f7938c9c2b934b297412c067936d0b54e4b8ab916fd1a9eb8f54c02294"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4a654ec1de8fdaae1d80d55cee65893cb06494e124681ab335218be6a0691e7"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:831c6ef73f9aa53c5f40ae8f949ff7681b38eaddb6904aab89dca4d85099cb78"}, + {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99b880d7e34542db89f48d14ddecbd26f06838b12427d5a25d71baceb5ba119d"}, + {file = "orjson-3.10.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e5e176c994ce4bd434d7aafb9ecc893c15f347d3d2bbd8e7ce0b63071c52e25"}, + {file = "orjson-3.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b69a58a37dab856491bf2d3bbf259775fdce262b727f96aafbda359cb1d114d8"}, + {file = "orjson-3.10.3-cp39-none-win32.whl", hash = "sha256:b8d4d1a6868cde356f1402c8faeb50d62cee765a1f7ffcfd6de732ab0581e063"}, + {file = "orjson-3.10.3-cp39-none-win_amd64.whl", hash = "sha256:5102f50c5fc46d94f2033fe00d392588564378260d64377aec702f21a7a22912"}, + {file = "orjson-3.10.3.tar.gz", hash = "sha256:2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818"}, +] + +[[package]] +name = "packaging" +version = "24.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, +] + +[[package]] +name = "pillow" +version = "10.3.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, + {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, + {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, + {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, + {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, + {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, + {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, + {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, + {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, + {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, + {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, + {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, + {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, + {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, + {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, + {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.2.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, + {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +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 = "pre-commit" +version = "3.7.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.7.0-py2.py3-none-any.whl", hash = "sha256:5eae9e10c2b5ac51577c3452ec0a490455c45a0533f7960f993a0d01e59decab"}, + {file = "pre_commit-3.7.0.tar.gz", hash = "sha256:e209d61b8acdcf742404408531f0c37d49d2c734fd7cff2d6076083d191cb060"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "priority" +version = "2.0.0" +description = "A pure-Python implementation of the HTTP/2 priority tree" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "priority-2.0.0-py3-none-any.whl", hash = "sha256:6f8eefce5f3ad59baf2c080a664037bb4725cd0a790d53d59ab4059288faf6aa"}, + {file = "priority-2.0.0.tar.gz", hash = "sha256:c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0"}, +] + +[[package]] +name = "pydantic" +version = "2.7.1" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, + {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""} +pydantic-core = "2.18.2" +typing-extensions = ">=4.6.1" + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.18.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, + {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, + {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, + {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, + {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, + {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, + {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, + {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, + {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, + {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, + {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, + {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, + {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, + {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-settings" +version = "2.2.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_settings-2.2.1-py3-none-any.whl", hash = "sha256:0235391d26db4d2190cb9b31051c4b46882d28a51533f97440867f012d4da091"}, + {file = "pydantic_settings-2.2.1.tar.gz", hash = "sha256:00b9f6a5e95553590434c0fa01ead0b216c3e10bc54ae02e37f359948643c5ed"}, +] + +[package.dependencies] +pydantic = ">=2.3.0" +python-dotenv = ">=0.21.0" + +[package.extras] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pytest" +version = "8.2.0" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233"}, + {file = "pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2.0" + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +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 = "python-multipart" +version = "0.0.9" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python_multipart-0.0.9-py3-none-any.whl", hash = "sha256:97ca7b8ea7b05f977dc3849c3ba99d51689822fab725c3703af7c866a0c2b215"}, + {file = "python_multipart-0.0.9.tar.gz", hash = "sha256:03f54688c663f1b7977105f021043b0793151e4cb1c1a9d4a11fc13d622c4026"}, +] + +[package.extras] +dev = ["atomicwrites (==1.4.1)", "attrs (==23.2.0)", "coverage (==7.4.1)", "hatch", "invoke (==2.2.0)", "more-itertools (==10.2.0)", "pbr (==6.0.0)", "pluggy (==1.4.0)", "py (==1.11.0)", "pytest (==8.0.0)", "pytest-cov (==4.1.0)", "pytest-timeout (==2.2.0)", "pyyaml (==6.0.1)", "ruff (==0.2.1)"] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "rich" +version = "13.7.1" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "s3transfer" +version = "0.10.1" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">= 3.8" +files = [ + {file = "s3transfer-0.10.1-py3-none-any.whl", hash = "sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"}, + {file = "s3transfer-0.10.1.tar.gz", hash = "sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19"}, +] + +[package.dependencies] +botocore = ">=1.33.2,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] + +[[package]] +name = "setuptools" +version = "69.5.1" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"}, + {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.30" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.30-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3b48154678e76445c7ded1896715ce05319f74b1e73cf82d4f8b59b46e9c0ddc"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2753743c2afd061bb95a61a51bbb6a1a11ac1c44292fad898f10c9839a7f75b2"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7bfc726d167f425d4c16269a9a10fe8630ff6d14b683d588044dcef2d0f6be7"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4f61ada6979223013d9ab83a3ed003ded6959eae37d0d685db2c147e9143797"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a365eda439b7a00732638f11072907c1bc8e351c7665e7e5da91b169af794af"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bba002a9447b291548e8d66fd8c96a6a7ed4f2def0bb155f4f0a1309fd2735d5"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-win32.whl", hash = "sha256:0138c5c16be3600923fa2169532205d18891b28afa817cb49b50e08f62198bb8"}, + {file = "SQLAlchemy-2.0.30-cp310-cp310-win_amd64.whl", hash = "sha256:99650e9f4cf3ad0d409fed3eec4f071fadd032e9a5edc7270cd646a26446feeb"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:955991a09f0992c68a499791a753523f50f71a6885531568404fa0f231832aa0"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f69e4c756ee2686767eb80f94c0125c8b0a0b87ede03eacc5c8ae3b54b99dc46"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69c9db1ce00e59e8dd09d7bae852a9add716efdc070a3e2068377e6ff0d6fdaa"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1429a4b0f709f19ff3b0cf13675b2b9bfa8a7e79990003207a011c0db880a13"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:efedba7e13aa9a6c8407c48facfdfa108a5a4128e35f4c68f20c3407e4376aa9"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:16863e2b132b761891d6c49f0a0f70030e0bcac4fd208117f6b7e053e68668d0"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-win32.whl", hash = "sha256:2ecabd9ccaa6e914e3dbb2aa46b76dede7eadc8cbf1b8083c94d936bcd5ffb49"}, + {file = "SQLAlchemy-2.0.30-cp311-cp311-win_amd64.whl", hash = "sha256:0b3f4c438e37d22b83e640f825ef0f37b95db9aa2d68203f2c9549375d0b2260"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5a79d65395ac5e6b0c2890935bad892eabb911c4aa8e8015067ddb37eea3d56c"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9a5baf9267b752390252889f0c802ea13b52dfee5e369527da229189b8bd592e"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cb5a646930c5123f8461f6468901573f334c2c63c795b9af350063a736d0134"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:296230899df0b77dec4eb799bcea6fbe39a43707ce7bb166519c97b583cfcab3"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c62d401223f468eb4da32627bffc0c78ed516b03bb8a34a58be54d618b74d472"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3b69e934f0f2b677ec111b4d83f92dc1a3210a779f69bf905273192cf4ed433e"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-win32.whl", hash = "sha256:77d2edb1f54aff37e3318f611637171e8ec71472f1fdc7348b41dcb226f93d90"}, + {file = "SQLAlchemy-2.0.30-cp312-cp312-win_amd64.whl", hash = "sha256:b6c7ec2b1f4969fc19b65b7059ed00497e25f54069407a8701091beb69e591a5"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5a8e3b0a7e09e94be7510d1661339d6b52daf202ed2f5b1f9f48ea34ee6f2d57"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b60203c63e8f984df92035610c5fb76d941254cf5d19751faab7d33b21e5ddc0"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1dc3eabd8c0232ee8387fbe03e0a62220a6f089e278b1f0aaf5e2d6210741ad"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:40ad017c672c00b9b663fcfcd5f0864a0a97828e2ee7ab0c140dc84058d194cf"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e42203d8d20dc704604862977b1470a122e4892791fe3ed165f041e4bf447a1b"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-win32.whl", hash = "sha256:2a4f4da89c74435f2bc61878cd08f3646b699e7d2eba97144030d1be44e27584"}, + {file = "SQLAlchemy-2.0.30-cp37-cp37m-win_amd64.whl", hash = "sha256:b6bf767d14b77f6a18b6982cbbf29d71bede087edae495d11ab358280f304d8e"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc0c53579650a891f9b83fa3cecd4e00218e071d0ba00c4890f5be0c34887ed3"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:311710f9a2ee235f1403537b10c7687214bb1f2b9ebb52702c5aa4a77f0b3af7"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:408f8b0e2c04677e9c93f40eef3ab22f550fecb3011b187f66a096395ff3d9fd"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37a4b4fb0dd4d2669070fb05b8b8824afd0af57587393015baee1cf9890242d9"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a943d297126c9230719c27fcbbeab57ecd5d15b0bd6bfd26e91bfcfe64220621"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0a089e218654e740a41388893e090d2e2c22c29028c9d1353feb38638820bbeb"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-win32.whl", hash = "sha256:fa561138a64f949f3e889eb9ab8c58e1504ab351d6cf55259dc4c248eaa19da6"}, + {file = "SQLAlchemy-2.0.30-cp38-cp38-win_amd64.whl", hash = "sha256:7d74336c65705b986d12a7e337ba27ab2b9d819993851b140efdf029248e818e"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae8c62fe2480dd61c532ccafdbce9b29dacc126fe8be0d9a927ca3e699b9491a"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2383146973a15435e4717f94c7509982770e3e54974c71f76500a0136f22810b"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8409de825f2c3b62ab15788635ccaec0c881c3f12a8af2b12ae4910a0a9aeef6"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0094c5dc698a5f78d3d1539853e8ecec02516b62b8223c970c86d44e7a80f6c7"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:edc16a50f5e1b7a06a2dcc1f2205b0b961074c123ed17ebda726f376a5ab0953"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f7703c2010355dd28f53deb644a05fc30f796bd8598b43f0ba678878780b6e4c"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-win32.whl", hash = "sha256:1f9a727312ff6ad5248a4367358e2cf7e625e98b1028b1d7ab7b806b7d757513"}, + {file = "SQLAlchemy-2.0.30-cp39-cp39-win_amd64.whl", hash = "sha256:a0ef36b28534f2a5771191be6edb44cc2673c7b2edf6deac6562400288664221"}, + {file = "SQLAlchemy-2.0.30-py3-none-any.whl", hash = "sha256:7108d569d3990c71e26a42f60474b4c02c8586c4681af5fd67e51a044fdea86a"}, + {file = "SQLAlchemy-2.0.30.tar.gz", hash = "sha256:2b1708916730f4830bc69d6f49d37f7698b5bd7530aca7f04f785f8849e95255"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or 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)"] +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 = "sse-starlette" +version = "2.1.0" +description = "SSE plugin for Starlette" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sse_starlette-2.1.0-py3-none-any.whl", hash = "sha256:ea92bcb366c12482c1e23cab6b5afed19eb1320efe9ddfba8a0cf1f7f73ffba9"}, + {file = "sse_starlette-2.1.0.tar.gz", hash = "sha256:ffff6e7d948f925f347e662be77af5783a6b93efce15d42c03004dcd7d6d91d3"}, +] + +[package.dependencies] +anyio = "*" +starlette = "*" +uvicorn = "*" + +[package.extras] +examples = ["fastapi"] + +[[package]] +name = "starlette" +version = "0.37.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.8" +files = [ + {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, + {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" + +[package.extras] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] + +[[package]] +name = "typer" +version = "0.12.3" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +files = [ + {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, + {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.11.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, +] + +[[package]] +name = "ujson" +version = "5.9.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ujson-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ab71bf27b002eaf7d047c54a68e60230fbd5cd9da60de7ca0aa87d0bccead8fa"}, + {file = "ujson-5.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a365eac66f5aa7a7fdf57e5066ada6226700884fc7dce2ba5483538bc16c8c5"}, + {file = "ujson-5.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e015122b337858dba5a3dc3533af2a8fc0410ee9e2374092f6a5b88b182e9fcc"}, + {file = "ujson-5.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:779a2a88c53039bebfbccca934430dabb5c62cc179e09a9c27a322023f363e0d"}, + {file = "ujson-5.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10ca3c41e80509fd9805f7c149068fa8dbee18872bbdc03d7cca928926a358d5"}, + {file = "ujson-5.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4a566e465cb2fcfdf040c2447b7dd9718799d0d90134b37a20dff1e27c0e9096"}, + {file = "ujson-5.9.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f833c529e922577226a05bc25b6a8b3eb6c4fb155b72dd88d33de99d53113124"}, + {file = "ujson-5.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b68a0caab33f359b4cbbc10065c88e3758c9f73a11a65a91f024b2e7a1257106"}, + {file = "ujson-5.9.0-cp310-cp310-win32.whl", hash = "sha256:7cc7e605d2aa6ae6b7321c3ae250d2e050f06082e71ab1a4200b4ae64d25863c"}, + {file = "ujson-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:a6d3f10eb8ccba4316a6b5465b705ed70a06011c6f82418b59278fbc919bef6f"}, + {file = "ujson-5.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b23bbb46334ce51ddb5dded60c662fbf7bb74a37b8f87221c5b0fec1ec6454b"}, + {file = "ujson-5.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6974b3a7c17bbf829e6c3bfdc5823c67922e44ff169851a755eab79a3dd31ec0"}, + {file = "ujson-5.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5964ea916edfe24af1f4cc68488448fbb1ec27a3ddcddc2b236da575c12c8ae"}, + {file = "ujson-5.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ba7cac47dd65ff88571eceeff48bf30ed5eb9c67b34b88cb22869b7aa19600d"}, + {file = "ujson-5.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bbd91a151a8f3358c29355a491e915eb203f607267a25e6ab10531b3b157c5e"}, + {file = "ujson-5.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:829a69d451a49c0de14a9fecb2a2d544a9b2c884c2b542adb243b683a6f15908"}, + {file = "ujson-5.9.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a807ae73c46ad5db161a7e883eec0fbe1bebc6a54890152ccc63072c4884823b"}, + {file = "ujson-5.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8fc2aa18b13d97b3c8ccecdf1a3c405f411a6e96adeee94233058c44ff92617d"}, + {file = "ujson-5.9.0-cp311-cp311-win32.whl", hash = "sha256:70e06849dfeb2548be48fdd3ceb53300640bc8100c379d6e19d78045e9c26120"}, + {file = "ujson-5.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:7309d063cd392811acc49b5016728a5e1b46ab9907d321ebbe1c2156bc3c0b99"}, + {file = "ujson-5.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:20509a8c9f775b3a511e308bbe0b72897ba6b800767a7c90c5cca59d20d7c42c"}, + {file = "ujson-5.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b28407cfe315bd1b34f1ebe65d3bd735d6b36d409b334100be8cdffae2177b2f"}, + {file = "ujson-5.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d302bd17989b6bd90d49bade66943c78f9e3670407dbc53ebcf61271cadc399"}, + {file = "ujson-5.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f21315f51e0db8ee245e33a649dd2d9dce0594522de6f278d62f15f998e050e"}, + {file = "ujson-5.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5635b78b636a54a86fdbf6f027e461aa6c6b948363bdf8d4fbb56a42b7388320"}, + {file = "ujson-5.9.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:82b5a56609f1235d72835ee109163c7041b30920d70fe7dac9176c64df87c164"}, + {file = "ujson-5.9.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5ca35f484622fd208f55041b042d9d94f3b2c9c5add4e9af5ee9946d2d30db01"}, + {file = "ujson-5.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:829b824953ebad76d46e4ae709e940bb229e8999e40881338b3cc94c771b876c"}, + {file = "ujson-5.9.0-cp312-cp312-win32.whl", hash = "sha256:25fa46e4ff0a2deecbcf7100af3a5d70090b461906f2299506485ff31d9ec437"}, + {file = "ujson-5.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:60718f1720a61560618eff3b56fd517d107518d3c0160ca7a5a66ac949c6cf1c"}, + {file = "ujson-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d581db9db9e41d8ea0b2705c90518ba623cbdc74f8d644d7eb0d107be0d85d9c"}, + {file = "ujson-5.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ff741a5b4be2d08fceaab681c9d4bc89abf3c9db600ab435e20b9b6d4dfef12e"}, + {file = "ujson-5.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdcb02cabcb1e44381221840a7af04433c1dc3297af76fde924a50c3054c708c"}, + {file = "ujson-5.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e208d3bf02c6963e6ef7324dadf1d73239fb7008491fdf523208f60be6437402"}, + {file = "ujson-5.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4b3917296630a075e04d3d07601ce2a176479c23af838b6cf90a2d6b39b0d95"}, + {file = "ujson-5.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0c4d6adb2c7bb9eb7c71ad6f6f612e13b264942e841f8cc3314a21a289a76c4e"}, + {file = "ujson-5.9.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0b159efece9ab5c01f70b9d10bbb77241ce111a45bc8d21a44c219a2aec8ddfd"}, + {file = "ujson-5.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0cb4a7814940ddd6619bdce6be637a4b37a8c4760de9373bac54bb7b229698b"}, + {file = "ujson-5.9.0-cp38-cp38-win32.whl", hash = "sha256:dc80f0f5abf33bd7099f7ac94ab1206730a3c0a2d17549911ed2cb6b7aa36d2d"}, + {file = "ujson-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:506a45e5fcbb2d46f1a51fead991c39529fc3737c0f5d47c9b4a1d762578fc30"}, + {file = "ujson-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0fd2eba664a22447102062814bd13e63c6130540222c0aa620701dd01f4be81"}, + {file = "ujson-5.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bdf7fc21a03bafe4ba208dafa84ae38e04e5d36c0e1c746726edf5392e9f9f36"}, + {file = "ujson-5.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2f909bc08ce01f122fd9c24bc6f9876aa087188dfaf3c4116fe6e4daf7e194f"}, + {file = "ujson-5.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd4ea86c2afd41429751d22a3ccd03311c067bd6aeee2d054f83f97e41e11d8f"}, + {file = "ujson-5.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:63fb2e6599d96fdffdb553af0ed3f76b85fda63281063f1cb5b1141a6fcd0617"}, + {file = "ujson-5.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:32bba5870c8fa2a97f4a68f6401038d3f1922e66c34280d710af00b14a3ca562"}, + {file = "ujson-5.9.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:37ef92e42535a81bf72179d0e252c9af42a4ed966dc6be6967ebfb929a87bc60"}, + {file = "ujson-5.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f69f16b8f1c69da00e38dc5f2d08a86b0e781d0ad3e4cc6a13ea033a439c4844"}, + {file = "ujson-5.9.0-cp39-cp39-win32.whl", hash = "sha256:3382a3ce0ccc0558b1c1668950008cece9bf463ebb17463ebf6a8bfc060dae34"}, + {file = "ujson-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:6adef377ed583477cf005b58c3025051b5faa6b8cc25876e594afbb772578f21"}, + {file = "ujson-5.9.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ffdfebd819f492e48e4f31c97cb593b9c1a8251933d8f8972e81697f00326ff1"}, + {file = "ujson-5.9.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4eec2ddc046360d087cf35659c7ba0cbd101f32035e19047013162274e71fcf"}, + {file = "ujson-5.9.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbb90aa5c23cb3d4b803c12aa220d26778c31b6e4b7a13a1f49971f6c7d088e"}, + {file = "ujson-5.9.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0823cb70866f0d6a4ad48d998dd338dce7314598721bc1b7986d054d782dfd"}, + {file = "ujson-5.9.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4e35d7885ed612feb6b3dd1b7de28e89baaba4011ecdf995e88be9ac614765e9"}, + {file = "ujson-5.9.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b048aa93eace8571eedbd67b3766623e7f0acbf08ee291bef7d8106210432427"}, + {file = "ujson-5.9.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:323279e68c195110ef85cbe5edce885219e3d4a48705448720ad925d88c9f851"}, + {file = "ujson-5.9.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9ac92d86ff34296f881e12aa955f7014d276895e0e4e868ba7fddebbde38e378"}, + {file = "ujson-5.9.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6eecbd09b316cea1fd929b1e25f70382917542ab11b692cb46ec9b0a26c7427f"}, + {file = "ujson-5.9.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:473fb8dff1d58f49912323d7cb0859df5585cfc932e4b9c053bf8cf7f2d7c5c4"}, + {file = "ujson-5.9.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f91719c6abafe429c1a144cfe27883eace9fb1c09a9c5ef1bcb3ae80a3076a4e"}, + {file = "ujson-5.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b1c0991c4fe256f5fdb19758f7eac7f47caac29a6c57d0de16a19048eb86bad"}, + {file = "ujson-5.9.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a8ea0f55a1396708e564595aaa6696c0d8af532340f477162ff6927ecc46e21"}, + {file = "ujson-5.9.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:07e0cfdde5fd91f54cd2d7ffb3482c8ff1bf558abf32a8b953a5d169575ae1cd"}, + {file = "ujson-5.9.0.tar.gz", hash = "sha256:89cc92e73d5501b8a7f48575eeb14ad27156ad092c2e9fc7e3cf949f07e75532"}, +] + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.29.0" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.29.0-py3-none-any.whl", hash = "sha256:2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de"}, + {file = "uvicorn-0.29.0.tar.gz", hash = "sha256:6a69214c0b6a087462412670b3ef21224fa48cae0e452b5883e8e8bdfdd11dd0"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.19.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de4313d7f575474c8f5a12e163f6d89c0a878bc49219641d49e6f1444369a90e"}, + {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5588bd21cf1fcf06bded085f37e43ce0e00424197e7c10e77afd4bbefffef428"}, + {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b1fd71c3843327f3bbc3237bedcdb6504fd50368ab3e04d0410e52ec293f5b8"}, + {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a05128d315e2912791de6088c34136bfcdd0c7cbc1cf85fd6fd1bb321b7c849"}, + {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cd81bdc2b8219cb4b2556eea39d2e36bfa375a2dd021404f90a62e44efaaf957"}, + {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f17766fb6da94135526273080f3455a112f82570b2ee5daa64d682387fe0dcd"}, + {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4ce6b0af8f2729a02a5d1575feacb2a94fc7b2e983868b009d51c9a9d2149bef"}, + {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:31e672bb38b45abc4f26e273be83b72a0d28d074d5b370fc4dcf4c4eb15417d2"}, + {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:570fc0ed613883d8d30ee40397b79207eedd2624891692471808a95069a007c1"}, + {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5138821e40b0c3e6c9478643b4660bd44372ae1e16a322b8fc07478f92684e24"}, + {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:91ab01c6cd00e39cde50173ba4ec68a1e578fee9279ba64f5221810a9e786533"}, + {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:47bf3e9312f63684efe283f7342afb414eea4d3011542155c7e625cd799c3b12"}, + {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:da8435a3bd498419ee8c13c34b89b5005130a476bda1d6ca8cfdde3de35cd650"}, + {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:02506dc23a5d90e04d4f65c7791e65cf44bd91b37f24cfc3ef6cf2aff05dc7ec"}, + {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2693049be9d36fef81741fddb3f441673ba12a34a704e7b4361efb75cf30befc"}, + {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7010271303961c6f0fe37731004335401eb9075a12680738731e9c92ddd96ad6"}, + {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5daa304d2161d2918fa9a17d5635099a2f78ae5b5960e742b2fcfbb7aefaa593"}, + {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7207272c9520203fea9b93843bb775d03e1cf88a80a936ce760f60bb5add92f3"}, + {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:78ab247f0b5671cc887c31d33f9b3abfb88d2614b84e4303f1a63b46c046c8bd"}, + {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:472d61143059c84947aa8bb74eabbace30d577a03a1805b77933d6bd13ddebbd"}, + {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45bf4c24c19fb8a50902ae37c5de50da81de4922af65baf760f7c0c42e1088be"}, + {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271718e26b3e17906b28b67314c45d19106112067205119dddbd834c2b7ce797"}, + {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:34175c9fd2a4bc3adc1380e1261f60306344e3407c20a4d684fd5f3be010fa3d"}, + {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e27f100e1ff17f6feeb1f33968bc185bf8ce41ca557deee9d9bbbffeb72030b7"}, + {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13dfdf492af0aa0a0edf66807d2b465607d11c4fa48f4a1fd41cbea5b18e8e8b"}, + {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e3d4e85ac060e2342ff85e90d0c04157acb210b9ce508e784a944f852a40e67"}, + {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca4956c9ab567d87d59d49fa3704cf29e37109ad348f2d5223c9bf761a332e7"}, + {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f467a5fd23b4fc43ed86342641f3936a68ded707f4627622fa3f82a120e18256"}, + {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:492e2c32c2af3f971473bc22f086513cedfc66a130756145a931a90c3958cb17"}, + {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2df95fca285a9f5bfe730e51945ffe2fa71ccbfdde3b0da5772b4ee4f2e770d5"}, + {file = "uvloop-0.19.0.tar.gz", hash = "sha256:0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51aedd0fd"}, +] + +[package.extras] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "virtualenv" +version = "20.26.1" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.26.1-py3-none-any.whl", hash = "sha256:7aa9982a728ae5892558bff6a2839c00b9ed145523ece2274fad6f414690ae75"}, + {file = "virtualenv-20.26.1.tar.gz", hash = "sha256:604bfdceaeece392802e6ae48e69cec49168b9c5f4a44e483963f9242eb0e78b"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "watchfiles" +version = "0.21.0" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "watchfiles-0.21.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:27b4035013f1ea49c6c0b42d983133b136637a527e48c132d368eb19bf1ac6aa"}, + {file = "watchfiles-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c81818595eff6e92535ff32825f31c116f867f64ff8cdf6562cd1d6b2e1e8f3e"}, + {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6c107ea3cf2bd07199d66f156e3ea756d1b84dfd43b542b2d870b77868c98c03"}, + {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d9ac347653ebd95839a7c607608703b20bc07e577e870d824fa4801bc1cb124"}, + {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5eb86c6acb498208e7663ca22dbe68ca2cf42ab5bf1c776670a50919a56e64ab"}, + {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f564bf68404144ea6b87a78a3f910cc8de216c6b12a4cf0b27718bf4ec38d303"}, + {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d0f32ebfaa9c6011f8454994f86108c2eb9c79b8b7de00b36d558cadcedaa3d"}, + {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6d45d9b699ecbac6c7bd8e0a2609767491540403610962968d258fd6405c17c"}, + {file = "watchfiles-0.21.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:aff06b2cac3ef4616e26ba17a9c250c1fe9dd8a5d907d0193f84c499b1b6e6a9"}, + {file = "watchfiles-0.21.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d9792dff410f266051025ecfaa927078b94cc7478954b06796a9756ccc7e14a9"}, + {file = "watchfiles-0.21.0-cp310-none-win32.whl", hash = "sha256:214cee7f9e09150d4fb42e24919a1e74d8c9b8a9306ed1474ecaddcd5479c293"}, + {file = "watchfiles-0.21.0-cp310-none-win_amd64.whl", hash = "sha256:1ad7247d79f9f55bb25ab1778fd47f32d70cf36053941f07de0b7c4e96b5d235"}, + {file = "watchfiles-0.21.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:668c265d90de8ae914f860d3eeb164534ba2e836811f91fecc7050416ee70aa7"}, + {file = "watchfiles-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a23092a992e61c3a6a70f350a56db7197242f3490da9c87b500f389b2d01eef"}, + {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e7941bbcfdded9c26b0bf720cb7e6fd803d95a55d2c14b4bd1f6a2772230c586"}, + {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11cd0c3100e2233e9c53106265da31d574355c288e15259c0d40a4405cbae317"}, + {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78f30cbe8b2ce770160d3c08cff01b2ae9306fe66ce899b73f0409dc1846c1b"}, + {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6674b00b9756b0af620aa2a3346b01f8e2a3dc729d25617e1b89cf6af4a54eb1"}, + {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd7ac678b92b29ba630d8c842d8ad6c555abda1b9ef044d6cc092dacbfc9719d"}, + {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c873345680c1b87f1e09e0eaf8cf6c891b9851d8b4d3645e7efe2ec20a20cc7"}, + {file = "watchfiles-0.21.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49f56e6ecc2503e7dbe233fa328b2be1a7797d31548e7a193237dcdf1ad0eee0"}, + {file = "watchfiles-0.21.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:02d91cbac553a3ad141db016e3350b03184deaafeba09b9d6439826ee594b365"}, + {file = "watchfiles-0.21.0-cp311-none-win32.whl", hash = "sha256:ebe684d7d26239e23d102a2bad2a358dedf18e462e8808778703427d1f584400"}, + {file = "watchfiles-0.21.0-cp311-none-win_amd64.whl", hash = "sha256:4566006aa44cb0d21b8ab53baf4b9c667a0ed23efe4aaad8c227bfba0bf15cbe"}, + {file = "watchfiles-0.21.0-cp311-none-win_arm64.whl", hash = "sha256:c550a56bf209a3d987d5a975cdf2063b3389a5d16caf29db4bdddeae49f22078"}, + {file = "watchfiles-0.21.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:51ddac60b96a42c15d24fbdc7a4bfcd02b5a29c047b7f8bf63d3f6f5a860949a"}, + {file = "watchfiles-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:511f0b034120cd1989932bf1e9081aa9fb00f1f949fbd2d9cab6264916ae89b1"}, + {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cfb92d49dbb95ec7a07511bc9efb0faff8fe24ef3805662b8d6808ba8409a71a"}, + {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f92944efc564867bbf841c823c8b71bb0be75e06b8ce45c084b46411475a915"}, + {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:642d66b75eda909fd1112d35c53816d59789a4b38c141a96d62f50a3ef9b3360"}, + {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d23bcd6c8eaa6324fe109d8cac01b41fe9a54b8c498af9ce464c1aeeb99903d6"}, + {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18d5b4da8cf3e41895b34e8c37d13c9ed294954907929aacd95153508d5d89d7"}, + {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b8d1eae0f65441963d805f766c7e9cd092f91e0c600c820c764a4ff71a0764c"}, + {file = "watchfiles-0.21.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1fd9a5205139f3c6bb60d11f6072e0552f0a20b712c85f43d42342d162be1235"}, + {file = "watchfiles-0.21.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a1e3014a625bcf107fbf38eece0e47fa0190e52e45dc6eee5a8265ddc6dc5ea7"}, + {file = "watchfiles-0.21.0-cp312-none-win32.whl", hash = "sha256:9d09869f2c5a6f2d9df50ce3064b3391d3ecb6dced708ad64467b9e4f2c9bef3"}, + {file = "watchfiles-0.21.0-cp312-none-win_amd64.whl", hash = "sha256:18722b50783b5e30a18a8a5db3006bab146d2b705c92eb9a94f78c72beb94094"}, + {file = "watchfiles-0.21.0-cp312-none-win_arm64.whl", hash = "sha256:a3b9bec9579a15fb3ca2d9878deae789df72f2b0fdaf90ad49ee389cad5edab6"}, + {file = "watchfiles-0.21.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:4ea10a29aa5de67de02256a28d1bf53d21322295cb00bd2d57fcd19b850ebd99"}, + {file = "watchfiles-0.21.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:40bca549fdc929b470dd1dbfcb47b3295cb46a6d2c90e50588b0a1b3bd98f429"}, + {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9b37a7ba223b2f26122c148bb8d09a9ff312afca998c48c725ff5a0a632145f7"}, + {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec8c8900dc5c83650a63dd48c4d1d245343f904c4b64b48798c67a3767d7e165"}, + {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8ad3fe0a3567c2f0f629d800409cd528cb6251da12e81a1f765e5c5345fd0137"}, + {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d353c4cfda586db2a176ce42c88f2fc31ec25e50212650c89fdd0f560ee507b"}, + {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:83a696da8922314ff2aec02987eefb03784f473281d740bf9170181829133765"}, + {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a03651352fc20975ee2a707cd2d74a386cd303cc688f407296064ad1e6d1562"}, + {file = "watchfiles-0.21.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3ad692bc7792be8c32918c699638b660c0de078a6cbe464c46e1340dadb94c19"}, + {file = "watchfiles-0.21.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06247538e8253975bdb328e7683f8515ff5ff041f43be6c40bff62d989b7d0b0"}, + {file = "watchfiles-0.21.0-cp38-none-win32.whl", hash = "sha256:9a0aa47f94ea9a0b39dd30850b0adf2e1cd32a8b4f9c7aa443d852aacf9ca214"}, + {file = "watchfiles-0.21.0-cp38-none-win_amd64.whl", hash = "sha256:8d5f400326840934e3507701f9f7269247f7c026d1b6cfd49477d2be0933cfca"}, + {file = "watchfiles-0.21.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:7f762a1a85a12cc3484f77eee7be87b10f8c50b0b787bb02f4e357403cad0c0e"}, + {file = "watchfiles-0.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6e9be3ef84e2bb9710f3f777accce25556f4a71e15d2b73223788d528fcc2052"}, + {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4c48a10d17571d1275701e14a601e36959ffada3add8cdbc9e5061a6e3579a5d"}, + {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c889025f59884423428c261f212e04d438de865beda0b1e1babab85ef4c0f01"}, + {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:66fac0c238ab9a2e72d026b5fb91cb902c146202bbd29a9a1a44e8db7b710b6f"}, + {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a21f71885aa2744719459951819e7bf5a906a6448a6b2bbce8e9cc9f2c8128"}, + {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c9198c989f47898b2c22201756f73249de3748e0fc9de44adaf54a8b259cc0c"}, + {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f57c4461cd24fda22493109c45b3980863c58a25b8bec885ca8bea6b8d4b28"}, + {file = "watchfiles-0.21.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:853853cbf7bf9408b404754b92512ebe3e3a83587503d766d23e6bf83d092ee6"}, + {file = "watchfiles-0.21.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d5b1dc0e708fad9f92c296ab2f948af403bf201db8fb2eb4c8179db143732e49"}, + {file = "watchfiles-0.21.0-cp39-none-win32.whl", hash = "sha256:59137c0c6826bd56c710d1d2bda81553b5e6b7c84d5a676747d80caf0409ad94"}, + {file = "watchfiles-0.21.0-cp39-none-win_amd64.whl", hash = "sha256:6cb8fdc044909e2078c248986f2fc76f911f72b51ea4a4fbbf472e01d14faa58"}, + {file = "watchfiles-0.21.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:ab03a90b305d2588e8352168e8c5a1520b721d2d367f31e9332c4235b30b8994"}, + {file = "watchfiles-0.21.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:927c589500f9f41e370b0125c12ac9e7d3a2fd166b89e9ee2828b3dda20bfe6f"}, + {file = "watchfiles-0.21.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd467213195e76f838caf2c28cd65e58302d0254e636e7c0fca81efa4a2e62c"}, + {file = "watchfiles-0.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02b73130687bc3f6bb79d8a170959042eb56eb3a42df3671c79b428cd73f17cc"}, + {file = "watchfiles-0.21.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:08dca260e85ffae975448e344834d765983237ad6dc308231aa16e7933db763e"}, + {file = "watchfiles-0.21.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:3ccceb50c611c433145502735e0370877cced72a6c70fd2410238bcbc7fe51d8"}, + {file = "watchfiles-0.21.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57d430f5fb63fea141ab71ca9c064e80de3a20b427ca2febcbfcef70ff0ce895"}, + {file = "watchfiles-0.21.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dd5fad9b9c0dd89904bbdea978ce89a2b692a7ee8a0ce19b940e538c88a809c"}, + {file = "watchfiles-0.21.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:be6dd5d52b73018b21adc1c5d28ac0c68184a64769052dfeb0c5d9998e7f56a2"}, + {file = "watchfiles-0.21.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b3cab0e06143768499384a8a5efb9c4dc53e19382952859e4802f294214f36ec"}, + {file = "watchfiles-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6ed10c2497e5fedadf61e465b3ca12a19f96004c15dcffe4bd442ebadc2d85"}, + {file = "watchfiles-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43babacef21c519bc6631c5fce2a61eccdfc011b4bcb9047255e9620732c8097"}, + {file = "watchfiles-0.21.0.tar.gz", hash = "sha256:c76c635fabf542bb78524905718c39f736a98e5ab25b23ec6d4abede1a85a6a3"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "12.0" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, + {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, + {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, + {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, + {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, + {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, + {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, + {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, + {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, + {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, + {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, + {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, + {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, + {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, + {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, + {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, + {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, + {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, + {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, + {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, + {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, + {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, + {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, + {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, + {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, +] + +[[package]] +name = "wsproto" +version = "1.2.0" +description = "WebSockets state-machine based protocol implementation" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"}, + {file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"}, +] + +[package.dependencies] +h11 = ">=0.9.0,<1" + +[metadata] +lock-version = "2.0" +python-versions = "^3.12" +content-hash = "96997eb9e3fe82921149cb6882fc2568a16cc661ecd400fffb1177bfa5093ba3" diff --git a/pyproject.toml b/pyproject.toml index d3d66f2..d366e73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,34 @@ -[project] -name = "FuturamaAPI" -requires-python = ">= 3.12" - -[tool.pytest.ini_options] -addopts = "-ra -p configs.plugins.env_vars" -pythonpath = [ - "." -] +[tool.poetry] +name = "futuramaapi" +version = "0.1.0" +description = "Inspired REST and GraphQL API based on TV show Futurama" +authors = ["Ivan Koldakov "] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.12" +fastapi = "^0.111.0" +hypercorn = {extras = ["uvloop"], version = "^0.16.0"} +sqlalchemy = "^2.0.29" +pydantic-settings = "^2.2.1" +alembic = "^1.13.1" +pydantic = {extras = ["email"], version = "^2.7.1"} +fastapi-storages = "^0.3.0" +asyncpg = "^0.29.0" +pillow = "^10.3.0" +fastapi-pagination = "^0.12.24" +anyio = "^4.3.0" +sse-starlette = "^2.1.0" + +[tool.poetry.group.dev.dependencies] +pre-commit = "^3.7.0" + +[tool.poetry.group.test.dependencies] +pytest = "^8.2.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" [tool.ruff] # Exclude a variety of commonly ignored directories. @@ -42,7 +64,7 @@ exclude = [ fix = true show-fixes = true -show-source = true +output-format = "full" line-length = 120 indent-width = 4 @@ -111,7 +133,7 @@ line-ending = "auto" # enabled. # docstring-code-line-length = "dynamic" -[tool.ruff.mccabe] +[tool.ruff.lint.mccabe] max-complexity = 10 [tool.ruff.lint.extend-per-file-ignores] @@ -125,7 +147,6 @@ follow_imports = "skip" ignore_missing_imports = true check_untyped_defs = true files = [ - "app", - "alembic", - "configs", + "futuramaapi", + "tests", ] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index bea8587..0000000 --- a/requirements.txt +++ /dev/null @@ -1,72 +0,0 @@ -aiosmtplib==2.0.2 -alembic==1.12.1 -annotated-types==0.6.0 -anyio==3.7.1 -asyncpg==0.29.0 -Babel==2.13.1 -blinker==1.7.0 -boto3==1.33.10 -botocore==1.33.10 -certifi==2023.11.17 -cffi==1.16.0 -cfgv==3.4.0 -click==8.1.7 -cryptography==42.0.4 -distlib==0.3.7 -dnspython==2.5.0 -ecdsa==0.18.0 -email-validator==2.1.0.post1 -fastapi==0.109.2 -fastapi-mail==1.4.1 -fastapi-pagination==0.12.13 -fastapi-storages==0.2.1 -filelock==3.13.1 -graphql-core==3.2.3 -greenlet==3.0.1 -h11==0.14.0 -h2==4.1.0 -hpack==4.0.0 -httpcore==0.16.3 -httpx==0.23.3 -Hypercorn==0.15.0 -hyperframe==6.0.1 -identify==2.5.32 -idna==3.4 -iniconfig==2.0.0 -Jinja2==3.1.3 -jmespath==1.0.1 -Mako==1.3.0 -MarkupSafe==2.1.3 -nodeenv==1.8.0 -packaging==23.2 -pillow==10.2.0 -platformdirs==4.0.0 -pluggy==1.3.0 -pre-commit==3.5.0 -priority==2.0.0 -pyasn1==0.5.1 -pycparser==2.21 -pydantic==2.5.1 -pydantic-settings==2.1.0 -pydantic_core==2.14.3 -pytest==7.4.3 -python-dateutil==2.8.2 -python-dotenv==1.0.1 -python-jose==3.3.0 -python-multipart==0.0.9 -PyYAML==6.0.1 -rfc3986==1.5.0 -rsa==4.9 -s3transfer==0.8.2 -setuptools==69.0.2 -six==1.16.0 -sniffio==1.3.0 -SQLAlchemy==2.0.23 -sse-starlette==1.8.2 -starlette==0.36.3 -strawberry-graphql==0.217.1 -typing_extensions==4.8.0 -urllib3==2.0.7 -uvloop==0.19.0 -virtualenv==20.24.7 -wsproto==1.2.0 diff --git a/static/intro-image.jpg b/static/intro-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..07d63e31a4d41cd3e2877eca74e1091d075fbee0 GIT binary patch literal 701095 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 z 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 HJ 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

yaz&3Q7 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

)^Qk2EUJ7r& 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%0A#GI4UDYi-4_JFp6l) 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ਭ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 -

{{ _("FB00012") }}

-

{{ _("What is this?") }}

-

- {% trans %} - Welcome to - Hulurama, a REST API and GraphQL API dedicated to celebrating the iconic TV show Futurama. - Created with the intention of providing a learning playground for enthusiasts like you, - FuturamaAPI opens the door for exploration and experimentation with new technologies. - Dive into the world of Futurama, study, and try out the latest in web development. - {% endtrans %} -

-

- {{ _("Check our") }} - {{ _("documentation") }} {{ _("to get started.") }} -

-

{{ _("Key Features") }}

- {% trans %} -
-

Comprehensive Access

-

- Explore detailed information about characters, seasons, episodes, and more. -

-

Real-time Updates

-

- Experience the excitement of Server Sent Events (SSE) as FuturamaAPI - keeps you in the loop with the latest happenings. -

-

Documentation

-

Get started quickly by checking out our documentation for a seamless learning experience.

-
- {% endtrans %} -

{{ _("Why?") }}

- {% trans %} -

- FuturamaAPI was born out of the idea that even lesser-known TV shows deserve dedicated projects. - It's a space to have fun with Futurama and simultaneously push the boundaries of technology. - Embrace the challenge and discover the possibilities with FastAPI, SSE, WebSockets, GraphQL, Hypercorn, - HTTP/2.0, and more. -

- {% endtrans %} -

{{ _("Technical Stack?") }}

- {% trans %} -

Futurama is powered by a robust technical stack, including

-
    -
  • Python
  • -
  • FastAPI
  • -
  • Docker
  • -
  • Hypercorn
  • -
  • PostgreSQL + SQLAlchemy (async)
  • -
  • Alembic for Migrations
  • -
  • Strawberry for GraphQL
  • -
- {% endtrans %} -

{{ _("Can I contribute?") }}

- {% trans %} -

- Absolutely! Feel free to contribute to the project. - Here is the link to get started. - Whether you're a seasoned developer or just starting, your contributions are valuable. -

- {% endtrans %} -

{{ _("Design?") }}

- {% trans %} -

- Admittedly, design is not my strong suit. If you have HTML skills and a passion for design, - please consider creating a - pull request for this project. - Any help is greatly appreciated. -

- {% endtrans %} -

{{ _("Who are you?") }}

- {% trans %} -

- I'm Ivan Koldakov, - a Python developer and enthusiast. - Connect with me on LinkedIn - to stay in the loop and share your thoughts. -

- {% endtrans %} - -{% endblock %} diff --git a/templates/base.html b/templates/base.html deleted file mode 100644 index d102ec3..0000000 --- a/templates/base.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - {% block titile %}{{ _("FB00002") }}{% endblock %} | {{ _("FB00001") }} - - - {% block extra_styles %}{% endblock %} - - -
- -
-
- {% block main_info %} -
-

- {{ _( "FB00001" ) }} -

-
- -
- {{ _("Join our community today! Already, %(user_count)s have registered, and we're excited to welcome even more members.")|format(user_count=user_count) }} -
-
-
- {% endblock %} - {% block main_content %}{% endblock %} -
-
-
- - {% block extra_scripts %}{% endblock %} - - diff --git a/templates/emails/confirmation.html b/templates/emails/confirmation.html deleted file mode 100644 index 36136da..0000000 --- a/templates/emails/confirmation.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - Email Confirmation - - - - - - - - - - - - - - - - -
- - - - - -
-

Hello {{ user.name }} {{ user.surname }},

-
- -
- - - - - - - - - - - -
-

- Tap the button below to confirm your email address. -

-

- URL will be active for 72 hours. -

-
- - - - -
- - - - -
- - Activate your account - -
-
-
-

If that doesn't work for any reason, copy and paste the following link in your browser:

-

- {{ url }} -

-
- -
- - - - - -
-

- This email was sent by FuturamaAPI. - If you haven't registered at FuturamaAPI, just ignore this email. -

-
- -
- - diff --git a/templates/index.html b/templates/index.html deleted file mode 100644 index 9183ead..0000000 --- a/templates/index.html +++ /dev/null @@ -1,64 +0,0 @@ -{% extends "base.html" %} - -{% set active_page = "index" %} - -{% block main_content %} -
-
-
- {% for character in characters %} -
-
- {{ character.name }} -
-

- {{ _("FB00004") }}: {{ character.gender.value|capitalize }}. -
- {{ _("FB00005") }}: {{ character.status.value|capitalize }}. -

-
- - - {{ character.name }} - -
-
-
-
- {% endfor %} -
-
-
-{% endblock %} diff --git a/app/routers/__init__.py b/tests/unit/__init__.py similarity index 100% rename from app/routers/__init__.py rename to tests/unit/__init__.py diff --git a/app/services/__init__.py b/tests/unit/repositories/__init__.py similarity index 100% rename from app/services/__init__.py rename to tests/unit/repositories/__init__.py