From d4e736d6a8841e3ce31c45bf768e1530a60429c9 Mon Sep 17 00:00:00 2001 From: Ayrelia Date: Thu, 25 Jul 2024 15:19:15 +0300 Subject: [PATCH] upd --- .env.example | 12 + .gitignore | 133 ++ Dockerfile | 24 + bot/__init__.py | 6 + bot/__main__.py | 95 + bot/config.py | 52 + bot/db/__init__.py | 0 bot/db/db.py | 13 + bot/db/models.py | 89 + bot/filters/filtersbot.py | 37 + bot/handlers/__init__.py | 4 + bot/handlers/admin.py | 27 + bot/handlers/user.py | 154 ++ bot/markups/adminmarkup.py | 31 + bot/markups/markup.py | 175 ++ bot/middlewares/__init__.py | 28 + bot/middlewares/check_ban.py | 25 + bot/middlewares/create_user.py | 30 + bot/middlewares/edit_callback.py | 22 + bot/middlewares/throttling.py | 30 + bot/sql_function.py | 122 + bot/states/adminstates.py | 4 + bot/states/states.py | 6 + docker-compose.yml | 43 + files/pg_hba.conf | 1 + files/postgresql.conf | 2 + nginx/nginx.conf | 23 + poetry.lock | 2025 +++++++++++++++++ pyproject.toml | 28 + requirements.txt | Bin 0 -> 808 bytes webadmin/__main__.py | 81 + webadmin/config.py | 48 + webadmin/db/crud.py | 206 ++ webadmin/db/db.py | 25 + webadmin/db/models.py | 38 + webadmin/exc.py | 15 + webadmin/function.py | 81 + webadmin/models.py | 28 + webadmin/routers/__init__.py | 5 + webadmin/routers/auth_router.py | 68 + webadmin/routers/otdels_router.py | 298 +++ webadmin/routers/user_router.py | 136 ++ webadmin/schemas.py | 33 + webadmin/static/css/common.css | 34 + webadmin/static/css/modal.css | 136 ++ webadmin/static/css/otdels.css | 177 ++ webadmin/static/css/questions.css | 231 ++ webadmin/static/css/styles.css | 394 ++++ webadmin/static/css/users.css | 161 ++ webadmin/static/favicon.png | Bin 0 -> 1685 bytes webadmin/static/js/otdels.js | 143 ++ webadmin/static/js/questions.js | 201 ++ webadmin/static/js/scripts.js | 35 + webadmin/static/js/time.js | 39 + webadmin/static/js/users.js | 125 + webadmin/templates/base.html | 141 ++ webadmin/templates/index.html | 14 + webadmin/templates/login.html | 22 + webadmin/templates/otdels.html | 41 + webadmin/templates/pagination.html | 27 + webadmin/templates/profile.html | 16 + webadmin/templates/questions.html | 57 + webadmin/templates/register.html | 24 + webadmin/templates/users.html | 46 + .../123_5e327b983b3a4613b754daee7a82861e.docx | Bin 0 -> 11683 bytes ...xDHP8_284afaa09e864e3eb26e3425ebb02e60.jpg | Bin 0 -> 208285 bytes .../900_908dca7b1ea546998e07594abc709b17.jpg | Bin 0 -> 170611 bytes .../900_dd9bb24d2f4d4ec089795e4182da7a07.jpg | Bin 0 -> 170611 bytes ...t_d0dbea5b90474c4981a769657d6339f1.service | 16 + 69 files changed, 6383 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 bot/__init__.py create mode 100644 bot/__main__.py create mode 100644 bot/config.py create mode 100644 bot/db/__init__.py create mode 100644 bot/db/db.py create mode 100644 bot/db/models.py create mode 100644 bot/filters/filtersbot.py create mode 100644 bot/handlers/__init__.py create mode 100644 bot/handlers/admin.py create mode 100644 bot/handlers/user.py create mode 100644 bot/markups/adminmarkup.py create mode 100644 bot/markups/markup.py create mode 100644 bot/middlewares/__init__.py create mode 100644 bot/middlewares/check_ban.py create mode 100644 bot/middlewares/create_user.py create mode 100644 bot/middlewares/edit_callback.py create mode 100644 bot/middlewares/throttling.py create mode 100644 bot/sql_function.py create mode 100644 bot/states/adminstates.py create mode 100644 bot/states/states.py create mode 100644 docker-compose.yml create mode 100644 files/pg_hba.conf create mode 100644 files/postgresql.conf create mode 100644 nginx/nginx.conf create mode 100644 poetry.lock create mode 100644 pyproject.toml create mode 100644 requirements.txt create mode 100644 webadmin/__main__.py create mode 100644 webadmin/config.py create mode 100644 webadmin/db/crud.py create mode 100644 webadmin/db/db.py create mode 100644 webadmin/db/models.py create mode 100644 webadmin/exc.py create mode 100644 webadmin/function.py create mode 100644 webadmin/models.py create mode 100644 webadmin/routers/__init__.py create mode 100644 webadmin/routers/auth_router.py create mode 100644 webadmin/routers/otdels_router.py create mode 100644 webadmin/routers/user_router.py create mode 100644 webadmin/schemas.py create mode 100644 webadmin/static/css/common.css create mode 100644 webadmin/static/css/modal.css create mode 100644 webadmin/static/css/otdels.css create mode 100644 webadmin/static/css/questions.css create mode 100644 webadmin/static/css/styles.css create mode 100644 webadmin/static/css/users.css create mode 100644 webadmin/static/favicon.png create mode 100644 webadmin/static/js/otdels.js create mode 100644 webadmin/static/js/questions.js create mode 100644 webadmin/static/js/scripts.js create mode 100644 webadmin/static/js/time.js create mode 100644 webadmin/static/js/users.js create mode 100644 webadmin/templates/base.html create mode 100644 webadmin/templates/index.html create mode 100644 webadmin/templates/login.html create mode 100644 webadmin/templates/otdels.html create mode 100644 webadmin/templates/pagination.html create mode 100644 webadmin/templates/profile.html create mode 100644 webadmin/templates/questions.html create mode 100644 webadmin/templates/register.html create mode 100644 webadmin/templates/users.html create mode 100644 webadmin/uploads/123_5e327b983b3a4613b754daee7a82861e.docx create mode 100644 webadmin/uploads/7LEj4mxDHP8_284afaa09e864e3eb26e3425ebb02e60.jpg create mode 100644 webadmin/uploads/900_908dca7b1ea546998e07594abc709b17.jpg create mode 100644 webadmin/uploads/900_dd9bb24d2f4d4ec089795e4182da7a07.jpg create mode 100644 webadmin/uploads/bot_d0dbea5b90474c4981a769657d6339f1.service diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..bed3476 --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +BOT_TOKEN= + +DB_HOST= +DB_LOG= +DB_PASS= +DB_NAME= +DB_PORT= + + +SECRET_KEY_AUTH= + +SESSION_EXPIRATION_TIME= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f68834 --- /dev/null +++ b/.gitignore @@ -0,0 +1,133 @@ +# Custom +*_dev.* +*.sqlite3* + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +# *.mo +# *.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1a589d8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM python:3.9-slim + +# Установка необходимых системных пакетов +RUN apt-get update && apt-get install -y \ + gcc \ + libpq-dev \ + postgresql \ + nginx \ + && rm -rf /var/lib/apt/lists/* + +# Установка зависимостей Python +COPY requirements.txt . +RUN pip install --upgrade pip +RUN pip install --no-cache-dir -r requirements.txt + +# Копирование файлов приложения +COPY . /app +WORKDIR /app + +EXPOSE 80 + + +# Запуск Nginx и вашего приложения +CMD service nginx start && tail -f /dev/null \ No newline at end of file diff --git a/bot/__init__.py b/bot/__init__.py new file mode 100644 index 0000000..0f68496 --- /dev/null +++ b/bot/__init__.py @@ -0,0 +1,6 @@ +__title__ = "bot" +__path__ = __import__("pkgutil").extend_path(__path__, __name__) + +from . import * + +ENCODING = "utf-8-sig" \ No newline at end of file diff --git a/bot/__main__.py b/bot/__main__.py new file mode 100644 index 0000000..3353a47 --- /dev/null +++ b/bot/__main__.py @@ -0,0 +1,95 @@ +from logging.handlers import RotatingFileHandler +import os +from config import dp, logging, bot, Bot, current_directory, root_path +from aiogram.types import BotCommand, BotCommandScopeDefault + +from middlewares import setup +from handlers import routers +import asyncio +from db.models import create_tables +from db.db import engine +from apscheduler.schedulers.asyncio import AsyncIOScheduler + +import sys + + +schedulers = AsyncIOScheduler() + + + + +@dp.startup() +async def start_commands(bot: Bot): + commands = [ + BotCommand( + command='start', + description='🔄 Главное меню' + ) + ] + await bot.set_my_commands(commands, BotCommandScopeDefault()) + + + #schedulers.add_job() 123 + schedulers.start() + + task1 = asyncio.create_task(create_tables()) # создаем базу юзеров если нет + + +@dp.shutdown() +async def dispose(bot: Bot): + schedulers.shutdown() + engine.dispose() + + + + +async def main() -> None: # функция запуска бота + log_dir = '/app/logs' + os.makedirs(log_dir, exist_ok=True) # Создать директорию, если не существует + log_file = os.path.join(log_dir, 'app_bot.log') + + # Создать форматтер + formatter = logging.Formatter('%(asctime)s - [%(levelname)s] - %(name)s - ' + '(%(filename)s).%(funcName)s(%(lineno)d) - %(message)s') + + logging.getLogger("requests").setLevel(logging.WARNING) + logging.getLogger("apscheduler").setLevel(logging.WARNING) + # Настроить основной логгер + logger = logging.getLogger() + logger.setLevel(logging.INFO) + + # Создать обработчик для ротации логов + file_handler = RotatingFileHandler(log_file, maxBytes=10*1024*1024, backupCount=5) + file_handler.setLevel(logging.INFO) + file_handler.setFormatter(formatter) + + # Создать консольный обработчик + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.INFO) + console_handler.setFormatter(formatter) + + # Добавить обработчики к логгеру + logger.addHandler(file_handler) + logger.addHandler(console_handler) + + + + + for router in routers: + dp.include_router(router) # импорт роутеров + + + setup(dp) # мидлвари + try: + await dp.start_polling(bot) # запуск поллинга + except Exception as ex: + print(ex) + + + +if __name__ == "__main__": + if sys.version_info >= (3, 8) and sys.platform.lower().startswith("win"): + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) # устанавливаем политику для лупа если wind + + + asyncio.run(main()) \ No newline at end of file diff --git a/bot/config.py b/bot/config.py new file mode 100644 index 0000000..ab28438 --- /dev/null +++ b/bot/config.py @@ -0,0 +1,52 @@ +from aiogram import Bot, Dispatcher, F, Router +from aiogram.fsm.context import FSMContext +from aiogram.fsm.storage.memory import MemoryStorage +from aiogram.fsm.state import State, StatesGroup +from aiogram.types.input_file import FSInputFile +from aiogram.types import FSInputFile +from aiogram.types import ( + KeyboardButton, + Message, + Update, + CallbackQuery, + ReplyKeyboardMarkup, + ReplyKeyboardRemove, + InlineKeyboardButton, + InlineKeyboardMarkup +) +from aiogram.utils.keyboard import InlineKeyboardBuilder, ReplyKeyboardBuilder +from aiogram.filters.callback_data import CallbackData +from aiogram import types +from aiogram.filters import Filter +import logging +import datetime +import json +import os +from dotenv import load_dotenv +from pydantic_settings import BaseSettings +from pathlib import Path +from aiogram.client.bot import DefaultBotProperties +from aiogram.enums.parse_mode import ParseMode + +load_dotenv() + + +current_directory = os.path.abspath(os.path.dirname(__file__)) +root_path = Path(__file__).parent.parent + + +class Settings(BaseSettings): # создаем settings class + BOT_TOKEN: str = os.getenv("BOT_TOKEN") + + +settings = Settings() + + +dp = Dispatcher(storage=MemoryStorage()) +bot = Bot(settings.BOT_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) + + + + + + diff --git a/bot/db/__init__.py b/bot/db/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bot/db/db.py b/bot/db/db.py new file mode 100644 index 0000000..3f9cafc --- /dev/null +++ b/bot/db/db.py @@ -0,0 +1,13 @@ +from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine +import os + + +sqlalchemy_url = f"postgresql+asyncpg://{os.environ.get('DB_LOG')}:{os.environ.get('DB_PASS')}@{os.environ.get('DB_HOST')}:{os.environ.get('DB_PORT')}/{os.environ.get('DB_NAME')}" + +engine = create_async_engine(sqlalchemy_url) + +async_session = async_sessionmaker(engine) + + + + diff --git a/bot/db/models.py b/bot/db/models.py new file mode 100644 index 0000000..17ac026 --- /dev/null +++ b/bot/db/models.py @@ -0,0 +1,89 @@ +from dataclasses import dataclass +from db.db import engine, async_session + +from sqlalchemy import BigInteger, text, ForeignKey +from sqlalchemy.orm import relationship, Mapped, mapped_column, DeclarativeBase +from sqlalchemy.ext.asyncio import AsyncAttrs +from sqlalchemy import Integer, String, CheckConstraint, UniqueConstraint, Boolean + + + + + +class Base(AsyncAttrs, DeclarativeBase): + pass + +# Модель для таблицы `users` +class UserTg(Base): + __tablename__ = 'users' + + id = mapped_column(Integer, primary_key=True, autoincrement=True) + user_id = mapped_column(String(100), unique=True, index=True) + username = mapped_column(String(100), default=None) # На уровне Python + + status = mapped_column( + String(25), + CheckConstraint("status IN ('user', 'oper', 'admin')"), # Позиционный аргумент перед именованными + default='user', # На уровне Python + server_default='user', # На уровне базы данных + ) + + has_access = mapped_column( + Boolean, + default='False', # На уровне Python + server_default='False', # На уровне базы данных, + nullable=False + ) + + reg_date = mapped_column( + String(50), + server_default=text("CURRENT_TIMESTAMP"), # На уровне базы данных + ) + + ban = mapped_column( + String(25), + CheckConstraint("ban IN ('yes', 'no')"), + default='no', # На уровне Python__annotat__annotations__())ons__()) + server_default='no', # На уровне базы данных + ) + + + + +class Otdels(Base): + __tablename__ = 'otdels' + + id = mapped_column(Integer, primary_key=True, index=True) + name = mapped_column(String) + questions = relationship("Questions", back_populates="otdel", cascade="all, delete-orphan") + +class Questions(Base): + __tablename__ = 'questions' + + id = mapped_column(Integer, primary_key=True, index=True) + name = mapped_column(String) + answer = mapped_column(String) + type_answer = mapped_column(String) + file = mapped_column(String) + otdel_id = mapped_column(Integer, ForeignKey('otdels.id')) + + otdel = relationship("Otdels", back_populates="questions") + + + + +async def create_tables(): + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + +from dataclasses import dataclass + +@dataclass +class UserData: + id: int + user_id: str + username: str + status: str + has_access: str + reg_date: str + ban: str \ No newline at end of file diff --git a/bot/filters/filtersbot.py b/bot/filters/filtersbot.py new file mode 100644 index 0000000..181e4fc --- /dev/null +++ b/bot/filters/filtersbot.py @@ -0,0 +1,37 @@ +from config import CallbackData, Filter +from sql_function import databasework + +class AdminCheck(Filter): # фильтр проверка на админа + async def __call__(self, message) -> bool: + return await databasework.check_admin(message.from_user.id) + + + + +class PageCallback(CallbackData, prefix="page"): + action: str + page: int + + + +class PageCallbackQuestions(CallbackData, prefix="page"): + action: str + page: int + otdel_id: int + +class OtdelsMarkup(CallbackData, prefix="page"): + action: str + id_otdel: int + +class BackToQuestions(CallbackData, prefix="page"): + action: str + id_otdel: int + + +class QuestionsMarkup(CallbackData, prefix="page"): + action: str + id_question: int + id_otdel: int + + + diff --git a/bot/handlers/__init__.py b/bot/handlers/__init__.py new file mode 100644 index 0000000..c15a428 --- /dev/null +++ b/bot/handlers/__init__.py @@ -0,0 +1,4 @@ +from .user import user +from .admin import admin + +routers = (user, admin) \ No newline at end of file diff --git a/bot/handlers/admin.py b/bot/handlers/admin.py new file mode 100644 index 0000000..793b871 --- /dev/null +++ b/bot/handlers/admin.py @@ -0,0 +1,27 @@ +from config import Bot, F, Router, FSInputFile, types, FSMContext, State, bot, CallbackData, FSInputFile +from markups.adminmarkup import * +from sql_function import databasework +from filters import filtersbot + +router = Router() + +router.message.filter(filtersbot.AdminCheck()) # привязываем фильтр к роутеру +router.callback_query.filter(filtersbot.AdminCheck()) # привязываем фильтр к роутеру + + + + + + + +@router.message(F.text == '/admin', F.chat.type == 'private') +async def start(message: types.Message, state: FSMContext): + #photo = FSInputFile('kwork8/photo/start_message.jpg') + await state.clear() + markup = admin_markup() + await message.answer(f'💎 Вы попали в админ-панель', reply_markup=markup) + + + + +admin = router diff --git a/bot/handlers/user.py b/bot/handlers/user.py new file mode 100644 index 0000000..0b0a891 --- /dev/null +++ b/bot/handlers/user.py @@ -0,0 +1,154 @@ +import base64 +from io import BytesIO +from pathlib import Path + +from config import Bot, F, Router, FSInputFile, types, FSMContext, State, bot, CallbackData, FSInputFile, settings +from markups.markup import * +from filters import filtersbot +from sql_function import databasework +from states.states import RequestState +from datetime import timedelta +import datetime +from aiogram.types import Chat +from db.models import UserTg + +from config import current_directory + +# Создайте объект Path из текущего пути +current_path = Path(current_directory) + +# Перейдите на одну папку назад +parent_directory = current_path.parent + +# Добавьте 'uploads' к родительскому пути +UPLOAD_DIRECTORY = parent_directory / "webadmin/uploads" + + + + +router = Router() + + +router.message.filter(filtersbot.AdminCheck()) # привязываем фильтр к роутеру +router.callback_query.filter(filtersbot.AdminCheck()) # привязываем фильтр к роутеру + + + + +# ========= Старт ======== # +@router.message(F.text == '/start', F.chat.type == 'private') +async def start(message: types.Message, state: FSMContext, bot_user: UserTg): + + await state.clear() + markup = start_markup() + await message.answer(f'⭐️ Добро пожаловать в бота, используйте кнопки ниже', reply_markup=markup) + + +# ======= Возвраты назад ===== # +@router.callback_query(filtersbot.BackToQuestions.filter(F.action == 'back')) +async def questions_page_handler(callback: types.CallbackQuery, callback_data: filtersbot.BackToQuestions) -> None: + await bot.delete_message(chat_id=callback.message.chat.id, message_id=callback.message.message_id) + + texts, markup = await questions_markup(callback_data.id_otdel) + + + text_ = '\n'.join(texts) + + await bot.send_message(text=f'⭐️ Выберите нужный вам вопрос\n\n{text_}', chat_id=callback.message.chat.id, reply_markup=markup) + +@router.callback_query(F.data == 'back_to_otdels') +async def back_to_otdels(callback: types.CallbackQuery, state: FSMContext): + + + await state.clear() + markup = await otdels_markup() + await bot.edit_message_text(message_id=callback.message.message_id, chat_id=callback.message.chat.id, text='⭐️ Добро пожаловать в бота, используйте кнопки ниже', reply_markup=markup) + + + +# ========= Пагинация ======== # + +@router.callback_query(filtersbot.PageCallback.filter(F.action == 'otdel')) +async def otdels_page_handler(callback: types.CallbackQuery, callback_data: filtersbot.PageCallback) -> None: + await callback.message.edit_reply_markup( + reply_markup=await otdels_markup(callback_data.page), + ) + await callback.answer() + + +@router.callback_query(filtersbot.PageCallbackQuestions.filter(F.action == 'question')) +async def questions_page_handler(callback: types.CallbackQuery, callback_data: filtersbot.PageCallbackQuestions) -> None: + texts, markup = await questions_markup(callback_data.otdel_id, callback_data.page) + + text_ = '\n'.join(texts) + + await callback.message.edit_text( + text=f'⭐️ Выберите нужный вам вопрос\n\n{text_}', + reply_markup=markup, + ) + await callback.answer() + + + +# ========= Меню ======== # +@router.callback_query(F.data == 'main_menu') +async def go_main(callback: types.CallbackQuery, state: FSMContext): + + + await state.clear() + markup = start_markup() + await bot.edit_message_text(message_id=callback.message.message_id, chat_id=callback.message.chat.id, text='⭐️ Добро пожаловать в бота, используйте кнопки ниже', reply_markup=markup) + + + + + +# ============ Отделы ========== # +@router.callback_query(F.data.in_(['pizza', 'ebi'])) +async def otdels(callback: types.CallbackQuery, state: FSMContext): + markup = await otdels_markup() + await bot.edit_message_text(text=f'⭐️ Выберите нужный вам отдел', chat_id=callback.message.chat.id, message_id=callback.message.message_id, reply_markup=markup) + +# ============ Вопросы ========== # +@router.callback_query(filtersbot.OtdelsMarkup.filter(F.action == 'open')) +async def questions(callback: types.CallbackQuery, callback_data: filtersbot.OtdelsMarkup) -> None: + texts, markup = await questions_markup(callback_data.id_otdel) + + text_ = '\n'.join(texts) + + await bot.edit_message_text(text=f'⭐️ Выберите нужный вам вопрос\n\n{text_}', chat_id=callback.message.chat.id, message_id=callback.message.message_id, reply_markup=markup) + + +# ============ Ответ на вопрос ========== # +@router.callback_query(filtersbot.QuestionsMarkup.filter(F.action == 'open_ques')) +async def question(callback: types.CallbackQuery, callback_data: filtersbot.QuestionsMarkup) -> None: + + + id_question = callback_data.id_question + question = await databasework.get_question(id_question) + answer = question[2] + filename = question[4] + markup = back_to_questions(callback_data.id_otdel) + + if filename: + await bot.delete_message(chat_id=callback.message.chat.id, message_id=callback.message.message_id) + file = FSInputFile(path=f"{UPLOAD_DIRECTORY}/{filename}") + + if filename.split('.')[-1] == 'jpg' or filename.split('.')[-1] == 'png': + await bot.send_photo(caption=answer, chat_id=callback.message.chat.id, photo=file, reply_markup=markup) + return + + + if filename.split('.')[-1] == 'mp4': + await bot.send_video(caption=answer, chat_id=callback.message.chat.id, video=file, reply_markup=markup) + return + + await bot.send_document(caption=answer, chat_id=callback.message.chat.id, document=file, reply_markup=markup) + else: + await bot.edit_message_text(text=answer, chat_id=callback.message.chat.id, message_id=callback.message.message_id, reply_markup=markup) + + + + + +user = router \ No newline at end of file diff --git a/bot/markups/adminmarkup.py b/bot/markups/adminmarkup.py new file mode 100644 index 0000000..a60bdcb --- /dev/null +++ b/bot/markups/adminmarkup.py @@ -0,0 +1,31 @@ +from config import types, InlineKeyboardBuilder +from filters import filtersbot +from sql_function import databasework + + +def admin_markup(): + markup = ( + InlineKeyboardBuilder() + .button(text='⚙️ Выгрузить юзеров', callback_data='users') + .button(text='🛠 Тарифы', callback_data='tarifs_admin') + .button(text='🔴 Заблокировать юзера', callback_data='ban_user') + .button(text='✉️ Рассылка', callback_data='mailing') + .button(text='📊 Статистика', callback_data='statistic') + .button(text='💲 Выдать подписку', callback_data='give_subscribe') + .button(text='📝 Написать пользователю', callback_data='send_message') + .adjust(1, 2, 2, 1, 1, repeat=True) + .as_markup() + ) + return markup + + +def main_admin(): + markup = ( + InlineKeyboardBuilder() + .button(text='🔙 В главное меню', callback_data='main_admin') + .adjust(2, repeat=True) + .as_markup() + ) + return markup + + diff --git a/bot/markups/markup.py b/bot/markups/markup.py new file mode 100644 index 0000000..6bddfa2 --- /dev/null +++ b/bot/markups/markup.py @@ -0,0 +1,175 @@ +from config import types, InlineKeyboardBuilder +from filters import filtersbot +from sql_function import databasework +import math + +def start_markup(): # старт кнопки + + markup = ( + InlineKeyboardBuilder() + .button(text='Тич-Пицца', callback_data='pizza') # + .button(text='Ебидоеби', callback_data='ebi') + .adjust(1, repeat=True) + .as_markup() + ) + + return markup + + +async def otdels_markup(current_page: int = 0): + locations = await databasework.get_all_otdels() + markup = InlineKeyboardBuilder() + + page_width = 10 # настройка пагинации + page_offset = current_page * page_width + + last_page = max(0, math.ceil(len(locations) / page_width) - 1) + prev_page = max(0, current_page - 1) + next_page = min(last_page, current_page + 1) + + for i in locations[page_offset : page_offset + page_width]: + name = i[1] + markup.add( + types.InlineKeyboardButton( + text=name, + callback_data=filtersbot.OtdelsMarkup(action='open', id_otdel=i[0]).pack() + ) + ) + + markup.adjust(1) + + # Создаем кнопки для пагинации + pagination_buttons = [] + + if prev_page != current_page: # кнопка "Назад" + pagination_buttons.append( + types.InlineKeyboardButton( + text="◀️", + callback_data=filtersbot.PageCallback(page=prev_page, action='otdel').pack() + ) + ) + + # Кнопка для текущей страницы + pagination_buttons.append( + types.InlineKeyboardButton( + text=f"{current_page + 1}/{last_page + 1}", + callback_data='no_action' # Эта кнопка не будет выполнять действие + ) + ) + + if last_page != current_page: # кнопка "Вперед" + pagination_buttons.append( + types.InlineKeyboardButton( + text="▶️", + callback_data=filtersbot.PageCallback(page=next_page, action='otdel').pack() + ) + ) + + markup.row(*pagination_buttons) + + # Кнопка "В главное меню" + markup.row( + types.InlineKeyboardButton( + text='🔙 В главное меню', + callback_data='main_menu' + ) + ) + + return markup.as_markup() + + + +async def questions_markup(otdel_id: int, current_page: int = 0): + locations = await databasework.get_all_questions_where_otdel_id(otdel_id) + markup = InlineKeyboardBuilder() + + page_width = 20 # настройка пагинации + page_offset = current_page * page_width + + last_page = max(0, math.ceil(len(locations) / page_width) - 1) + prev_page = max(0, current_page - 1) + next_page = min(last_page, current_page + 1) + + # Создаем список для хранения текста кнопок с учетом пагинации + texts = [] + + # Номер первого вопроса на текущей странице + start_index = page_offset + 1 + + # Добавляем кнопки с вопросами + for index, i in enumerate(locations[page_offset: page_offset + page_width], start=start_index): + name = i[1] + text = f"{index}. {name}" # Форматируем текст с номером вопроса + texts.append(text) # Сохраняем текст кнопки + markup.add( + types.InlineKeyboardButton( + text=text, + callback_data=filtersbot.QuestionsMarkup(action='open_ques', id_question=i[0], id_otdel=otdel_id).pack() + ) + ) + + # Выбираем количество кнопок в строке (2 или 3) + markup.adjust(2, 3) + + # Создаем кнопки для пагинации + pagination_buttons = [] + + if prev_page != current_page: # кнопка "Назад" + pagination_buttons.append( + types.InlineKeyboardButton( + text="◀️", + callback_data=filtersbot.PageCallbackQuestions(otdel_id=otdel_id, page=prev_page, action='question').pack() + ) + ) + + # Кнопка для текущей страницы + pagination_buttons.append( + types.InlineKeyboardButton( + text=f"{current_page + 1}/{last_page + 1}", + callback_data='no_action' # Эта кнопка не будет выполнять действие + ) + ) + + if last_page != current_page: # кнопка "Вперед" + pagination_buttons.append( + types.InlineKeyboardButton( + text="▶️", + callback_data=filtersbot.PageCallbackQuestions(otdel_id=otdel_id, page=next_page, action='question').pack() + ) + ) + + if last_page == current_page: + markup.row( + types.InlineKeyboardButton( + text="Спроси HR", + url="https://docs.google.com/forms/d/1jyqXjKX_MrcboWJiUOJsUIzuq_gwb_iEzwQKWqUoUPQ/edit" + ) + ) + + markup.row(*pagination_buttons) + + # Кнопка "Назад" + markup.row( + types.InlineKeyboardButton( + text='🔙 Назад', + callback_data='back_to_otdels' + ) + ) + + return (texts, markup.as_markup()) + + + + + + +def back_to_questions(id_otdel: int): # старт кнопки + + markup = ( + InlineKeyboardBuilder() + .button(text='🔙 Назад', callback_data=filtersbot.BackToQuestions(id_otdel=id_otdel, action='back').pack()) + .adjust(1, repeat=True) + .as_markup() + ) + + return markup \ No newline at end of file diff --git a/bot/middlewares/__init__.py b/bot/middlewares/__init__.py new file mode 100644 index 0000000..e6787b2 --- /dev/null +++ b/bot/middlewares/__init__.py @@ -0,0 +1,28 @@ +from config import * + +from .check_ban import BannedMiddleware +from .create_user import CreateUserMiddleware +from .throttling import ThrottlingMiddleware + +from aiogram.utils.callback_answer import CallbackAnswerMiddleware +def setup(dp: Dispatcher): + + + throttling_middleware = ThrottlingMiddleware() + dp.message.outer_middleware.register(throttling_middleware) + dp.callback_query.outer_middleware.register(throttling_middleware) + + create_user_middleware = CreateUserMiddleware() + dp.message.outer_middleware.register(create_user_middleware) + dp.callback_query.outer_middleware.register(create_user_middleware) + + banned_middleware = BannedMiddleware() + dp.message.outer_middleware.register(banned_middleware) + dp.callback_query.outer_middleware.register(banned_middleware) + + + + + dp.callback_query.middleware(CallbackAnswerMiddleware()) + + \ No newline at end of file diff --git a/bot/middlewares/check_ban.py b/bot/middlewares/check_ban.py new file mode 100644 index 0000000..27af81a --- /dev/null +++ b/bot/middlewares/check_ban.py @@ -0,0 +1,25 @@ +from aiogram.types import Message, CallbackQuery +from aiogram import Bot +from aiogram.dispatcher.middlewares.base import BaseMiddleware +from typing import Any, Awaitable, Callable, Dict +from sql_function import databasework +from db.models import UserData + +class BannedMiddleware(BaseMiddleware): # ---- > мидлвар чек на бан + async def __call__( + self, + handler: Callable[[CallbackQuery, Dict[str, Any]], Awaitable[Any]], + event: Message, + data: Dict[str, Any], + ) -> Any: + + + data["bot_user"]: UserData = await databasework.check_user_o(event.from_user.id) + + + #check_ban = await databasework.check_ban(event.from_user.id) # проверяем на бан + if data["bot_user"].ban == 'yes': # проверка бана + bot: Bot = data["bot"] + return await bot.send_message(event.from_user.id, (f'Banned!')) + + return await handler(event, data) \ No newline at end of file diff --git a/bot/middlewares/create_user.py b/bot/middlewares/create_user.py new file mode 100644 index 0000000..4309c5e --- /dev/null +++ b/bot/middlewares/create_user.py @@ -0,0 +1,30 @@ +from aiogram.types import Message, CallbackQuery +from config import settings +from aiogram import Bot +from aiogram.dispatcher.middlewares.base import BaseMiddleware +from typing import Any, Awaitable, Callable, Dict +from sql_function import databasework + + +class CreateUserMiddleware(BaseMiddleware): # ---- > мидлвар создание юзера + async def __call__( + self, + handler: Callable[[CallbackQuery, Dict[str, Any]], Awaitable[Any]], + event: Message, + data: Dict[str, Any], + ) -> Any: + + + + check_user = await databasework.check_user(event.from_user.id) # ---> достаем юзера + if check_user == None: # если юзера нет - + await databasework.create_user(event.from_user.id, event.from_user.username) # - создаем + + + elif check_user[2] != event.from_user.username: # обновляем юзернейм если изменился + await databasework.update_username_user(event.from_user.username, event.from_user.id) + + + + return await handler(event, data) + diff --git a/bot/middlewares/edit_callback.py b/bot/middlewares/edit_callback.py new file mode 100644 index 0000000..0e1c252 --- /dev/null +++ b/bot/middlewares/edit_callback.py @@ -0,0 +1,22 @@ +from aiogram.types import Message, CallbackQuery +from aiogram import Bot +from aiogram.dispatcher.middlewares.base import BaseMiddleware +from typing import Any, Awaitable, Callable, Dict + +class CallbackMiddleware(BaseMiddleware): # ---- > мидлвар кнопок + async def __call__( + self, + handler: Callable[[CallbackQuery, Dict[str, Any]], Awaitable[Any]], + event: Message, + data: Dict[str, Any], + ) -> Any: + bot: Bot = data["bot"] + + + + await bot.answer_callback_query(event.from_user.id) + + + + return await handler(event, data) + diff --git a/bot/middlewares/throttling.py b/bot/middlewares/throttling.py new file mode 100644 index 0000000..b8f15a1 --- /dev/null +++ b/bot/middlewares/throttling.py @@ -0,0 +1,30 @@ +from cachetools import TTLCache +from typing import Any, Awaitable, Callable, Dict + +from aiogram import BaseMiddleware +from aiogram.types import Message, User + + +class ThrottlingMiddleware(BaseMiddleware): + throt = TTLCache(maxsize=10_000, ttl=1) + + async def __call__( + self, + handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]], + event: Message, + data: Dict[str, Any], + ) -> Any: + user: User = data["event_from_user"] + + if user.id in self.throt: + count = self.throt[user.id] + 1 + self.throt[user.id] = count + + if count == 4: + return await data['bot'].send_message(user.id, ('Не спамьте!')) + elif count > 3: + return + else: + self.throt[user.id] = 0 + + return await handler(event, data) diff --git a/bot/sql_function.py b/bot/sql_function.py new file mode 100644 index 0000000..d9bf8c3 --- /dev/null +++ b/bot/sql_function.py @@ -0,0 +1,122 @@ +from config import types +from db.db import async_session, engine +import sys, asyncio +from sqlalchemy import text +from sqlalchemy.future import select +from db.models import UserTg, UserData + +class databasework: + + + + + + + + async def create_user(user_id: str, username: str): + async with async_session() as session: + async with session.begin(): + sql = """ + INSERT INTO users (user_id, username) + VALUES (:user_id, :username) + """ + await session.execute(text(sql), {"user_id": str(user_id), "username": username}) + await session.commit() # Подтверждение транзакции + + async def update_username_user(username: str, user_id: str): + async with async_session() as session: + async with session.begin(): + sql = "UPDATE users SET username = :username WHERE user_id = :user_id" + await session.execute(text(sql), {"username": username, "user_id": str(user_id)}) + await session.commit() + + + async def check_user(user_id: str): + async with async_session() as session: + async with session.begin(): + sql = "SELECT * FROM users WHERE user_id = :user_id" + result = await session.execute(text(sql), {"user_id": str(user_id)}) + return result.one_or_none() # Возвращает один результат или None + + + async def check_user_o(user_id: str): + async with async_session() as session: + async with session.begin(): + stmt = select(UserTg).where(UserTg.user_id == str(user_id)) # Используем ORM-запрос + result = await session.execute(stmt) # Выполнение запроса + user = result.scalar_one_or_none() # Получение первого ORM-объекта + + user_data = UserData( + id=user.id, + user_id=user.user_id, + username=user.username, + status=user.status, + has_access=user.has_access, + reg_date=user.reg_date, + ban=user.ban, + ) + + + return user_data # Возвращает экземпляр `dataclass` + + + + async def check_ban(user_id: str): + async with async_session() as session: + async with session.begin(): + sql = "SELECT * FROM users WHERE user_id = :user_id" + result = await session.execute(text(sql), {"user_id": str(user_id)}) + ban_status = result.one_or_none() # Получение значения + return ban_status and ban_status[7] == 'yes' + + + + + async def check_admin(user_id: str): + async with async_session() as session: + async with session.begin(): + sql = "SELECT * FROM users WHERE user_id = :user_id" + result = await session.execute(text(sql), {"user_id": str(user_id)}) + status = result.one_or_none() # Получение статуса пользователя + if status: + return status[4] == True + return + + + + async def get_all_users(): + async with async_session() as session: + async with session.begin(): + sql = "SELECT * FROM users ORDER BY id ASC;" + result = await session.execute(text(sql)) # Выполнение запроса + return result.all() # Возвращает все строки + + + + async def get_all_otdels(): + async with async_session() as session: + async with session.begin(): + sql = "SELECT * FROM otdels ORDER BY id ASC;" + result = await session.execute(text(sql)) # Выполнение запроса + return result.all() # Возвращает все строки + + + async def get_all_questions_where_otdel_id(otdel_id: int): + async with async_session() as session: + async with session.begin(): + sql = """ + SELECT q.id AS question_id, q.name AS question_name, q.answer, q.type_answer, q.file, o.name AS otdel_name + FROM questions q + JOIN otdels o ON q.otdel_id = o.id + WHERE o.id = :otdel_id + ORDER BY q.id ASC; + """ + result = await session.execute(text(sql), {"otdel_id": otdel_id}) # Выполнение запроса + return result.all() # Возвращает все строки + + async def get_question(question_id: int): + async with async_session() as session: + async with session.begin(): + sql = "SELECT * FROM questions WHERE id = :id ORDER BY id ASC;" + result = await session.execute(text(sql), {"id": question_id}) # Выполнение запроса + return result.one_or_none() # Возвращает все строки \ No newline at end of file diff --git a/bot/states/adminstates.py b/bot/states/adminstates.py new file mode 100644 index 0000000..d60750e --- /dev/null +++ b/bot/states/adminstates.py @@ -0,0 +1,4 @@ +from config import StatesGroup, State + + + diff --git a/bot/states/states.py b/bot/states/states.py new file mode 100644 index 0000000..de8633e --- /dev/null +++ b/bot/states/states.py @@ -0,0 +1,6 @@ +from config import State, StatesGroup + + + +class RequestState(StatesGroup): + one = State() \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d5bbf9d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,43 @@ +services: + postgres: + image: postgres:latest + restart: always + environment: + POSTGRES_USER: ${DB_LOG} + POSTGRES_PASSWORD: ${DB_PASS} + POSTGRES_DB: ${DB_NAME} + volumes: + - postgres-data:/var/lib/postgresql/data + - ./files/postgresql.conf:/etc/postgresql/postgresql.conf + - ./files/pg_hba.conf:/etc/postgresql/pg_hba.conf + ports: + - "5431:5432" + + bot: + build: + context: . + dockerfile: Dockerfile + restart: always + command: ["python", "-u", "bot"] + depends_on: + - postgres + volumes: + - .:/app + - ./logs:/app/logs + + site: + build: + context: . + dockerfile: Dockerfile + restart: always + command: ["python", "-u", "webadmin"] + depends_on: + - postgres + ports: + - "8004:8004" # Проброс порта 8080 на хосте + volumes: + - .:/app + - ./logs:/app/logs + +volumes: + postgres-data: diff --git a/files/pg_hba.conf b/files/pg_hba.conf new file mode 100644 index 0000000..9d97038 --- /dev/null +++ b/files/pg_hba.conf @@ -0,0 +1 @@ +host all all 0.0.0.0/0 scram-sha-256 \ No newline at end of file diff --git a/files/postgresql.conf b/files/postgresql.conf new file mode 100644 index 0000000..4976f79 --- /dev/null +++ b/files/postgresql.conf @@ -0,0 +1,2 @@ +listen_addresses = '*' +include 'pg_hba.conf' \ No newline at end of file diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..63ed1e4 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,23 @@ +# nginx.conf + +worker_processes 1; + +events { + worker_connections 1024; +} + +http { + server { + listen 80; + server_name fckngdev.space; + + location / { + proxy_pass http://87.251.87.90:8004/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_buffering off; + } + } +} \ No newline at end of file diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..8ea473e --- /dev/null +++ b/poetry.lock @@ -0,0 +1,2025 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "aiofiles" +version = "23.2.1" +description = "File support for asyncio." +optional = false +python-versions = ">=3.7" +files = [ + {file = "aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107"}, + {file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"}, +] + +[[package]] +name = "aiogram" +version = "3.10.0" +description = "Modern and fully asynchronous framework for Telegram Bot API" +optional = false +python-versions = ">=3.8" +files = [ + {file = "aiogram-3.10.0-py3-none-any.whl", hash = "sha256:dc43bfbe68c736cca48d91ffbc55a397df24b56c332206af850965619689beca"}, + {file = "aiogram-3.10.0.tar.gz", hash = "sha256:f500d4b309e3cc08a87ae5a053b229199034f382925de00aa2ed005d5e25d575"}, +] + +[package.dependencies] +aiofiles = ">=23.2.1,<23.3.0" +aiohttp = ">=3.9.0,<3.10.0" +certifi = ">=2023.7.22" +magic-filter = ">=1.0.12,<1.1" +pydantic = ">=2.4.1,<2.9" +typing-extensions = ">=4.7.0,<=5.0" + +[package.extras] +cli = ["aiogram-cli (>=1.0.3,<1.1.0)"] +dev = ["black (>=24.4.2,<24.5.0)", "isort (>=5.13.2,<5.14.0)", "motor-types (>=1.0.0b4,<1.1.0)", "mypy (>=1.10.0,<1.11.0)", "packaging (>=24.1,<25.0)", "pre-commit (>=3.5,<4.0)", "ruff (>=0.4.9,<0.5.0)", "toml (>=0.10.2,<0.11.0)"] +docs = ["furo (>=2023.9.10,<2023.10.0)", "markdown-include (>=0.8.1,<0.9.0)", "pygments (>=2.16.1,<2.17.0)", "pymdown-extensions (>=10.3,<11.0)", "sphinx (>=7.2.6,<7.3.0)", "sphinx-autobuild (>=2021.3.14,<2021.4.0)", "sphinx-copybutton (>=0.5.2,<0.6.0)", "sphinx-intl (>=2.1.0,<2.2.0)", "sphinx-substitution-extensions (>=2022.2.16,<2022.3.0)", "sphinxcontrib-towncrier (>=0.3.2a0,<0.4.0)", "towncrier (>=23.6.0,<23.7.0)"] +fast = ["aiodns (>=3.0.0)", "uvloop (>=0.17.0)"] +i18n = ["babel (>=2.13.0,<2.14.0)"] +mongo = ["motor (>=3.3.2,<3.4.0)"] +proxy = ["aiohttp-socks (>=0.8.3,<0.9.0)"] +redis = ["redis[hiredis] (>=5.0.1,<5.1.0)"] +test = ["aresponses (>=2.1.6,<2.2.0)", "pycryptodomex (>=3.19.0,<3.20.0)", "pytest (>=7.4.2,<7.5.0)", "pytest-aiohttp (>=1.0.5,<1.1.0)", "pytest-asyncio (>=0.21.1,<0.22.0)", "pytest-cov (>=4.1.0,<4.2.0)", "pytest-html (>=4.0.2,<4.1.0)", "pytest-lazy-fixture (>=0.6.3,<0.7.0)", "pytest-mock (>=3.12.0,<3.13.0)", "pytest-mypy (>=0.10.3,<0.11.0)", "pytz (>=2023.3,<2024.0)"] + +[[package]] +name = "aiohttp" +version = "3.9.5" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae79c1bc12c34082d92bf9422764f799aee4746fd7a392db46b7fd357d4a17a"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d3ebb9e1316ec74277d19c5f482f98cc65a73ccd5430540d6d11682cd857430"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84dabd95154f43a2ea80deffec9cb44d2e301e38a0c9d331cc4aa0166fe28ae3"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a02fbeca6f63cb1f0475c799679057fc9268b77075ab7cf3f1c600e81dd46b"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:714d4e5231fed4ba2762ed489b4aec07b2b9953cf4ee31e9871caac895a839c0"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7a6a8354f1b62e15d48e04350f13e726fa08b62c3d7b8401c0a1314f02e3558"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c413016880e03e69d166efb5a1a95d40f83d5a3a648d16486592c49ffb76d0db"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ff84aeb864e0fac81f676be9f4685f0527b660f1efdc40dcede3c251ef1e867f"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ad7f2919d7dac062f24d6f5fe95d401597fbb015a25771f85e692d043c9d7832"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:702e2c7c187c1a498a4e2b03155d52658fdd6fda882d3d7fbb891a5cf108bb10"}, + {file = "aiohttp-3.9.5-cp310-cp310-win32.whl", hash = "sha256:67c3119f5ddc7261d47163ed86d760ddf0e625cd6246b4ed852e82159617b5fb"}, + {file = "aiohttp-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:471f0ef53ccedec9995287f02caf0c068732f026455f07db3f01a46e49d76bbb"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75"}, + {file = "aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c7a4b7a6cf5b6eb11e109a9755fd4fda7d57395f8c575e166d363b9fc3ec4678"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0a158704edf0abcac8ac371fbb54044f3270bdbc93e254a82b6c82be1ef08f3c"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d153f652a687a8e95ad367a86a61e8d53d528b0530ef382ec5aaf533140ed00f"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a6a97d9771cb48ae16979c3a3a9a18b600a8505b1115cfe354dfb2054468b4"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60cdbd56f4cad9f69c35eaac0fbbdf1f77b0ff9456cebd4902f3dd1cf096464c"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8676e8fd73141ded15ea586de0b7cda1542960a7b9ad89b2b06428e97125d4fa"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da00da442a0e31f1c69d26d224e1efd3a1ca5bcbf210978a2ca7426dfcae9f58"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f634d540dd099c262e9f887c8bbacc959847cfe5da7a0e2e1cf3f14dbf2daf"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:320e8618eda64e19d11bdb3bd04ccc0a816c17eaecb7e4945d01deee2a22f95f"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2faa61a904b83142747fc6a6d7ad8fccff898c849123030f8e75d5d967fd4a81"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8c64a6dc3fe5db7b1b4d2b5cb84c4f677768bdc340611eca673afb7cf416ef5a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da"}, + {file = "aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59"}, + {file = "aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:694d828b5c41255e54bc2dddb51a9f5150b4eefa9886e38b52605a05d96566e8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4558e5012ee03d2638c681e156461d37b7a113fe13970d438d95d10173d25f78"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbc053ac75ccc63dc3a3cc547b98c7258ec35a215a92bd9f983e0aac95d3d5b"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4109adee842b90671f1b689901b948f347325045c15f46b39797ae1bf17019de"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6ea1a5b409a85477fd8e5ee6ad8f0e40bf2844c270955e09360418cfd09abac"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c2890ca8c59ee683fd09adf32321a40fe1cf164e3387799efb2acebf090c11"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3916c8692dbd9d55c523374a3b8213e628424d19116ac4308e434dbf6d95bbdd"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8d1964eb7617907c792ca00b341b5ec3e01ae8c280825deadbbd678447b127e1"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5ab8e1f6bee051a4bf6195e38a5c13e5e161cb7bad83d8854524798bd9fcd6e"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52c27110f3862a1afbcb2af4281fc9fdc40327fa286c4625dfee247c3ba90156"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7f64cbd44443e80094309875d4f9c71d0401e966d191c3d469cde4642bc2e031"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b4f72fbb66279624bfe83fd5eb6aea0022dad8eec62b71e7bf63ee1caadeafe"}, + {file = "aiohttp-3.9.5-cp38-cp38-win32.whl", hash = "sha256:6380c039ec52866c06d69b5c7aad5478b24ed11696f0e72f6b807cfb261453da"}, + {file = "aiohttp-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:da22dab31d7180f8c3ac7c7635f3bcd53808f374f6aa333fe0b0b9e14b01f91a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1732102949ff6087589408d76cd6dea656b93c896b011ecafff418c9661dc4ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6021d296318cb6f9414b48e6a439a7f5d1f665464da507e8ff640848ee2a58a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:239f975589a944eeb1bad26b8b140a59a3a320067fb3cd10b75c3092405a1372"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b7b30258348082826d274504fbc7c849959f1989d86c29bc355107accec6cfb"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2adf5c87ff6d8b277814a28a535b59e20bfea40a101db6b3bdca7e9926bc24"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a3d838441bebcf5cf442700e3963f58b5c33f015341f9ea86dcd7d503c07e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3a1ae66e3d0c17cf65c08968a5ee3180c5a95920ec2731f53343fac9bad106"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c69e77370cce2d6df5d12b4e12bdcca60c47ba13d1cbbc8645dd005a20b738b"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf56238f4bbf49dab8c2dc2e6b1b68502b1e88d335bea59b3f5b9f4c001475"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d1469f228cd9ffddd396d9948b8c9cd8022b6d1bf1e40c6f25b0fb90b4f893ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:45731330e754f5811c314901cebdf19dd776a44b31927fa4b4dbecab9e457b0c"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3fcb4046d2904378e3aeea1df51f697b0467f2aac55d232c87ba162709478c46"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8cf142aa6c1a751fcb364158fd710b8a9be874b81889c2bd13aa8893197455e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-win32.whl", hash = "sha256:7b179eea70833c8dee51ec42f3b4097bd6370892fa93f510f76762105568cf09"}, + {file = "aiohttp-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:38d80498e2e169bc61418ff36170e0aad0cd268da8b38a17c4cf29d254a8b3f1"}, + {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"}, +] + +[package.dependencies] +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<5.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +yarl = ">=1.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.1" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, + {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} + +[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 = "apscheduler" +version = "3.10.4" +description = "In-process task scheduler with Cron-like capabilities" +optional = false +python-versions = ">=3.6" +files = [ + {file = "APScheduler-3.10.4-py3-none-any.whl", hash = "sha256:fb91e8a768632a4756a585f79ec834e0e27aad5860bac7eaa523d9ccefd87661"}, + {file = "APScheduler-3.10.4.tar.gz", hash = "sha256:e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a"}, +] + +[package.dependencies] +pytz = "*" +six = ">=1.4.0" +tzlocal = ">=2.0,<3.dev0 || >=4.dev0" + +[package.extras] +doc = ["sphinx", "sphinx-rtd-theme"] +gevent = ["gevent"] +mongodb = ["pymongo (>=3.0)"] +redis = ["redis (>=3.0)"] +rethinkdb = ["rethinkdb (>=2.4.0)"] +sqlalchemy = ["sqlalchemy (>=1.4)"] +testing = ["pytest", "pytest-asyncio", "pytest-cov", "pytest-tornado5"] +tornado = ["tornado (>=4.3)"] +twisted = ["twisted"] +zookeeper = ["kazoo"] + +[[package]] +name = "async-timeout" +version = "4.0.3" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.7" +files = [ + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, +] + +[[package]] +name = "asyncio" +version = "3.4.3" +description = "reference implementation of PEP 3156" +optional = false +python-versions = "*" +files = [ + {file = "asyncio-3.4.3-cp33-none-win32.whl", hash = "sha256:b62c9157d36187eca799c378e572c969f0da87cd5fc42ca372d92cdb06e7e1de"}, + {file = "asyncio-3.4.3-cp33-none-win_amd64.whl", hash = "sha256:c46a87b48213d7464f22d9a497b9eef8c1928b68320a2fa94240f969f6fec08c"}, + {file = "asyncio-3.4.3-py3-none-any.whl", hash = "sha256:c4d18b22701821de07bd6aea8b53d21449ec0ec5680645e5317062ea21817d2d"}, + {file = "asyncio-3.4.3.tar.gz", hash = "sha256:83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41"}, +] + +[[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.dependencies] +async-timeout = {version = ">=4.0.3", markers = "python_version < \"3.12.0\""} + +[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 = "attrs" +version = "23.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] + +[[package]] +name = "bcrypt" +version = "4.0.1" +description = "Modern password hashing for your software and your servers" +optional = false +python-versions = ">=3.6" +files = [ + {file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2"}, + {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535"}, + {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e"}, + {file = "bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab"}, + {file = "bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71"}, + {file = "bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd"}, +] + +[package.extras] +tests = ["pytest (>=3.2.1,!=3.3.0)"] +typecheck = ["mypy"] + +[[package]] +name = "cachetools" +version = "5.3.3" +description = "Extensible memoizing collections and decorators" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachetools-5.3.3-py3-none-any.whl", hash = "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945"}, + {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, +] + +[[package]] +name = "certifi" +version = "2024.7.4" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[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 = "cryptography" +version = "43.0.0" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, + {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, + {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, + {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, + {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, + {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, + {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[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.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.111.1" +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.1-py3-none-any.whl", hash = "sha256:4f51cfa25d72f9fbc3280832e84b32494cf186f50158d364a8765aabf22587bf"}, + {file = "fastapi-0.111.1.tar.gz", hash = "sha256:ddd1ac34cb1f76c2e2d7f8545a4bcb5463bce4834e81abf0b189e0c359ab2413"}, +] + +[package.dependencies] +email_validator = ">=2.0.0" +fastapi-cli = ">=0.0.2" +httpx = ">=0.23.0" +jinja2 = ">=2.11.2" +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" +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.4" +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.4-py3-none-any.whl", hash = "sha256:a2552f3a7ae64058cdbb530be6fa6dbfc975dc165e4fa66d224c3d396e25e809"}, + {file = "fastapi_cli-0.0.4.tar.gz", hash = "sha256:e2e9ffaffc1f7767f488d6da34b6f5a377751c996f397902eb6abb99a67bde32"}, +] + +[package.dependencies] +typer = ">=0.12.3" + +[package.extras] +standard = ["fastapi", "uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "frozenlist" +version = "1.4.1" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +files = [ + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, + {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, + {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, + {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, + {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, + {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, + {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, + {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, + {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, + {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, + {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, + {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, + {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, +] + +[[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 = "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 = "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 = "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 = "magic-filter" +version = "1.0.12" +description = "" +optional = false +python-versions = ">=3.7" +files = [ + {file = "magic_filter-1.0.12-py3-none-any.whl", hash = "sha256:e5929e544f310c2b1f154318db8c5cdf544dd658efa998172acd2e4ba0f6c6a6"}, + {file = "magic_filter-1.0.12.tar.gz", hash = "sha256:4751d0b579a5045d1dc250625c4c508c18c3def5ea6afaf3957cb4530d03f7f9"}, +] + +[package.extras] +dev = ["black (>=22.8.0,<22.9.0)", "flake8 (>=5.0.4,<5.1.0)", "isort (>=5.11.5,<5.12.0)", "mypy (>=1.4.1,<1.5.0)", "pre-commit (>=2.20.0,<2.21.0)", "pytest (>=7.1.3,<7.2.0)", "pytest-cov (>=3.0.0,<3.1.0)", "pytest-html (>=3.1.1,<3.2.0)", "types-setuptools (>=65.3.0,<65.4.0)"] + +[[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 = "multidict" +version = "6.0.5" +description = "multidict implementation" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, + {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, + {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, + {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, + {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, + {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, + {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, + {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, +] + +[[package]] +name = "passlib" +version = "1.7.4" +description = "comprehensive password hashing framework supporting over 30 schemes" +optional = false +python-versions = "*" +files = [ + {file = "passlib-1.7.4-py2.py3-none-any.whl", hash = "sha256:aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1"}, + {file = "passlib-1.7.4.tar.gz", hash = "sha256:defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04"}, +] + +[package.extras] +argon2 = ["argon2-cffi (>=18.2.0)"] +bcrypt = ["bcrypt (>=3.1.0)"] +build-docs = ["cloud-sptheme (>=1.10.1)", "sphinx (>=1.6)", "sphinxcontrib-fulltoc (>=1.2.0)"] +totp = ["cryptography"] + +[[package]] +name = "psycopg2-binary" +version = "2.9.9" +description = "psycopg2 - Python-PostgreSQL Database Adapter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "psycopg2-binary-2.9.9.tar.gz", hash = "sha256:7f01846810177d829c7692f1f5ada8096762d9172af1b1a28d4ab5b77c923c1c"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c2470da5418b76232f02a2fcd2229537bb2d5a7096674ce61859c3229f2eb202"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6af2a6d4b7ee9615cbb162b0738f6e1fd1f5c3eda7e5da17861eacf4c717ea7"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75723c3c0fbbf34350b46a3199eb50638ab22a0228f93fb472ef4d9becc2382b"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83791a65b51ad6ee6cf0845634859d69a038ea9b03d7b26e703f94c7e93dbcf9"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ef4854e82c09e84cc63084a9e4ccd6d9b154f1dbdd283efb92ecd0b5e2b8c84"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed1184ab8f113e8d660ce49a56390ca181f2981066acc27cf637d5c1e10ce46e"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d2997c458c690ec2bc6b0b7ecbafd02b029b7b4283078d3b32a852a7ce3ddd98"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b58b4710c7f4161b5e9dcbe73bb7c62d65670a87df7bcce9e1faaad43e715245"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0c009475ee389757e6e34611d75f6e4f05f0cf5ebb76c6037508318e1a1e0d7e"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8dbf6d1bc73f1d04ec1734bae3b4fb0ee3cb2a493d35ede9badbeb901fb40f6f"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-win32.whl", hash = "sha256:3f78fd71c4f43a13d342be74ebbc0666fe1f555b8837eb113cb7416856c79682"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-win_amd64.whl", hash = "sha256:876801744b0dee379e4e3c38b76fc89f88834bb15bf92ee07d94acd06ec890a0"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ee825e70b1a209475622f7f7b776785bd68f34af6e7a46e2e42f27b659b5bc26"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1ea665f8ce695bcc37a90ee52de7a7980be5161375d42a0b6c6abedbf0d81f0f"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:143072318f793f53819048fdfe30c321890af0c3ec7cb1dfc9cc87aa88241de2"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c332c8d69fb64979ebf76613c66b985414927a40f8defa16cf1bc028b7b0a7b0"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7fc5a5acafb7d6ccca13bfa8c90f8c51f13d8fb87d95656d3950f0158d3ce53"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977646e05232579d2e7b9c59e21dbe5261f403a88417f6a6512e70d3f8a046be"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b6356793b84728d9d50ead16ab43c187673831e9d4019013f1402c41b1db9b27"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bc7bb56d04601d443f24094e9e31ae6deec9ccb23581f75343feebaf30423359"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:77853062a2c45be16fd6b8d6de2a99278ee1d985a7bd8b103e97e41c034006d2"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:78151aa3ec21dccd5cdef6c74c3e73386dcdfaf19bced944169697d7ac7482fc"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-win32.whl", hash = "sha256:dc4926288b2a3e9fd7b50dc6a1909a13bbdadfc67d93f3374d984e56f885579d"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-win_amd64.whl", hash = "sha256:b76bedd166805480ab069612119ea636f5ab8f8771e640ae103e05a4aae3e417"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8532fd6e6e2dc57bcb3bc90b079c60de896d2128c5d9d6f24a63875a95a088cf"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0605eaed3eb239e87df0d5e3c6489daae3f7388d455d0c0b4df899519c6a38d"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f8544b092a29a6ddd72f3556a9fcf249ec412e10ad28be6a0c0d948924f2212"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d423c8d8a3c82d08fe8af900ad5b613ce3632a1249fd6a223941d0735fce493"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e5afae772c00980525f6d6ecf7cbca55676296b580c0e6abb407f15f3706996"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e6f98446430fdf41bd36d4faa6cb409f5140c1c2cf58ce0bbdaf16af7d3f119"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c77e3d1862452565875eb31bdb45ac62502feabbd53429fdc39a1cc341d681ba"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cb16c65dcb648d0a43a2521f2f0a2300f40639f6f8c1ecbc662141e4e3e1ee07"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:911dda9c487075abd54e644ccdf5e5c16773470a6a5d3826fda76699410066fb"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:57fede879f08d23c85140a360c6a77709113efd1c993923c59fde17aa27599fe"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-win32.whl", hash = "sha256:64cf30263844fa208851ebb13b0732ce674d8ec6a0c86a4e160495d299ba3c93"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-win_amd64.whl", hash = "sha256:81ff62668af011f9a48787564ab7eded4e9fb17a4a6a74af5ffa6a457400d2ab"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2293b001e319ab0d869d660a704942c9e2cce19745262a8aba2115ef41a0a42a"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ef7df18daf2c4c07e2695e8cfd5ee7f748a1d54d802330985a78d2a5a6dca9"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a602ea5aff39bb9fac6308e9c9d82b9a35c2bf288e184a816002c9fae930b77"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8359bf4791968c5a78c56103702000105501adb557f3cf772b2c207284273984"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:275ff571376626195ab95a746e6a04c7df8ea34638b99fc11160de91f2fef503"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f9b5571d33660d5009a8b3c25dc1db560206e2d2f89d3df1cb32d72c0d117d52"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:420f9bbf47a02616e8554e825208cb947969451978dceb77f95ad09c37791dae"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4154ad09dac630a0f13f37b583eae260c6aa885d67dfbccb5b02c33f31a6d420"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a148c5d507bb9b4f2030a2025c545fccb0e1ef317393eaba42e7eabd28eb6041"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-win32.whl", hash = "sha256:68fc1f1ba168724771e38bee37d940d2865cb0f562380a1fb1ffb428b75cb692"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-win_amd64.whl", hash = "sha256:281309265596e388ef483250db3640e5f414168c5a67e9c665cafce9492eda2f"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:60989127da422b74a04345096c10d416c2b41bd7bf2a380eb541059e4e999980"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:246b123cc54bb5361588acc54218c8c9fb73068bf227a4a531d8ed56fa3ca7d6"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34eccd14566f8fe14b2b95bb13b11572f7c7d5c36da61caf414d23b91fcc5d94"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18d0ef97766055fec15b5de2c06dd8e7654705ce3e5e5eed3b6651a1d2a9a152"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3f82c171b4ccd83bbaf35aa05e44e690113bd4f3b7b6cc54d2219b132f3ae55"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead20f7913a9c1e894aebe47cccf9dc834e1618b7aa96155d2091a626e59c972"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ca49a8119c6cbd77375ae303b0cfd8c11f011abbbd64601167ecca18a87e7cdd"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:323ba25b92454adb36fa425dc5cf6f8f19f78948cbad2e7bc6cdf7b0d7982e59"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:1236ed0952fbd919c100bc839eaa4a39ebc397ed1c08a97fc45fee2a595aa1b3"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:729177eaf0aefca0994ce4cffe96ad3c75e377c7b6f4efa59ebf003b6d398716"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-win32.whl", hash = "sha256:804d99b24ad523a1fe18cc707bf741670332f7c7412e9d49cb5eab67e886b9b5"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-win_amd64.whl", hash = "sha256:a6cdcc3ede532f4a4b96000b6362099591ab4a3e913d70bcbac2b56c872446f7"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72dffbd8b4194858d0941062a9766f8297e8868e1dd07a7b36212aaa90f49472"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:30dcc86377618a4c8f3b72418df92e77be4254d8f89f14b8e8f57d6d43603c0f"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31a34c508c003a4347d389a9e6fcc2307cc2150eb516462a7a17512130de109e"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15208be1c50b99203fe88d15695f22a5bed95ab3f84354c494bcb1d08557df67"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1873aade94b74715be2246321c8650cabf5a0d098a95bab81145ffffa4c13876"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a58c98a7e9c021f357348867f537017057c2ed7f77337fd914d0bedb35dace7"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4686818798f9194d03c9129a4d9a702d9e113a89cb03bffe08c6cf799e053291"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ebdc36bea43063116f0486869652cb2ed7032dbc59fbcb4445c4862b5c1ecf7f"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:ca08decd2697fdea0aea364b370b1249d47336aec935f87b8bbfd7da5b2ee9c1"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac05fb791acf5e1a3e39402641827780fe44d27e72567a000412c648a85ba860"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-win32.whl", hash = "sha256:9dba73be7305b399924709b91682299794887cbbd88e38226ed9f6712eabee90"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-win_amd64.whl", hash = "sha256:f7ae5d65ccfbebdfa761585228eb4d0df3a8b15cfb53bd953e713e09fbb12957"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.8.2" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, + {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +pydantic-core = "2.20.1" +typing-extensions = [ + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, +] + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.20.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, + {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, + {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, + {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, + {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, + {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, + {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, + {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, + {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, + {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, + {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, + {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, + {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, + {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-settings" +version = "2.3.4" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_settings-2.3.4-py3-none-any.whl", hash = "sha256:11ad8bacb68a045f00e4f862c7a718c8a9ec766aa8fd4c32e39a0594b207b53a"}, + {file = "pydantic_settings-2.3.4.tar.gz", hash = "sha256:c5802e3d62b78e82522319bbc9b8f8ffb28ad1c988a99311d04f2a6051fca0a7"}, +] + +[package.dependencies] +pydantic = ">=2.7.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 = "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 = "pytz" +version = "2024.1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + +[[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 = "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.31" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f2a213c1b699d3f5768a7272de720387ae0122f1becf0901ed6eaa1abd1baf6c"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9fea3d0884e82d1e33226935dac990b967bef21315cbcc894605db3441347443"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ad7f221d8a69d32d197e5968d798217a4feebe30144986af71ada8c548e9fa"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2bee229715b6366f86a95d497c347c22ddffa2c7c96143b59a2aa5cc9eebbc"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cd5b94d4819c0c89280b7c6109c7b788a576084bf0a480ae17c227b0bc41e109"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:750900a471d39a7eeba57580b11983030517a1f512c2cb287d5ad0fcf3aebd58"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-win32.whl", hash = "sha256:7bd112be780928c7f493c1a192cd8c5fc2a2a7b52b790bc5a84203fb4381c6be"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-win_amd64.whl", hash = "sha256:5a48ac4d359f058474fadc2115f78a5cdac9988d4f99eae44917f36aa1476327"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f68470edd70c3ac3b6cd5c2a22a8daf18415203ca1b036aaeb9b0fb6f54e8298"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e2c38c2a4c5c634fe6c3c58a789712719fa1bf9b9d6ff5ebfce9a9e5b89c1ca"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd15026f77420eb2b324dcb93551ad9c5f22fab2c150c286ef1dc1160f110203"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2196208432deebdfe3b22185d46b08f00ac9d7b01284e168c212919891289396"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:352b2770097f41bff6029b280c0e03b217c2dcaddc40726f8f53ed58d8a85da4"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56d51ae825d20d604583f82c9527d285e9e6d14f9a5516463d9705dab20c3740"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-win32.whl", hash = "sha256:6e2622844551945db81c26a02f27d94145b561f9d4b0c39ce7bfd2fda5776dac"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-win_amd64.whl", hash = "sha256:ccaf1b0c90435b6e430f5dd30a5aede4764942a695552eb3a4ab74ed63c5b8d3"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3b74570d99126992d4b0f91fb87c586a574a5872651185de8297c6f90055ae42"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f77c4f042ad493cb8595e2f503c7a4fe44cd7bd59c7582fd6d78d7e7b8ec52c"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd1591329333daf94467e699e11015d9c944f44c94d2091f4ac493ced0119449"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74afabeeff415e35525bf7a4ecdab015f00e06456166a2eba7590e49f8db940e"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b9c01990d9015df2c6f818aa8f4297d42ee71c9502026bb074e713d496e26b67"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66f63278db425838b3c2b1c596654b31939427016ba030e951b292e32b99553e"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-win32.whl", hash = "sha256:0b0f658414ee4e4b8cbcd4a9bb0fd743c5eeb81fc858ca517217a8013d282c96"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-win_amd64.whl", hash = "sha256:fa4b1af3e619b5b0b435e333f3967612db06351217c58bfb50cee5f003db2a5a"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f43e93057cf52a227eda401251c72b6fbe4756f35fa6bfebb5d73b86881e59b0"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d337bf94052856d1b330d5fcad44582a30c532a2463776e1651bd3294ee7e58b"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c06fb43a51ccdff3b4006aafee9fcf15f63f23c580675f7734245ceb6b6a9e05"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:b6e22630e89f0e8c12332b2b4c282cb01cf4da0d26795b7eae16702a608e7ca1"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:79a40771363c5e9f3a77f0e28b3302801db08040928146e6808b5b7a40749c88"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-win32.whl", hash = "sha256:501ff052229cb79dd4c49c402f6cb03b5a40ae4771efc8bb2bfac9f6c3d3508f"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-win_amd64.whl", hash = "sha256:597fec37c382a5442ffd471f66ce12d07d91b281fd474289356b1a0041bdf31d"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dc6d69f8829712a4fd799d2ac8d79bdeff651c2301b081fd5d3fe697bd5b4ab9"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:23b9fbb2f5dd9e630db70fbe47d963c7779e9c81830869bd7d137c2dc1ad05fb"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a21c97efcbb9f255d5c12a96ae14da873233597dfd00a3a0c4ce5b3e5e79704"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26a6a9837589c42b16693cf7bf836f5d42218f44d198f9343dd71d3164ceeeac"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc251477eae03c20fae8db9c1c23ea2ebc47331bcd73927cdcaecd02af98d3c3"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2fd17e3bb8058359fa61248c52c7b09a97cf3c820e54207a50af529876451808"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-win32.whl", hash = "sha256:c76c81c52e1e08f12f4b6a07af2b96b9b15ea67ccdd40ae17019f1c373faa227"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-win_amd64.whl", hash = "sha256:4b600e9a212ed59355813becbcf282cfda5c93678e15c25a0ef896b354423238"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b6cf796d9fcc9b37011d3f9936189b3c8074a02a4ed0c0fbbc126772c31a6d4"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:78fe11dbe37d92667c2c6e74379f75746dc947ee505555a0197cfba9a6d4f1a4"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fc47dc6185a83c8100b37acda27658fe4dbd33b7d5e7324111f6521008ab4fe"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a41514c1a779e2aa9a19f67aaadeb5cbddf0b2b508843fcd7bafdf4c6864005"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:afb6dde6c11ea4525318e279cd93c8734b795ac8bb5dda0eedd9ebaca7fa23f1"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3f9faef422cfbb8fd53716cd14ba95e2ef655400235c3dfad1b5f467ba179c8c"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-win32.whl", hash = "sha256:fc6b14e8602f59c6ba893980bea96571dd0ed83d8ebb9c4479d9ed5425d562e9"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-win_amd64.whl", hash = "sha256:3cb8a66b167b033ec72c3812ffc8441d4e9f5f78f5e31e54dcd4c90a4ca5bebc"}, + {file = "SQLAlchemy-2.0.31-py3-none-any.whl", hash = "sha256:69f3e3c08867a8e4856e92d7afb618b95cdee18e0bc1647b77599722c9a28911"}, + {file = "SQLAlchemy-2.0.31.tar.gz", hash = "sha256:b607489dd4a54de56984a0c7656247504bd5523d9d0ba799aef59d4add009484"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (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 = "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.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "tzlocal" +version = "5.2" +description = "tzinfo object for the local timezone" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, + {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, +] + +[package.dependencies] +tzdata = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] + +[[package]] +name = "uvicorn" +version = "0.30.3" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.30.3-py3-none-any.whl", hash = "sha256:94a3608da0e530cea8f69683aa4126364ac18e3826b6630d1a65f4638aade503"}, + {file = "uvicorn-0.30.3.tar.gz", hash = "sha256:0d114d0831ff1adbf231d358cbf42f17333413042552a624ea6a9b4c33dcfd81"}, +] + +[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\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +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 = "watchfiles" +version = "0.22.0" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "watchfiles-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:da1e0a8caebf17976e2ffd00fa15f258e14749db5e014660f53114b676e68538"}, + {file = "watchfiles-0.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:61af9efa0733dc4ca462347becb82e8ef4945aba5135b1638bfc20fad64d4f0e"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d9188979a58a096b6f8090e816ccc3f255f137a009dd4bbec628e27696d67c1"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2bdadf6b90c099ca079d468f976fd50062905d61fae183f769637cb0f68ba59a"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:067dea90c43bf837d41e72e546196e674f68c23702d3ef80e4e816937b0a3ffd"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf8a20266136507abf88b0df2328e6a9a7c7309e8daff124dda3803306a9fdb"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1235c11510ea557fe21be5d0e354bae2c655a8ee6519c94617fe63e05bca4171"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2444dc7cb9d8cc5ab88ebe792a8d75709d96eeef47f4c8fccb6df7c7bc5be71"}, + {file = "watchfiles-0.22.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c5af2347d17ab0bd59366db8752d9e037982e259cacb2ba06f2c41c08af02c39"}, + {file = "watchfiles-0.22.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9624a68b96c878c10437199d9a8b7d7e542feddda8d5ecff58fdc8e67b460848"}, + {file = "watchfiles-0.22.0-cp310-none-win32.whl", hash = "sha256:4b9f2a128a32a2c273d63eb1fdbf49ad64852fc38d15b34eaa3f7ca2f0d2b797"}, + {file = "watchfiles-0.22.0-cp310-none-win_amd64.whl", hash = "sha256:2627a91e8110b8de2406d8b2474427c86f5a62bf7d9ab3654f541f319ef22bcb"}, + {file = "watchfiles-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8c39987a1397a877217be1ac0fb1d8b9f662c6077b90ff3de2c05f235e6a8f96"}, + {file = "watchfiles-0.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a927b3034d0672f62fb2ef7ea3c9fc76d063c4b15ea852d1db2dc75fe2c09696"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052d668a167e9fc345c24203b104c313c86654dd6c0feb4b8a6dfc2462239249"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e45fb0d70dda1623a7045bd00c9e036e6f1f6a85e4ef2c8ae602b1dfadf7550"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c49b76a78c156979759d759339fb62eb0549515acfe4fd18bb151cc07366629c"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4a65474fd2b4c63e2c18ac67a0c6c66b82f4e73e2e4d940f837ed3d2fd9d4da"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc0cba54f47c660d9fa3218158b8963c517ed23bd9f45fe463f08262a4adae1"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ebe84a035993bb7668f58a0ebf998174fb723a39e4ef9fce95baabb42b787f"}, + {file = "watchfiles-0.22.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e0f0a874231e2839abbf473256efffe577d6ee2e3bfa5b540479e892e47c172d"}, + {file = "watchfiles-0.22.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:213792c2cd3150b903e6e7884d40660e0bcec4465e00563a5fc03f30ea9c166c"}, + {file = "watchfiles-0.22.0-cp311-none-win32.whl", hash = "sha256:b44b70850f0073b5fcc0b31ede8b4e736860d70e2dbf55701e05d3227a154a67"}, + {file = "watchfiles-0.22.0-cp311-none-win_amd64.whl", hash = "sha256:00f39592cdd124b4ec5ed0b1edfae091567c72c7da1487ae645426d1b0ffcad1"}, + {file = "watchfiles-0.22.0-cp311-none-win_arm64.whl", hash = "sha256:3218a6f908f6a276941422b035b511b6d0d8328edd89a53ae8c65be139073f84"}, + {file = "watchfiles-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c7b978c384e29d6c7372209cbf421d82286a807bbcdeb315427687f8371c340a"}, + {file = "watchfiles-0.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd4c06100bce70a20c4b81e599e5886cf504c9532951df65ad1133e508bf20be"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:425440e55cd735386ec7925f64d5dde392e69979d4c8459f6bb4e920210407f2"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68fe0c4d22332d7ce53ad094622b27e67440dacefbaedd29e0794d26e247280c"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8a31bfd98f846c3c284ba694c6365620b637debdd36e46e1859c897123aa232"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc2e8fe41f3cac0660197d95216c42910c2b7e9c70d48e6d84e22f577d106fc1"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b7cc10261c2786c41d9207193a85c1db1b725cf87936df40972aab466179b6"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28585744c931576e535860eaf3f2c0ec7deb68e3b9c5a85ca566d69d36d8dd27"}, + {file = "watchfiles-0.22.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00095dd368f73f8f1c3a7982a9801190cc88a2f3582dd395b289294f8975172b"}, + {file = "watchfiles-0.22.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:52fc9b0dbf54d43301a19b236b4a4614e610605f95e8c3f0f65c3a456ffd7d35"}, + {file = "watchfiles-0.22.0-cp312-none-win32.whl", hash = "sha256:581f0a051ba7bafd03e17127735d92f4d286af941dacf94bcf823b101366249e"}, + {file = "watchfiles-0.22.0-cp312-none-win_amd64.whl", hash = "sha256:aec83c3ba24c723eac14225194b862af176d52292d271c98820199110e31141e"}, + {file = "watchfiles-0.22.0-cp312-none-win_arm64.whl", hash = "sha256:c668228833c5619f6618699a2c12be057711b0ea6396aeaece4ded94184304ea"}, + {file = "watchfiles-0.22.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d47e9ef1a94cc7a536039e46738e17cce058ac1593b2eccdede8bf72e45f372a"}, + {file = "watchfiles-0.22.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28f393c1194b6eaadcdd8f941307fc9bbd7eb567995232c830f6aef38e8a6e88"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd64f3a4db121bc161644c9e10a9acdb836853155a108c2446db2f5ae1778c3d"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2abeb79209630da981f8ebca30a2c84b4c3516a214451bfc5f106723c5f45843"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cc382083afba7918e32d5ef12321421ef43d685b9a67cc452a6e6e18920890e"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d048ad5d25b363ba1d19f92dcf29023988524bee6f9d952130b316c5802069cb"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:103622865599f8082f03af4214eaff90e2426edff5e8522c8f9e93dc17caee13"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3e1f3cf81f1f823e7874ae563457828e940d75573c8fbf0ee66818c8b6a9099"}, + {file = "watchfiles-0.22.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8597b6f9dc410bdafc8bb362dac1cbc9b4684a8310e16b1ff5eee8725d13dcd6"}, + {file = "watchfiles-0.22.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0b04a2cbc30e110303baa6d3ddce8ca3664bc3403be0f0ad513d1843a41c97d1"}, + {file = "watchfiles-0.22.0-cp38-none-win32.whl", hash = "sha256:b610fb5e27825b570554d01cec427b6620ce9bd21ff8ab775fc3a32f28bba63e"}, + {file = "watchfiles-0.22.0-cp38-none-win_amd64.whl", hash = "sha256:fe82d13461418ca5e5a808a9e40f79c1879351fcaeddbede094028e74d836e86"}, + {file = "watchfiles-0.22.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3973145235a38f73c61474d56ad6199124e7488822f3a4fc97c72009751ae3b0"}, + {file = "watchfiles-0.22.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:280a4afbc607cdfc9571b9904b03a478fc9f08bbeec382d648181c695648202f"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a0d883351a34c01bd53cfa75cd0292e3f7e268bacf2f9e33af4ecede7e21d1d"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9165bcab15f2b6d90eedc5c20a7f8a03156b3773e5fb06a790b54ccecdb73385"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc1b9b56f051209be458b87edb6856a449ad3f803315d87b2da4c93b43a6fe72"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc1fc25a1dedf2dd952909c8e5cb210791e5f2d9bc5e0e8ebc28dd42fed7562"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc92d2d2706d2b862ce0568b24987eba51e17e14b79a1abcd2edc39e48e743c8"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97b94e14b88409c58cdf4a8eaf0e67dfd3ece7e9ce7140ea6ff48b0407a593ec"}, + {file = "watchfiles-0.22.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:96eec15e5ea7c0b6eb5bfffe990fc7c6bd833acf7e26704eb18387fb2f5fd087"}, + {file = "watchfiles-0.22.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:28324d6b28bcb8d7c1041648d7b63be07a16db5510bea923fc80b91a2a6cbed6"}, + {file = "watchfiles-0.22.0-cp39-none-win32.whl", hash = "sha256:8c3e3675e6e39dc59b8fe5c914a19d30029e36e9f99468dddffd432d8a7b1c93"}, + {file = "watchfiles-0.22.0-cp39-none-win_amd64.whl", hash = "sha256:25c817ff2a86bc3de3ed2df1703e3d24ce03479b27bb4527c57e722f8554d971"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b810a2c7878cbdecca12feae2c2ae8af59bea016a78bc353c184fa1e09f76b68"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7e1f9c5d1160d03b93fc4b68a0aeb82fe25563e12fbcdc8507f8434ab6f823c"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:030bc4e68d14bcad2294ff68c1ed87215fbd9a10d9dea74e7cfe8a17869785ab"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace7d060432acde5532e26863e897ee684780337afb775107c0a90ae8dbccfd2"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5834e1f8b71476a26df97d121c0c0ed3549d869124ed2433e02491553cb468c2"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0bc3b2f93a140df6806c8467c7f51ed5e55a931b031b5c2d7ff6132292e803d6"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fdebb655bb1ba0122402352b0a4254812717a017d2dc49372a1d47e24073795"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8e0aa0e8cc2a43561e0184c0513e291ca891db13a269d8d47cb9841ced7c71"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2f350cbaa4bb812314af5dab0eb8d538481e2e2279472890864547f3fe2281ed"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7a74436c415843af2a769b36bf043b6ccbc0f8d784814ba3d42fc961cdb0a9dc"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00ad0bcd399503a84cc688590cdffbe7a991691314dde5b57b3ed50a41319a31"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72a44e9481afc7a5ee3291b09c419abab93b7e9c306c9ef9108cb76728ca58d2"}, + {file = "watchfiles-0.22.0.tar.gz", hash = "sha256:988e981aaab4f3955209e7e28c7794acdb690be1efa7f16f8ea5aba7ffdadacb"}, +] + +[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 = "yarl" +version = "1.9.4" +description = "Yet another URL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, + {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, + {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, + {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, + {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, + {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, + {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, + {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"}, + {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"}, + {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"}, + {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"}, + {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, + {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, + {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, + {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, + {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "3e76224f8a7495cfa2a5be946f486415a3e7d1879e614766b110007c963bbb97" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..db65ebf --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,28 @@ +[tool.poetry] +name = "tgbot" +version = "0.1.0" +description = "" +authors = ["Ayrelia "] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.10" +aiogram = "^3.10.0" +aiohttp = "^3.9.5" +psycopg2-binary = "^2.9.9" +asyncpg = "^0.29.0" +sqlalchemy = "^2.0.31" +python-dotenv = "^1.0.1" +pydantic-settings = "^2.3.4" +asyncio = "^3.4.3" +apscheduler = "^3.10.4" +cachetools = "^5.3.3" +fastapi = "^0.111.1" +bcrypt = "4.0.1" +passlib = "^1.7.4" +cryptography = "^43.0.0" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..25927572ca590c22bc9231d1437565f124c885da GIT binary patch literal 808 zcmc(dPfvqD6vXFj;zy||6m2+oXuO#oYU&rDfP#@_1FcEFygKuir5<`WWcjoEV`kpI z{rN7?qQ^T16zK5CYlS-`Sn|HaEp9k3qQQ}upNZV4us-4phtjyHka2xw|9fb?q=u(Y ziUkfN9d!rJi%-c)FQ51`of`6vY{lmhHQ&FCO~@%*V(cpwpG?P->SscV!M!kdrIWkd z^ml50p}sv{u*C+SWEwhke^NzOb$ZTMOzr5@l3h@_=DWTewMSEzvqs2Qk`Jm%*V7|V z_m(eaJh3(@_N>HR&G<&0kxm6uv@?-ReM+Z3#XkH;rQQ;btgvN&wa@C*nj^Dx2iB*4 zt4~_h`MC7)+4k^*8mX;@GZ^=0gB|wMK2|urwoby9T UserInDB: + result = await db_session.execute(select(User).filter_by(username=username)) + user = result.scalars().first() + return user + +async def create_session(db_session: AsyncSession, user_id: int, expiration_time: int) -> Session: + session_token = secrets.token_urlsafe(16) + expires_at = datetime.utcnow() + timedelta(seconds=expiration_time) + session = Session(user_id=user_id, session_token=session_token, expires_at=expires_at) + db_session.add(session) + await db_session.commit() + await db_session.refresh(session) + return session + +async def get_session_by_token(db_session: AsyncSession, session_token: str) -> Session: + result = await db_session.execute( + select(Session).options(joinedload(Session.user)).filter_by(session_token=session_token) + ) + + session = result.scalars().first() + if session and session.expires_at < datetime.utcnow(): + await db_session.delete(session) + await db_session.commit() + return None + return session + +async def delete_session(db_session: AsyncSession, session_token: str) -> None: + result = await db_session.execute(select(Session).filter_by(session_token=session_token)) + session_to_delete = result.scalars().first() + if session_to_delete: + await db_session.execute(delete(Session).where(Session.id == session_to_delete.id)) + await db_session.commit() + + +async def create_otdel(db_session: AsyncSession, otdel: CreateUpdateOtdel) -> Otdels: + new_otdel = Otdels(name=otdel.name) + db_session.add(new_otdel) + await db_session.commit() + return new_otdel + +async def delete_otdel(db_session: AsyncSession, otdel_id: int): + async with db_session.begin(): # Начало транзакции + try: + query = select(Otdels).where(Otdels.id == otdel_id) + result = await db_session.execute(query) + otdel = result.scalar_one_or_none() + + if not otdel: + return JSONResponse( + content={"status": "error", "message": "Otdel not found"}, + status_code=404 + ) + + await db_session.delete(otdel) # Удаление объекта + # Не требуется явного commit, так как begin автоматически обрабатывает commit или rollback + except Exception as e: + await db_session.rollback() + return JSONResponse( + content={"status": "error", "message": f"Database error: {str(e)}"}, + status_code=500 + ) + + return JSONResponse( + content={"status": "success", "otdel_id": otdel_id}, + status_code=200 + ) + + +async def update_otdel(db_session: AsyncSession, otdel_id: int, otdel: CreateUpdateOtdel) -> None: + # Создаем запрос для получения объекта отдела по ID + query = select(Otdels).filter(Otdels.id == otdel_id) + + try: + # Выполняем запрос для поиска отдела + result = await db_session.execute(query) + existing_otdel = result.scalars().one() + + # Обновляем атрибуты отдела + existing_otdel.name = otdel.name + + # Фиксируем изменения + await db_session.commit() + + return JSONResponse( + content={"status": "success", "otdel_id": otdel_id}, + status_code=200 + ) + + except Exception as ex: + # В случае других ошибок откатываем изменения + await db_session.rollback() + return JSONResponse( + content={"status": "error", "message": f"Database error: {str(ex)}"}, + status_code=500 + ) + + + + +async def create_question( + db_session: AsyncSession, + title: str, + text: Optional[str], + file_data: Optional[str], + otdel_id: int, +): + new_question = Questions( + name=title, + answer=text, + file=file_data, + otdel_id=otdel_id, + ) + + db_session.add(new_question) + await db_session.commit() + return new_question + + + +async def update_question( + db_session: AsyncSession, + question_id: int, + title: Optional[str] = None, + text: Optional[str] = None, + file_data: Optional[str] = None, +): + try: + # Получаем существующий вопрос по его ID + result = await db_session.execute(select(Questions).where(Questions.id == question_id)) + question = result.scalar_one() + + # Обновляем поля, даже если они None + question.name = title + question.answer = text + question.file = file_data + + # Сохраняем изменения в базе данных + await db_session.commit() + return question + + except Exception as ex: + # Если вопрос с данным ID не найден, можно вернуть None или выбросить исключение + raise UpdateQuestionException(f'ERROR - {ex}') + + +async def delete_question(db_session: AsyncSession, question_id: int): + async with db_session.begin(): # Начало транзакции + try: + query = select(Questions).where(Questions.id == question_id) + result = await db_session.execute(query) + question = result.scalar_one_or_none() + + if not question: + return JSONResponse( + content={"status": "error", "message": "Question not found"}, + status_code=404 + ) + + await db_session.delete(question) # Удаление объекта + # Не требуется явного commit, так как begin автоматически обрабатывает commit или rollback + except Exception as e: + await db_session.rollback() + return JSONResponse( + content={"status": "error", "message": f"Database error: {str(e)}"}, + status_code=500 + ) + + return JSONResponse( + content={"status": "success", "question_id": question_id}, + status_code=200 + ) \ No newline at end of file diff --git a/webadmin/db/db.py b/webadmin/db/db.py new file mode 100644 index 0000000..b7eb4d7 --- /dev/null +++ b/webadmin/db/db.py @@ -0,0 +1,25 @@ +# database.py +from sqlalchemy import create_engine, MetaData +from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine +from sqlalchemy.ext.declarative import declarative_base +import os +from dotenv import load_dotenv + +load_dotenv() + +#DATABASE_URL = f"postgresql+asyncpg://{os.environ.get('DB_LOG')}:{os.environ.get('DB_PASS')}@{os.environ.get('DB_HOST')}:{os.environ.get('DB_PORT')}/{os.environ.get('DB_NAME')}" + +DATABASE_URL = ( + f"postgresql+asyncpg://{os.environ.get('DB_LOG')}:" + f"{os.environ.get('DB_PASS')}@{os.environ.get('DB_HOST')}:" + f"{os.environ.get('DB_PORT')}/{os.environ.get('DB_NAME')}" +) + +#DATABASE_URL = "sqlite+aiosqlite:///./test.db" + + +engine = create_async_engine(DATABASE_URL) + +async_session = async_sessionmaker(engine) + + diff --git a/webadmin/db/models.py b/webadmin/db/models.py new file mode 100644 index 0000000..e7f40f4 --- /dev/null +++ b/webadmin/db/models.py @@ -0,0 +1,38 @@ +from sqlalchemy import Boolean, Column, Integer, String, ForeignKey, DateTime +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import relationship, DeclarativeBase +from db.db import engine +from sqlalchemy.ext.asyncio import AsyncAttrs + + + + +class Base(AsyncAttrs, DeclarativeBase): + pass + +class User(Base): + __tablename__ = 'users_site' + + id = Column(Integer, primary_key=True, index=True) + username = Column(String, unique=True, index=True) + password = Column(String) + full_name = Column(String) + + has_access = Column(Boolean, server_default='False', nullable=False) + + sessions = relationship("Session", back_populates="user") + +class Session(Base): + __tablename__ = 'sessions' + + id = Column(Integer, primary_key=True, index=True) + user_id = Column(Integer, ForeignKey('users_site.id')) + session_token = Column(String, unique=True, index=True) + expires_at = Column(DateTime) + + user = relationship("User", back_populates="sessions") + + +async def create_tables(): + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) \ No newline at end of file diff --git a/webadmin/exc.py b/webadmin/exc.py new file mode 100644 index 0000000..3db279f --- /dev/null +++ b/webadmin/exc.py @@ -0,0 +1,15 @@ +from fastapi import HTTPException + +class NotAuthenticatedException(HTTPException): + pass + +class NotAccessException(HTTPException): + pass + +class NewsletterException(HTTPException): + pass + + + +class UpdateQuestionException(HTTPException): + pass \ No newline at end of file diff --git a/webadmin/function.py b/webadmin/function.py new file mode 100644 index 0000000..7302ca5 --- /dev/null +++ b/webadmin/function.py @@ -0,0 +1,81 @@ + +from fastapi import FastAPI, HTTPException, Request, Cookie +from cryptography.fernet import Fernet +from sqlalchemy import select +from db.db import async_session +from db import crud +from db.models import User +from exc import NotAuthenticatedException, NewsletterException, NotAccessException +import logging +import os +import sys +from sqlalchemy.ext.asyncio import AsyncSession +import asyncio + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))) + +from bot.db.models import UserTg +from bot.config import bot + + +key = os.getenv('SECRET_KEY_AUTH') +cipher_suite = Fernet(key) + + +def encrypt_token(token: str) -> str: + return cipher_suite.encrypt(token.encode()).decode() + +def decrypt_token(encrypted_token: str) -> str: + return cipher_suite.decrypt(encrypted_token.encode()).decode() + +async def get_current_user(request: Request, session_token: str = Cookie(None)): + + if not session_token: + return None + try: + decrypted_token = decrypt_token(session_token) + except Exception as ex: + logging.error(ex) + return None + async with async_session() as db_session: + session = await crud.get_session_by_token(db_session, decrypted_token) + if not session: + return None + user = await db_session.get(User, session.user_id) + return user + +async def get_authenticated_user(request: Request, session_token: str = Cookie(None)) -> User: + user = await get_current_user(request, session_token) + if user is None: + raise NotAuthenticatedException(status_code=401, detail="Not authenticated") + return user + +async def get_user_with_access(request: Request, session_token: str = Cookie(None)) -> User: + user = await get_current_user(request, session_token) + if user is None: + raise NotAuthenticatedException(status_code=401, detail="Not authenticated") + if user.has_access == False: + raise NotAccessException(status_code=401, detail="Нет доступа") + + return user + + +async def send_newsletter(message: str, db_session: AsyncSession) -> dict: + try: + # Создание запроса для получения всех пользователей + query = select(UserTg).where(UserTg.has_access == True) # Запрос на выбор всех записей из UserTg + + # Выполнение запроса и получение всех пользователей + result = await db_session.execute(query) + users = result.scalars().all() # Получаем все записи + + + for user in users: + try: + await bot.send_message(chat_id=user.user_id, text=message) + await asyncio.sleep(2.5) + except Exception as ex: + pass + except Exception as ex: + logging.error(ex) + raise NewsletterException(status_code=502, detail=f"Ошибка, рассылка не была начата - {ex}") diff --git a/webadmin/models.py b/webadmin/models.py new file mode 100644 index 0000000..a449764 --- /dev/null +++ b/webadmin/models.py @@ -0,0 +1,28 @@ + +from pydantic import BaseModel, field_validator +import re + + + +class NewsletterRequest(BaseModel): + message: str + +class CreateUpdateOtdel(BaseModel): + name: str + + +class UserLogin(BaseModel): + username: str + password: str + + @field_validator('username') + def username_validation(cls, v): + if not re.match(r"^[a-zA-Z0-9_-]{4,}$", v): + raise ValueError('Username must be at least 4 characters long and contain only English letters, digits, hyphens, or underscores') + return v + + @field_validator('password') + def password_validation(cls, v): + if len(v) < 6: + raise ValueError('Password must be at least 6 characters long') + return v \ No newline at end of file diff --git a/webadmin/routers/__init__.py b/webadmin/routers/__init__.py new file mode 100644 index 0000000..74fa7e3 --- /dev/null +++ b/webadmin/routers/__init__.py @@ -0,0 +1,5 @@ +from .auth_router import auth_router +from .user_router import user_router +from .otdels_router import otdels_router + +routers = (auth_router, user_router, otdels_router) \ No newline at end of file diff --git a/webadmin/routers/auth_router.py b/webadmin/routers/auth_router.py new file mode 100644 index 0000000..0e173a0 --- /dev/null +++ b/webadmin/routers/auth_router.py @@ -0,0 +1,68 @@ +from fastapi import APIRouter, Request, Depends, Form, HTTPException +from fastapi.responses import HTMLResponse, RedirectResponse +from sqlalchemy.ext.asyncio import AsyncSession +from db import crud +from db.db import async_session +from schemas import UserCreate +from config import settings +from function import encrypt_token, get_current_user +from config import templates +from db.models import User +from schemas import UserLogin +from pydantic import ValidationError + + +auth_router = APIRouter() + +@auth_router.get("/login", response_class=HTMLResponse) +async def get_login(request: Request, user: User = Depends(get_current_user)): + if user: + return RedirectResponse(url="/profile", status_code=303) + return templates.TemplateResponse("login.html", {"request": request}) + +@auth_router.post("/login", response_class=HTMLResponse) +async def login(request: Request, username: str = Form(...), password: str = Form(...)): + async with async_session() as db_session: + user = await crud.get_user_by_username(db_session, username) + if user is None or not crud.verify_password(password, user.password): + return templates.TemplateResponse("login.html", {"request": request, "error": "Неверный логин или пароль"}) + + session = await crud.create_session(db_session, user.id, settings.SESSION_EXPIRATION_TIME) + + response = RedirectResponse(url="/profile", status_code=303) + encrypted_token = encrypt_token(session.session_token) + response.set_cookie( + key="session_token", + value=encrypted_token, + httponly=True, + secure=False, + samesite="Lax", + max_age=settings.SESSION_EXPIRATION_TIME + ) + return response + +@auth_router.get("/register", response_class=HTMLResponse) +async def get_register(request: Request, user: User = Depends(get_current_user)): + if user: + return RedirectResponse(url="/profile", status_code=303) + return templates.TemplateResponse("register.html", {"request": request}) + +@auth_router.post("/register", response_class=HTMLResponse) +async def register(request: Request, username: str = Form(...), password: str = Form(...), full_name: str = Form(...)): + if not username or not password or not full_name: + return templates.TemplateResponse("register.html", {"request": request, "error": "Заполните все поля!"}) + + try: + user = UserCreate(username=username, password=password, full_name=full_name) + except ValidationError as e: + error_text = e.errors()[0]['msg'].split('Value error, ')[1] + return templates.TemplateResponse("register.html", {"request": request, "error": error_text}) + + async with async_session() as db_session: + existing_user = await crud.get_user_by_username(db_session, username) + if existing_user: + return templates.TemplateResponse("register.html", {"request": request, "error": "Такой логин уже есть!"}) + + await crud.create_user(db_session, user) + + return RedirectResponse(url="/login", status_code=303) \ No newline at end of file diff --git a/webadmin/routers/otdels_router.py b/webadmin/routers/otdels_router.py new file mode 100644 index 0000000..6c453bb --- /dev/null +++ b/webadmin/routers/otdels_router.py @@ -0,0 +1,298 @@ +import base64 +import math +from typing import Optional +import uuid +from fastapi import APIRouter, Body, File, Form, Query, Request, Depends, Cookie, HTTPException, UploadFile +from fastapi.responses import HTMLResponse, RedirectResponse, JSONResponse +from sqlalchemy import func +from sqlalchemy.ext.asyncio import AsyncSession +from datetime import datetime +from db import crud +from db.db import async_session +from function import decrypt_token, get_authenticated_user, get_user_with_access +from config import templates +from db.models import User +from sqlalchemy.future import select +import os +from models import CreateUpdateOtdel +import logging +from pathlib import Path + + + +from bot.db.models import Otdels, Questions + +from config import current_directory +UPLOAD_DIRECTORY = current_directory + "/uploads" + +otdels_router = APIRouter() + + +def generate_unique_filename(original_filename: str) -> str: + """Генерирует уникальное имя файла, если файл с таким именем уже существует.""" + file_extension = Path(original_filename).suffix + base_filename = Path(original_filename).stem + + while True: + unique_filename = f"{base_filename}_{uuid.uuid4().hex}{file_extension}" + file_path = os.path.join(UPLOAD_DIRECTORY, unique_filename) + if not os.path.exists(file_path): + return unique_filename + + +@otdels_router.get("/otdels", response_class=HTMLResponse) +async def users( + request: Request, + user: User = Depends(get_user_with_access), + page: int = Query(1, alias='page', ge=1), +): + ITEMS_PER_PAGE = 9 + PAGINATION_BUTTONS = 10 + + async with async_session() as db_session: + # Подсчитываем общее количество пользователей + total_users = await db_session.execute(select(func.count(Otdels.id))) + total_users = total_users.scalar_one() + total_pages = (total_users + ITEMS_PER_PAGE - 1) // ITEMS_PER_PAGE + + # Вычисляем смещение и лимит + offset = (page - 1) * ITEMS_PER_PAGE + + # Создаем запрос с сортировкой по id + stmt = select(Otdels).order_by(Otdels.id).offset(offset).limit(ITEMS_PER_PAGE) + result = await db_session.execute(stmt) + otdels = result.scalars().all() + + # Определяем страницы для отображения пагинации + start_page = max(1, page - PAGINATION_BUTTONS // 2) + end_page = min(total_pages, start_page + PAGINATION_BUTTONS - 1) + start_page = max(1, end_page - PAGINATION_BUTTONS + 1) + + return templates.TemplateResponse( + "otdels.html", + { + "request": request, + "user": user, + "otdels": otdels, + "current_page": page, + "total_pages": total_pages, + "start_page": start_page, + "end_page": end_page + } + ) + + +@otdels_router.post("/create-otdel", response_class=JSONResponse) +async def create_otdel( + request: CreateUpdateOtdel = Body(), + user: User = Depends(get_user_with_access), +): + + try: + async with async_session() as db_session: + new_otdel = await crud.create_otdel(db_session, request) + await db_session.refresh(new_otdel) # Обновить объект перед возвратом + except Exception as ex: + await db_session.rollback() + logging.error(ex) + return JSONResponse(content={"status": "error", "message": f"error - {ex}"}, status_code=501) + + return JSONResponse(content={"status": "success", "otdel": {"id": new_otdel.id, "name": new_otdel.name}}, status_code=200) + + + +@otdels_router.delete("/delete-otdel/{otdel_id}", response_class=JSONResponse) +async def delete_otdel_endpoint( + request: Request, + otdel_id: int, + user: User = Depends(get_user_with_access) +): + async with async_session() as db_session: + result = await crud.delete_otdel(db_session, otdel_id) + return result + + + +@otdels_router.put("/edit-otdel/{otdel_id}", response_class=JSONResponse) +async def edit_otdel_endpoint( + request: CreateUpdateOtdel, + otdel_id: int, + user: User = Depends(get_user_with_access) +): + async with async_session() as db_session: + otdel = CreateUpdateOtdel(name=request.name) + result = await crud.update_otdel(db_session, otdel_id, otdel) + return result + + + + + +@otdels_router.get("/questions", response_class=HTMLResponse) +async def questions_page( + request: Request, + user: User = Depends(get_user_with_access), + page: int = Query(1, alias='page', ge=1), + otdel_id: Optional[int] = Query(None, alias='otdel', ge=1), + + +): + ITEMS_PER_PAGE = 9 + async with async_session() as db_session: + # Получаем список отделов + stmt_otdels = select(Otdels).order_by(Otdels.id) + result_otdels = await db_session.execute(stmt_otdels) + otdels = result_otdels.scalars().all() + + # Получаем количество вопросов и сами вопросы для выбранного отдела + if otdel_id: + total_questions_stmt = select(func.count(Questions.id)).where(Questions.otdel_id == otdel_id) + total_questions_result = await db_session.execute(total_questions_stmt) + total_questions = total_questions_result.scalar_one() + total_pages = (total_questions + ITEMS_PER_PAGE - 1) // ITEMS_PER_PAGE + + offset = (page - 1) * ITEMS_PER_PAGE + + stmt_questions = ( + select(Questions) + .where(Questions.otdel_id == otdel_id) + .order_by(Questions.id) + .offset(offset) + .limit(ITEMS_PER_PAGE) + ) + result_questions = await db_session.execute(stmt_questions) + questions = result_questions.scalars().all() + + else: + questions = [] + total_questions = 0 + total_pages = 0 + + # Определяем страницы для отображения пагинации + start_page = max(1, page - 5) + end_page = min(total_pages, start_page + 10 - 1) + start_page = max(1, end_page - 10 + 1) + + return templates.TemplateResponse( + "questions.html", + { + "request": request, + "user": user, + "otdels": otdels, + "questions": questions, + "current_page": page, + "total_pages": total_pages, + "start_page": start_page, + "end_page": end_page, + "selected_otdel_id": otdel_id + } + ) + + + + + +@otdels_router.post("/create-question", response_class=JSONResponse) +async def create_question( + title: str = Form(...), + text: Optional[str] = Form(None), + file: Optional[UploadFile] = File(None), + otdel_id: int = Form(...), + user: User = Depends(get_user_with_access), +): + + try: + # Пример сохранения файла (если файл передан) + file_name = None + + if file: + print(file.filename) + print(current_directory) + # Генерация уникального имени файла + file_name = generate_unique_filename(file.filename) + file_path = os.path.join(UPLOAD_DIRECTORY, file_name) + + # Сохранение файла на сервере + with open(file_path, "wb") as buffer: + buffer.write(await file.read()) + + async with async_session() as db_session: + # Вызов CRUD функции для создания вопроса + new_question = await crud.create_question( + db_session=db_session, + title=title, + text=text, + file_data=file_name, + otdel_id=otdel_id + ) + + await db_session.refresh(new_question) # Обновить объект перед возвратом + + except Exception as ex: + logging.error(ex) + return JSONResponse(content={"status": "error", "message": f"error - {ex}"}, status_code=501) + + return JSONResponse(content={"status": "success", "question": {"id": new_question.id, "title": new_question.name}}, status_code=200) + + + + + + +@otdels_router.put("/edit-question", response_class=JSONResponse) +async def update_questions( + title: str = Form(...), + text: Optional[str] = Form(None), + file: Optional[UploadFile] = File(None), + id: int = Form(...), + user: User = Depends(get_user_with_access), +): + + try: + # Пример сохранения файла (если файл передан) + file_name = None + if file: + print(file.filename) + print(current_directory) + # Генерация уникального имени файла + file_name = generate_unique_filename(file.filename) + file_path = os.path.join(UPLOAD_DIRECTORY, file_name) + + # Сохранение файла на сервере + with open(file_path, "wb") as buffer: + buffer.write(await file.read()) + + async with async_session() as db_session: + # Вызов CRUD функции для создания вопроса + new_question = await crud.update_question( + db_session=db_session, + question_id=id, + title=title, + text=text, + file_data=file_name, + ) + + await db_session.refresh(new_question) # Обновить объект перед возвратом + + except Exception as ex: + logging.error(ex) + return JSONResponse(content={"status": "error", "message": f"error - {ex}"}, status_code=501) + + return JSONResponse(content={"status": "success", "question": {"id": new_question.id, "title": new_question.name}}, status_code=200) + + + + + + + + +@otdels_router.delete("/delete-question/{question_id}", response_class=JSONResponse) +async def delete_otdel_endpoint( + request: Request, + question_id: int, + user: User = Depends(get_user_with_access) +): + async with async_session() as db_session: + result = await crud.delete_question(db_session, question_id) + return result \ No newline at end of file diff --git a/webadmin/routers/user_router.py b/webadmin/routers/user_router.py new file mode 100644 index 0000000..5b85b90 --- /dev/null +++ b/webadmin/routers/user_router.py @@ -0,0 +1,136 @@ +import math +from fastapi import APIRouter, Body, Form, Query, Request, Depends, Cookie, HTTPException +from fastapi.responses import HTMLResponse, RedirectResponse, JSONResponse +from sqlalchemy import func +from sqlalchemy.ext.asyncio import AsyncSession +from datetime import datetime +from db import crud +from db.db import async_session +from function import decrypt_token, get_authenticated_user, send_newsletter, get_user_with_access +from config import templates +from db.models import User +from sqlalchemy.future import select +import asyncio +import logging +from models import NewsletterRequest + + +from bot.db.models import UserTg, Otdels, Questions + + +user_router = APIRouter() + +@user_router.get("/", response_class=HTMLResponse) +async def read_root(request: Request, user: User = Depends(get_authenticated_user)): + return templates.TemplateResponse("index.html", {"request": request, "user": user}) + +@user_router.get("/profile", response_class=HTMLResponse) +async def profile(request: Request, user: User = Depends(get_authenticated_user)): + + + return templates.TemplateResponse("profile.html", {"request": request, "user": user}) + + + + +@user_router.get("/users", response_class=HTMLResponse) +async def users( + request: Request, + user: User = Depends(get_user_with_access), + page: int = Query(1, alias='page', ge=1) +): + ITEMS_PER_PAGE = 12 + PAGINATION_BUTTONS = 10 + + async with async_session() as db_session: + # Подсчитываем общее количество пользователей + total_users = await db_session.execute(select(func.count(UserTg.id))) + total_users = total_users.scalar_one() + total_pages = (total_users + ITEMS_PER_PAGE - 1) // ITEMS_PER_PAGE + + # Вычисляем смещение и лимит + offset = (page - 1) * ITEMS_PER_PAGE + + # Создаем запрос с сортировкой по id + stmt = select(UserTg).order_by(UserTg.id).offset(offset).limit(ITEMS_PER_PAGE) + result = await db_session.execute(stmt) + users = result.scalars().all() + + # Определяем страницы для отображения пагинации + start_page = max(1, page - PAGINATION_BUTTONS // 2) + end_page = min(total_pages, start_page + PAGINATION_BUTTONS - 1) + start_page = max(1, end_page - PAGINATION_BUTTONS + 1) + + return templates.TemplateResponse( + "users.html", + { + "request": request, + "user": user, + "users": users, + "current_page": page, + "total_pages": total_pages, + "start_page": start_page, + "end_page": end_page + } + ) + + + +@user_router.post("/update_status/{user_id}", response_class=HTMLResponse) +async def update_status( + request: Request, + user_id: int, + user: User = Depends(get_user_with_access) +): + logging.info(f"Received request to update status for user_id: {user_id}") + async with async_session() as db_session: + result = await db_session.execute(select(UserTg).filter(UserTg.id == user_id)) + user_record = result.scalars().first() + + if not user_record: + raise HTTPException(status_code=404, detail="User not found") + + user_record.has_access = not user_record.has_access + + db_session.add(user_record) + await db_session.commit() + + logging.info(f"Successfully updated status for user_id: {user_id}") + return JSONResponse(content={"status": "success"}) + + + + +@user_router.post("/send-newsletter", response_class=JSONResponse) +async def newsletter( + request: NewsletterRequest, # Используем Pydantic модель + user: User = Depends(get_user_with_access) +): + async with async_session() as db_session: + try: + asyncio.create_task(send_newsletter(str(request.message), db_session)) + except Exception as ex: + logging.error(ex) + return JSONResponse(content={"status": f"error", "message": f"error - {ex}"}, status_code=501) + + return JSONResponse(content={"status": "success"}, status_code=200) + + + + +@user_router.get("/logout", response_class=HTMLResponse) +async def logout(request: Request, session_token: str = Cookie(None)): + if not session_token: + raise HTTPException(status_code=401, detail="Not authenticated") + + try: + decrypted_token = decrypt_token(session_token) + except Exception: + raise HTTPException(status_code=401, detail="Invalid session token") + + async with async_session() as db_session: + await crud.delete_session(db_session, decrypted_token) + + response = RedirectResponse(url="/", status_code=303) + response.delete_cookie("session_token") + return response \ No newline at end of file diff --git a/webadmin/schemas.py b/webadmin/schemas.py new file mode 100644 index 0000000..a638682 --- /dev/null +++ b/webadmin/schemas.py @@ -0,0 +1,33 @@ +from pydantic import BaseModel +from pydantic import BaseModel, field_validator + +class UserBase(BaseModel): + username: str + full_name: str + + + +class UserCreate(UserBase): + password: str + + @field_validator('username') + def username_length(cls, v): + if len(v) < 4: + raise ValueError('Имя пользователя должно содержать не менее 4 символов') + return v + + @field_validator('password') + def password_length(cls, v): + if len(v) < 6: + raise ValueError('Пароль должен состоять минимум из 6 символов') + return v + +class UserLogin(UserBase): + password: str + +class UserInDB(UserBase): + id: int + hashed_password: str + + class Config: + from_attributes = True \ No newline at end of file diff --git a/webadmin/static/css/common.css b/webadmin/static/css/common.css new file mode 100644 index 0000000..48f7c61 --- /dev/null +++ b/webadmin/static/css/common.css @@ -0,0 +1,34 @@ +/* Общие стили для страницы */ +.page-wrapper { + position: relative; +} + + +/* Стили для пагинации */ +.pagination { + display: flex; + justify-content: center; + gap: 10px; + margin-top: 20px; + margin-bottom: 20px; +} + +.pagination-button { + padding: 8px 16px; + background-color: #333; + color: #e0e0e0; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; +} + +.pagination-button:hover { + background-color: #bb86fc; + transform: scale(1.05); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); +} + +.pagination-button.active { + background-color: #bb86fc; + pointer-events: none; +} diff --git a/webadmin/static/css/modal.css b/webadmin/static/css/modal.css new file mode 100644 index 0000000..8c754fa --- /dev/null +++ b/webadmin/static/css/modal.css @@ -0,0 +1,136 @@ +/* Стили модальных окон */ +.modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + justify-content: center; + align-items: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.modal.show { + display: flex; + opacity: 1; +} + +/* Слой фона для размытия */ +.modal::before { + content: ""; + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.6); /* Полупрозрачный фон */ + backdrop-filter: blur(8px); /* Легкий эффект блюра */ + z-index: -1; /* Под модальным окном */ +} + +.modal-content { + background-color: #1e1e1e; /* Тёмно-серый фон для карточки */ + padding: 20px; + border: 1px solid #333; + width: calc(100% - 40px); /* Оставить место для отступов */ + max-width: 500px; + border-radius: 15px; /* Закругленные углы */ + color: #e0e0e0; /* Светлый текст */ + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); + transform: scale(0.9); + transition: transform 0.3s ease; + backdrop-filter: blur(10px); /* Легкий эффект блюра */ + box-sizing: border-box; /* Учесть padding и border в ширине */ +} + +.modal.show .modal-content { + transform: scale(1); +} + +.close-button { + color: #e0e0e0; + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-button:hover, +.close-button:focus { + color: #bb86fc; + text-decoration: none; +} + +/* Стили для форм */ +form { + display: flex; + flex-direction: column; +} + +form label { + margin-bottom: 10px; + color: #e0e0e0; +} + +form input[type="text"], +form textarea { + width: 100%; + padding: 10px; + margin-bottom: 20px; + border-radius: 5px; + border: 1px solid #333; + background-color: #2c2c2c; + color: #e0e0e0; + resize: none; + box-sizing: border-box; /* Учесть padding и border в ширине */ +} + +form input[type="text"]:focus, +form textarea:focus { + outline: none; + border-color: #bb86fc; + background-color: #3a3a3a; +} + +/* Стили для кнопок */ +.save-button { + background-color: #bb86fc; + color: #fff; + border: none; + padding: 10px 15px; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; + align-self: flex-end; +} + +.save-button:hover { + background-color: #9a67ea; + transform: scale(1.05); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); +} + +/* Стили кнопок для создания отдела и рассылки */ +#create-button, +#newsletter-button { + background-color: #6200ea; + color: white; + border: none; + padding: 10px 15px; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; +} + +#create-button:hover, +#newsletter-button:hover { + background-color: #3700b3; + transform: scale(1.05); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); +} + + diff --git a/webadmin/static/css/otdels.css b/webadmin/static/css/otdels.css new file mode 100644 index 0000000..dd36f70 --- /dev/null +++ b/webadmin/static/css/otdels.css @@ -0,0 +1,177 @@ +/* Общие стили для страницы */ +.page-wrapper { + position: relative; + padding: 10px; /* Добавлено внутреннее пространство для предотвращения наложения содержимого на края */ +} + +/* Контейнер для заголовка и кнопки создания */ +.header-container { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + width: 100%; +} + +.header-container h1 { + font-size: 2em; /* Основной размер шрифта для заголовка */ + margin: 0; + word-break: break-word; /* Предотвращение переполнения текста заголовка */ +} + +/* Кнопка создания отдела */ +.create-button { + background: linear-gradient(135deg, #bb86fc, #9a67ea); + color: #fff; + border: none; + padding: 12px 20px; + border-radius: 8px; + cursor: pointer; + transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); + font-size: 16px; + font-weight: bold; + position: relative; + overflow: hidden; + text-align: center; /* Центрирование текста */ +} + +.create-button::before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + width: 300%; + height: 300%; + background: rgba(255, 255, 255, 0.2); + border-radius: 50%; + transform: translate(-50%, -50%) scale(0); + transition: transform 0.4s ease; + z-index: 0; +} + +.create-button:hover::before { + transform: translate(-50%, -50%) scale(1); +} + +.create-button:hover { + background: linear-gradient(135deg, #9a67ea, #bb86fc); + transform: scale(1.05); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); +} + +.create-button span { + position: relative; + z-index: 1; +} + +/* Контейнер для карточек отдела */ +.card-container { + display: flex; + flex-wrap: wrap; /* Разрешает перенос карточек на новую строку */ + gap: 20px; /* Отступы между карточками */ + justify-content: center; /* Центрирование карточек по горизонтали */ +} + +/* Общие стили для карточек отдела */ +.user-card { + background: #1e1e1e; + color: #e0e0e0; + border-radius: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); + padding: 20px; + transition: transform 0.3s ease, box-shadow 0.3s ease; + overflow: hidden; /* Чтобы контент не выходил за границы карточки */ + flex: 1 1 300px; /* Разрешает карточкам быть не меньше 300px в ширину и расти, если есть место */ +} + +.user-card:hover { + transform: scale(1.02); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.7); +} + +.user-card-header { + margin-bottom: 15px; +} + +.user-card-header h2 { + margin: 0; + color: #bb86fc; + font-size: 1.2em; /* Увеличен размер шрифта заголовка карточки */ +} + +/* Стили кнопок */ +.user-actions { + display: flex; + gap: 10px; +} + +.delete-button, .edit-button { + background: linear-gradient(135deg, #bb86fc, #9a67ea); + color: white; + border: none; + padding: 12px 20px; + border-radius: 8px; + cursor: pointer; + transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); + font-size: 16px; + text-align: center; /* Центрирование текста */ +} + +.delete-button:hover, .edit-button:hover { + background: linear-gradient(135deg, #9a67ea, #bb86fc); + transform: scale(1.05); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); +} + +/* Медиазапросы для мобильных устройств */ +@media (max-width: 768px) { + .header-container h1 { + font-size: 1.6em; + } + + .create-button { + font-size: 14px; + padding: 10px 15px; + } + + .user-card { + padding: 15px; + } + + .user-card-header h2 { + font-size: 1.1em; + } + + .delete-button, .edit-button { + font-size: 14px; + padding: 10px 15px; + } +} + +/* Медиазапросы для экстра маленьких экранов (например, телефоны в портретном режиме) */ +@media (max-width: 480px) { + .header-container h1 { + font-size: 1.3em; + } + + .create-button { + font-size: 12px; + padding: 8px 12px; + } + + .user-card { + padding: 10px; + } + + .user-card-header h2 { + font-size: 1em; + } + + .delete-button, .edit-button { + font-size: 12px; + padding: 8px 12px; + } +} diff --git a/webadmin/static/css/questions.css b/webadmin/static/css/questions.css new file mode 100644 index 0000000..6e6d646 --- /dev/null +++ b/webadmin/static/css/questions.css @@ -0,0 +1,231 @@ +/* Общие стили для страницы */ +.page-wrapper { + position: relative; + padding: 20px; /* Добавлено для отступов от края экрана */ +} + +/* Контейнер для заголовка и кнопки создания */ +.header-container { + display: flex; + flex-wrap: wrap; /* Позволяет элементам переноситься на следующую строку при необходимости */ + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + width: 100%; +} + +/* Заголовок */ +.header-container h1 { + font-size: 2em; /* Основной размер шрифта для заголовка */ + margin: 0; + word-break: break-word; /* Предотвращение переполнения текста заголовка */ +} + +/* Контейнер для выбора отдела */ +.select-container { + flex: 1; /* Занимает оставшееся пространство */ + display: flex; + justify-content: center; /* Выравнивание по центру */ + margin: 0 20px; /* Отступы слева и справа */ +} + +/* Выпадающий список выбора отдела */ +.select-container select { + background: #1e1e1e; + color: #e0e0e0; + border: 1px solid #bb86fc; + border-radius: 8px; + padding: 10px; /* Уменьшены отступы для улучшения удобства */ + font-size: 0.9em; /* Уменьшен размер шрифта для лучшего восприятия */ + box-sizing: border-box; /* Учитывает отступы в ширине */ +} + +/* Кнопка создания отдела */ +.create-button { + background: linear-gradient(135deg, #bb86fc, #9a67ea); + color: #fff; + border: none; + padding: 10px 15px; + border-radius: 8px; + cursor: pointer; + transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); + font-size: 14px; + font-weight: bold; + position: relative; + overflow: hidden; + text-align: center; /* Центрирование текста */ +} + +/* Псевдо-элемент для кнопки создания */ +.create-button::before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + width: 300%; + height: 300%; + background: rgba(255, 255, 255, 0.2); + border-radius: 50%; + transform: translate(-50%, -50%) scale(0); + transition: transform 0.4s ease; + z-index: 0; +} + +/* Эффекты при наведении на кнопку */ +.create-button:hover::before { + transform: translate(-50%, -50%) scale(1); +} + +.create-button:hover { + background: linear-gradient(135deg, #9a67ea, #bb86fc); + transform: scale(1.05); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); +} + +.create-button span { + position: relative; + z-index: 1; +} + +/* Общие стили для карточек вопроса */ +.user-card { + background: #1e1e1e; + color: #e0e0e0; + border-radius: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); + padding: 15px; /* Уменьшены отступы для карточек */ + margin-bottom: 20px; + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +/* Эффекты при наведении на карточки */ +.user-card:hover { + transform: scale(1.02); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.7); +} + +.user-card-header { + margin-bottom: 10px; +} + +.user-card-header h2 { + margin: 0; + color: #bb86fc; + font-size: 1.1em; /* Уменьшен размер шрифта заголовка карточки */ +} + +/* Стили кнопок */ +.user-actions { + display: flex; + gap: 10px; + flex-wrap: wrap; /* Позволяет кнопкам переноситься на следующую строку при необходимости */ +} + +/* Стили для кнопок */ +.delete-button, .edit-button { + background: linear-gradient(135deg, #bb86fc, #9a67ea); + color: white; + border: none; + padding: 10px 15px; /* Уменьшены отступы для кнопок */ + border-radius: 8px; + cursor: pointer; + transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); + font-size: 14px; /* Уменьшен размер шрифта для кнопок */ + text-align: center; /* Центрирование текста */ +} + +/* Эффекты при наведении на кнопки */ +.delete-button:hover, .edit-button:hover { + background: linear-gradient(135deg, #9a67ea, #bb86fc); + transform: scale(1.05); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); +} + +/* Медиазапросы для мобильных устройств */ +@media (max-width: 768px) { + .header-container { + flex-direction: column; + align-items: center; /* Центрирование элементов */ + } + + .header-container h1 { + font-size: 1.6em; /* Уменьшен размер шрифта для заголовка */ + text-align: center; + margin-bottom: 10px; + } + + .select-container { + margin: 10px 0; /* Отступы сверху и снизу для контейнера выбора отдела */ + width: 100%; /* Ширина контейнера выбора отдела */ + justify-content: center; /* Центрирование выбора */ + } + + .select-container select { + width: 100%; /* Ширина селекта на мобильных устройствах */ + box-sizing: border-box; + } + + .create-button { + font-size: 14px; + padding: 8px 12px; + width: 100%; /* Ширина кнопки на мобильных устройствах */ + } + + .user-card { + padding: 15px; + } + + .user-card-header h2 { + font-size: 1.1em; + } + + .delete-button, .edit-button { + font-size: 14px; + padding: 10px 15px; + } +} + +/* Медиазапросы для экстра маленьких экранов (например, телефоны в портретном режиме) */ +@media (max-width: 480px) { + .header-container { + flex-direction: column; + align-items: center; /* Центрирование элементов */ + padding: 10px 0; /* Уменьшены отступы */ + } + + .header-container h1 { + font-size: 1.4em; /* Уменьшенный размер шрифта */ + text-align: center; + margin-bottom: 10px; + } + + .select-container { + margin: 10px 0; /* Отступы сверху и снизу */ + } + + .select-container select { + padding: 6px; + font-size: 0.8em; + } + + .create-button { + font-size: 12px; + padding: 6px 10px; + width: 100%; /* Ширина кнопки на экстра маленьких экранах */ + } + + .user-card { + padding: 10px; + } + + .user-card-header h2 { + font-size: 1em; + } + + .delete-button, .edit-button { + font-size: 12px; + padding: 8px 12px; + } +} \ No newline at end of file diff --git a/webadmin/static/css/styles.css b/webadmin/static/css/styles.css new file mode 100644 index 0000000..c7652b8 --- /dev/null +++ b/webadmin/static/css/styles.css @@ -0,0 +1,394 @@ +/* Общие стили для страницы */ +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + margin: 0; + padding: 0; + color: #e0e0e0; + background-color: #121212; + overflow-x: hidden; /* Предотвращение горизонтального скролла */ + display: flex; + flex-direction: column; + min-height: 100vh; /* Обеспечивает минимальную высоту страницы */ + box-sizing: border-box; /* Учитывает паддинги и границы в размерах */ +} + +/* Стили для заголовка */ +header { + background: #1e1e1e; + color: #e0e0e0; + padding: 20px 0; /* Увеличенное паддинг */ + position: fixed; + width: 100%; + top: 0; + left: 0; + z-index: 1000; + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.4); /* Увеличенная тень */ + box-sizing: border-box; /* Учитывает паддинги и границы в размерах */ +} + +header .container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 30px; /* Увеличенное паддинг */ + box-sizing: border-box; /* Учитывает паддинги и границы в размерах */ +} + +header h1 { + margin: 0; + font-size: 1.8em; /* Увеличенный размер шрифта */ +} + +.menu-toggle { + display: none; + font-size: 28px; /* Увеличенный размер шрифта */ + background: none; + border: none; + color: #e0e0e0; + cursor: pointer; +} + +header nav { + display: flex; + align-items: center; +} + +header nav a { + color: #e0e0e0; + text-decoration: none; + margin: 0 20px; /* Увеличенный отступ */ + font-weight: bold; + font-size: 1.1em; /* Увеличенный размер шрифта */ + transition: color 0.3s ease; +} + +header nav a:hover { + color: #bb86fc; +} + +header nav.open { + display: block; +} + +@media (max-width: 768px) { + .menu-toggle { + display: block; + } + + header nav { + display: none; + flex-direction: column; + align-items: flex-start; + width: 100%; + } + + header nav.open { + display: flex; + position: absolute; + top: 80px; /* Отрегулированное положение */ + left: 0; + background: #1e1e1e; + width: 100%; + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.4); /* Увеличенная тень */ + } + + header nav a { + margin: 15px 0; /* Увеличенный отступ */ + width: 100%; + padding: 15px 20px; /* Увеличенные паддинги */ + box-sizing: border-box; + font-size: 1.2em; /* Увеличенный размер шрифта */ + } +} + +/* Стили для основного контента */ +main { + padding: 100px 30px 30px; /* Увеличенное паддинг */ + flex: 1; /* Позволяет основному контенту занимать оставшееся пространство */ + box-sizing: border-box; /* Учитывает паддинги и границы в размерах */ +} + +/* Контейнер для контента */ +.content-container { + max-width: 1060px; /* Увеличенная максимальная ширина */ + margin: auto; + padding: 30px; /* Увеличенные паддинги */ + display: flex; + flex-direction: column; + align-items: center; + position: relative; +} + +/* Стили для формы и профиля */ +.form-container, .profile-container { + background: #1e1e1e; + padding: 30px; /* Увеличенные паддинги */ + border-radius: 12px; /* Увеличенный радиус скругления */ + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.6); /* Увеличенная тень */ + min-width: 50%; + position: relative; + animation: fadeIn 0.5s ease-in; +} + +/* Стили для заголовков */ +h2 { + margin-top: 0; + color: #bb86fc; + font-size: 1.5em; /* Увеличенный размер шрифта */ +} + +/* Стили для форм */ +form { + display: flex; + flex-direction: column; +} + +form label { + margin: 15px 0 10px; /* Увеличенный отступ */ + color: #e0e0e0; + font-size: 1.1em; /* Увеличенный размер шрифта */ +} + +form input { + padding: 15px; /* Увеличенные паддинги */ + margin-bottom: 15px; /* Увеличенный отступ */ + border: 1px solid #333; + border-radius: 8px; /* Увеличенный радиус скругления */ + background: #333; + color: #e0e0e0; + font-size: 1em; /* Увеличенный размер шрифта */ + transition: border-color 0.3s ease; +} + +form input:focus { + border-color: #bb86fc; + outline: none; +} + +form button { + padding: 15px; /* Увеличенные паддинги */ + background-color: #bb86fc; + border: none; + color: #fff; + border-radius: 8px; /* Увеличенный радиус скругления */ + cursor: pointer; + font-size: 18px; /* Увеличенный размер шрифта */ + transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; +} + +form button:hover { + background-color: #9a67ea; + transform: scale(1.05); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5); /* Увеличенная тень */ +} + +.alert { + padding: 20px; /* Увеличенные паддинги */ + margin-bottom: 25px; /* Увеличенный отступ */ + border: 1px solid transparent; + border-radius: 6px; /* Увеличенный радиус скругления */ + display: none; /* По умолчанию скрыт */ +} + +/* Стили для сообщений об ошибках */ +.alert.error { + color: #a94442; /* Цвет текста */ + background-color: #f2dede; /* Цвет фона */ + border-color: #ebccd1; /* Цвет границы */ +} + +/* Показать блок с ошибкой */ +.alert.show { + display: block; +} + +/* Стили для информации профиля */ +.profile-info p { + margin: 20px 0; /* Увеличенный отступ */ + color: #e0e0e0; + font-size: 1.2em; /* Увеличенный размер шрифта */ +} + +.profile-action { + margin-top: 30px; /* Увеличенный отступ */ +} + +.logout-button { + display: inline-block; + padding: 15px 25px; /* Увеличенные паддинги */ + background-color: #bb86fc; + color: #fff; + text-decoration: none; + border-radius: 8px; /* Увеличенный радиус скругления */ + transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; +} + +.logout-button:hover { + background-color: #9a67ea; + transform: scale(1.05); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5); /* Увеличенная тень */ +} + +/* Стили для карточек профиля */ +.profile-card { + background: #333; + padding: 30px; /* Увеличенные паддинги */ + border-radius: 12px; /* Увеличенный радиус скругления */ + margin-top: 30px; /* Увеличенный отступ */ + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.6); /* Увеличенная тень */ + color: #e0e0e0; +} + +/* Стили для футера */ +footer { + background: #1e1e1e; + color: #e0e0e0; + padding: 20px 0; /* Увеличенные паддинги */ + text-align: center; + width: 100%; + font-size: 1.2em; /* Увеличенный размер шрифта */ +} + +/* Стили для страницы индекса */ +.index-container { + text-align: center; + color: #e0e0e0; +} + +.index-container h2 { + color: #bb86fc; + font-size: 2em; /* Увеличенный размер шрифта */ +} + +.index-container p { + margin: 15px 0; /* Увеличенный отступ */ + font-size: 1.2em; /* Увеличенный размер шрифта */ +} + +/* Анимация появления */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.alert-danger { + background-color: #f44336; + color: #ffffff; +} + +/* Стили для карточек пользователей */ +.user-cards-container { + display: flex; + flex-wrap: wrap; + gap: 30px; /* Увеличенный интервал */ + justify-content: center; +} + +.user-card { + background: #1e1e1e; + color: #e0e0e0; + border-radius: 12px; /* Увеличенный радиус скругления */ + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.6); /* Увеличенная тень */ + padding: 30px; /* Увеличенные паддинги */ + width: 320px; /* Увеличенная ширина */ + transition: transform 0.3s ease, box-shadow 0.3s ease; + box-sizing: border-box; /* Учитывает паддинги и границы в размерах */ +} + +.user-card:hover { + transform: scale(1.03); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.7); /* Увеличенная тень */ +} + +.user-card-header { + margin-bottom: 20px; /* Увеличенный отступ */ +} + +.user-card-header h2 { + margin: 0; + color: #bb86fc; + font-size: 1.4em; /* Увеличенный размер шрифта */ +} + +.user-id { + font-size: 1em; /* Увеличенный размер шрифта */ +} + +.user-status { + display: flex; + align-items: center; + gap: 20px; /* Увеличенный интервал */ +} + +.switch { + position: relative; + display: inline-block; + width: 40px; /* Увеличенная ширина */ + height: 24px; /* Увеличенная высота */ +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + transition: .4s; + border-radius: 24px; /* Увеличенный радиус скругления */ +} + +.slider:before { + position: absolute; + content: ""; + height: 16px; /* Увеличенная высота */ + width: 16px; /* Увеличенная ширина */ + border-radius: 50%; + left: 4px; + bottom: 4px; + background-color: white; + transition: .4s; +} + +input:checked + .slider { + background-color: #bb86fc; +} + +input:checked + .slider:before { + transform: translateX(16px); /* Отрегулированное значение */ +} + +.status-label { + margin: 0; + color: #e0e0e0; +} + +/* Обертка страницы */ +.page-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; /* Обеспечивает минимальную высоту страницы */ +} + +/* Класс для анимации появления */ +.fade-in { + opacity: 0; + animation: fadeIn 0.5s ease-in forwards; +} + +.show { + opacity: 1; +} diff --git a/webadmin/static/css/users.css b/webadmin/static/css/users.css new file mode 100644 index 0000000..994f69b --- /dev/null +++ b/webadmin/static/css/users.css @@ -0,0 +1,161 @@ +/* Подключите общий файл стилей */ +@import url('common.css'); + + + + +/* Основной контейнер карточек пользователей */ +.user-cards-container { + display: grid; + grid-template-columns: repeat(3, 1fr); /* Три колонки */ + gap: 20px; + justify-content: center; +} + +/* Стили карточек пользователей */ +.user-card { + background: linear-gradient(135deg, #2e2e2e, #1e1e1e); + border-radius: 15px; + padding: 20px; + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3); + color: #e0e0e0; + display: flex; + flex-direction: column; + align-items: center; + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.user-card:hover { + transform: scale(1.05); + box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4); +} + +/* Заголовок карточки */ +.user-card-header { + margin-bottom: 15px; + text-align: center; +} + +.user-id { + font-size: 14px; + color: #bb86fc; +} + +.user-username { + font-size: 22px; + margin: 5px 0; + font-weight: bold; +} + +/* Статус пользователя */ +.user-status { + display: flex; + align-items: center; + gap: 10px; + width: 100%; + justify-content: center; +} + +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 30px; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + transition: .4s; + border-radius: 15px; +} + +.slider:before { + position: absolute; + content: ""; + height: 22px; + width: 22px; + border-radius: 50%; + left: 4px; + bottom: 4px; + background-color: white; + transition: .4s; +} + +input:checked + .slider { + background-color: #bb86fc; +} + +input:checked + .slider:before { + transform: translateX(30px); +} + +.status-label { + font-size: 16px; + color: #e0e0e0; +} + +/* Медиа-запросы для мобильных устройств */ +@media (max-width: 768px) { + .user-cards-container { + grid-template-columns: repeat(2, 1fr); /* Две колонки на планшетах */ + } + + .user-card { + padding: 15px; + } +} + +/* Медиа-запросы для очень маленьких устройств */ +@media (max-width: 480px) { + .user-cards-container { + grid-template-columns: 1fr; /* Одна колонка на мобильных устройствах */ + } + + .user-card { + padding: 10px; + } + + .user-card-header { + margin-bottom: 10px; + } + + .user-id { + font-size: 12px; + } + + .user-username { + font-size: 18px; + } + + .status-label { + font-size: 14px; + } + + .switch { + width: 50px; + height: 25px; + } + + .slider:before { + height: 18px; + width: 18px; + left: 3px; + bottom: 3px; + } + + input:checked + .slider:before { + transform: translateX(25px); + } +} diff --git a/webadmin/static/favicon.png b/webadmin/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..145e9302f47a5f50bca9731a9a2581469a1dba0d GIT binary patch literal 1685 zcmV;G25R|EoBp1t0Jhlg9z^W0f?Y+OEd~DSPiHk zt{)7d2`UK6;ub$>Q29VKQ9kS&U06hT3xAkj7`MigXmDbPN1%zu*O^}c)G zYcES0PBQ7cb7$txnK|qK6!uZerE=g>;4xq}uoCzU_#4;(Yy?&V?*Ws5tARtpKZz1x&A@)0l*7zmsU90arl%76ob?m&NF4Ddeihnv3v zxL-HBTj(6%8@GYwz;K{r6V}=v7z%vs)>|jB+htTH`ES$*O$ROqO5B(>?)QnnYq|-e zYM@`9vEhIgIfkmmXr@#NEN~(;#%-h>a4Rqa=%l`DrQ|txQyX*$HW!K9RNx-RYzc4^ zu-P5f(OEHZDDagQt_6C#j}8HT&<4*|zge!G?qoe9q3=%h*(SHix{VZbM%{p=8v7$~ zQgfL&09d94zXlFhe`lG|u(9XWZzub6#4^P(Vz<>p{i9s}GS_cn^?~|-0*-Ae6Rm)` zPNB^L8TE>6wjMZA@1BVt6*_G=-6ev_KuuMSbT2 zTOu2JPVej_8;W4W+GTooZ=`=GFwEV|67^3nmWe*vlzHU7uD>TRMW+@%YGaL_%;WTu z7%}lg9zHnK9Woqex$hnaY|{JdiV>+VHEE*zkS!LdgFL!z-e^Dfp<)|<$Bl$I&sq3C4dtVxvQ!cqS(>e{9BXKa#f3U_ZmGxVo6MtBn zJ1k}orvT3af9X)mq)+p;H=CPCw!v>T*nEM}l`$u2CULT}|5=c2^g;K1-^{WFLu1ds z%eUpFi!|^%iCC$uMV!bqIM2I4ia1^}d?9cqaE$Z(M*yeEU{q;yX0{hQi&&fITbrFY z1(Q4?iIG<{XtbWMNQhilxeX>oxJfz^+65XjJ7J7P07!)G`SW~Cw2?Jxbbet@!osg= z%zz9Sxm#l#cuq6)X#Zv^HDxW! zL{Wfh&!5II@`+xCD0WuLqJ1Lsn!||Y^G1~^Ygs}U9Hl+~8plYDURpYei*NF^;BnVv zz(}Lg=aLk?{8M8}W&Rstob$gv)Y@osnpTc&b>@@|Z!( zQue8P(EOS-7dX zC@q?>=s7h+F+09hig%RyLgF9S417Z(mQ~O=v4EhloeLWCVqVpe(;iTOTzAQUk@E`B zw~-oCrRUEmAhBBO%wb%{mXqlVHvB{7G6q5q0?r4{NJ*?r-d|K+5fZDqgv6>Ml3Lu6 z#7L=NN{?2=C0BI<9um{dBFPwj)cG^t3@-A~@uormh#~G)+N*DdZeXU2LevS_Xuuyxmxv6Bi`WKpDARPjy18jp%W3T{-00(Vs zf{rw}b;k<8_T`CA4u%@);M0N;$6gMg3!XjzbOELbn+c%yq$V)(uG_E&=%z;ix~@V_ zayr1GXo4%en4%)Z^$DmZBOA09TSgeHn%r-@_ceyH9cUN3mmqnq+Td8?k*p%`CS6#Bd zw?s;BgAz(_qavlZk?{7DLUD zEOxgxZCBUc`w7JJ$<7FO8^utC3OYVHt5X!bTc}JTur^{c7YXvOl6UT?XtlL&rl(5U zW2MO6AN?Z5-y{D4QKr*-GbMM)*BWGohbcPPE67grVg-J0NaQx?)VHeyZ3zB5z!N%v f;G6bQi=%%4q;ly { + const createButton = document.getElementById("create-button"); + const editModal = document.getElementById("edit-modal"); + const createModal = document.getElementById("create-modal"); + const closeButtons = document.querySelectorAll(".close-button"); + const editForm = document.getElementById("edit-form"); + const createForm = document.getElementById("create-form"); + const editNameInput = document.getElementById("edit-name"); + const editIdInput = document.getElementById("edit-id"); + const createNameInput = document.getElementById("create-name"); + const modalTitle = document.getElementById("modal-title"); + const createTitle = document.getElementById("create-title"); + + // Делегирование событий для кнопок "Удалить" и "Изменить" + document.querySelector(".user-cards-container").addEventListener("click", async (event) => { + if (event.target.classList.contains("delete-button")) { + const otdelId = event.target.getAttribute("data-otdel-id"); + + if (confirm("Вы уверены, что хотите удалить этот отдел?")) { + const response = await fetch(`/delete-otdel/${otdelId}`, { + method: "DELETE", + headers: { + "Content-Type": "application/json" + } + }); + + const result = await response.json(); + + if (response.ok) { + event.target.closest(".user-card").remove(); + } else { + const errorMessage = result.message || "Произошла ошибка"; + alert(`Ошибка: ${errorMessage}`); + } + } + } + + if (event.target.classList.contains("edit-button")) { + const otdelId = event.target.getAttribute("data-otdel-id"); + const otdelName = event.target.getAttribute("data-otdel-name"); + + editIdInput.value = otdelId; + editNameInput.value = otdelName; + modalTitle.textContent = `Изменить отдел ${otdelName} (ID: ${otdelId})`; + editModal.classList.add("show"); + } + }); + + // Обработчик для кнопки создания нового отдела + if (createButton) { + createButton.addEventListener("click", () => { + createNameInput.value = ""; + createTitle.textContent = "Создать новый отдел"; + createModal.classList.add("show"); + }); + } + + // Обработчики для кнопок закрытия модальных окон + closeButtons.forEach(button => { + button.addEventListener("click", (event) => { + const modalId = event.target.getAttribute("data-modal-id"); + const modal = document.getElementById(modalId); + if (modal) { + modal.classList.remove("show"); + } + }); + }); + + function closeModal(event) { + if (event.target === editModal || event.target === createModal) { + event.target.classList.remove("show"); + } + } + + window.addEventListener("click", closeModal); + window.addEventListener("touchend", closeModal); + + // Обработчик отправки формы редактирования + if (editForm) { + editForm.addEventListener("submit", async (event) => { + event.preventDefault(); + const otdelId = editIdInput.value; + const newName = editNameInput.value; + + const response = await fetch(`/edit-otdel/${otdelId}`, { + method: "PUT", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ name: newName }) + }); + + if (response.ok) { + const card = document.querySelector(`[data-otdel-id='${otdelId}']`).closest(".user-card"); + if (card) { + card.querySelector(".user-username").textContent = newName; + } + editModal.classList.remove("show"); + } else { + console.error("Failed to edit otdel"); + } + }); + } + + // Обработчик отправки формы создания нового отдела + if (createForm) { + createForm.addEventListener("submit", async (event) => { + event.preventDefault(); + const newName = createNameInput.value; + + const response = await fetch(`/create-otdel`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ name: newName }) + }); + + const result = await response.json(); + + if (response.ok) { + const newOtdel = result.otdel; + const newCard = document.createElement("div"); + newCard.classList.add("user-card"); + newCard.innerHTML = ` +
+

ID: ${newOtdel.id}

+

${newOtdel.name}

+
+ + `; + document.querySelector(".user-cards-container").appendChild(newCard); + createModal.classList.remove("show"); + } else { + const errorMessage = result.message || "Произошла ошибка"; + alert(`Ошибка: ${errorMessage}`); + } + }); + } +}); diff --git a/webadmin/static/js/questions.js b/webadmin/static/js/questions.js new file mode 100644 index 0000000..d1dd43f --- /dev/null +++ b/webadmin/static/js/questions.js @@ -0,0 +1,201 @@ +document.addEventListener("DOMContentLoaded", () => { + const createButton = document.getElementById("create-button"); + const selectOtdel = document.getElementById("select-otdel"); + const userCardsContainer = document.querySelector(".user-cards-container"); + const paginationContainer = document.querySelector(".pagination"); + + const questionCreateModal = document.getElementById("question-create-modal"); + const questionEditModal = document.getElementById("question-edit-modal"); + const closeButton = document.querySelectorAll(".close-button"); + const questionCreateForm = document.getElementById("question-create-form"); + const questionEditForm = document.getElementById("question-edit-form"); + + const questionTitleInput = document.getElementById("question-title"); + const questionTextInput = document.getElementById("question-text"); + const questionFileInput = document.getElementById("question-file"); + const questionOtdelIdDisplay = document.getElementById("question-otdel-id"); + + const editQuestionIdInput = document.getElementById("edit-question-id"); + const editQuestionTitleInput = document.getElementById("edit-question-title"); + const editQuestionTextInput = document.getElementById("edit-question-text"); + const editQuestionFileInput = document.getElementById("edit-question-file"); + const editQuestionOtdelIdDisplay = document.getElementById("edit-question-otdel-id"); + + let currentPage = new URLSearchParams(window.location.search).get('page') || 1; + let selectedOtdelId = new URLSearchParams(window.location.search).get('otdel') || null; + + // Обновляем страницу при изменении отдела + selectOtdel.addEventListener("change", (event) => { + currentPage = 1; // Сбрасываем страницу на 1 + selectedOtdelId = event.target.value; + updateUrl(); + }); + + // Обновляем URL при нажатии на кнопку пагинации + paginationContainer.addEventListener("click", (event) => { + if (event.target.classList.contains("pagination-button")) { + const page = event.target.getAttribute("data-page"); + if (page) { + currentPage = page; + updateUrl(); + } + } + }); + + // Обновляем URL с новыми параметрами + function updateUrl() { + const params = new URLSearchParams(); + params.set('page', currentPage); // Устанавливаем страницу первым + if (selectedOtdelId) { + params.set('otdel', selectedOtdelId); // Устанавливаем отдел вторым + } + window.history.replaceState({}, '', `${window.location.pathname}?${params}`); + window.location.reload(); // Перезагрузить страницу с новыми параметрами + } + + // Открытие модального окна для создания вопроса + if (createButton) { + createButton.addEventListener("click", () => { + if (selectedOtdelId) { + questionOtdelIdDisplay.textContent = `ID отдела: ${selectedOtdelId}`; + questionCreateModal.classList.add("show"); // Показать модальное окно + } + }); + } + + // Открытие модального окна для редактирования вопроса + function openEditModal(questionId, title, text, fileName, otdelId) { + editQuestionIdInput.value = questionId; + editQuestionTitleInput.value = title; + editQuestionTextInput.value = text; + editQuestionOtdelIdDisplay.textContent = `ID отдела: ${otdelId}`; + editQuestionFileInput.value = ''; // Файловый input не поддерживает установки значения через JS + questionEditModal.classList.add("show"); // Показать модальное окно + } + + // Обработчик клика по кнопкам редактирования + userCardsContainer.addEventListener("click", (event) => { + if (event.target.classList.contains("edit-button")) { + const questionId = event.target.getAttribute("data-question-id"); + const title = event.target.getAttribute("data-question-name"); + const text = event.target.getAttribute("data-question-text") || ""; + const fileName = event.target.getAttribute("data-question-file") || ""; + const otdelId = event.target.getAttribute("data-question-otdel-id"); + openEditModal(questionId, title, text, fileName, otdelId); + } else if (event.target.classList.contains("delete-button")) { + const questionId = event.target.getAttribute("data-question-id"); + if (confirm("Вы уверены, что хотите удалить этот вопрос?")) { + deleteQuestion(questionId); + } + } + }); + + // Функция для удаления вопроса + async function deleteQuestion(questionId) { + const response = await fetch(`/delete-question/${questionId}`, { + method: "DELETE" + }); + + if (response.ok) { + updateUrl(); // Обновляем URL и перезагружаем страницу + } else { + console.error("Failed to delete question"); + } + } + + // Обработчик закрытия модальных окон + closeButton.forEach(button => { + button.addEventListener("click", (event) => { + const modalId = event.target.getAttribute("data-modal-id"); + const modal = document.getElementById(modalId); + if (modal) { + modal.classList.remove("show"); // Скрыть соответствующее модальное окно + } + }); + }); + + window.addEventListener("click", (event) => { + if (event.target === questionCreateModal || event.target === questionEditModal) { + event.target.classList.remove("show"); // Скрыть модальное окно при клике вне его + } + }); + + // Обработка отправки формы для создания вопроса + if (questionCreateForm) { + questionCreateForm.addEventListener("submit", async (event) => { + event.preventDefault(); + + const title = questionTitleInput.value; + const text = questionTextInput.value || ""; + const file = questionFileInput.files[0] || null; + + if (!text && !file) { + alert("Пожалуйста, заполните хотя бы одно поле: текст или файл."); + return; + } + + const formData = new FormData(); + formData.append("title", title); + formData.append("text", text); + if (file) { + formData.append("file", file); + } + formData.append("otdel_id", selectedOtdelId); + + const response = await fetch(`/create-question`, { + method: "POST", + body: formData + }); + + if (response.ok) { + updateUrl(); // Обновляем URL и перезагружаем страницу + questionCreateModal.classList.remove("show"); // Скрыть модальное окно + } else { + console.error("Failed to create question"); + } + }); + } + + // Обработка отправки формы для редактирования вопроса + if (questionEditForm) { + questionEditForm.addEventListener("submit", async (event) => { + event.preventDefault(); + + const questionId = editQuestionIdInput.value; + const title = editQuestionTitleInput.value; + const text = editQuestionTextInput.value || ""; + const file = editQuestionFileInput.files[0] || null; + + if (!text && !file) { + alert("Пожалуйста, заполните хотя бы одно поле: текст или файл."); + return; + } + + const formData = new FormData(); + formData.append("id", questionId); + formData.append("title", title); + formData.append("text", text); + if (file) { + formData.append("file", file); + } + formData.append("otdel_id", editQuestionOtdelIdDisplay.textContent.split(': ')[1]); + + const response = await fetch(`/edit-question`, { + method: "PUT", + body: formData + }); + + if (response.ok) { + updateUrl(); // Обновляем URL и перезагружаем страницу + questionEditModal.classList.remove("show"); // Скрыть модальное окно + } else { + console.error("Failed to edit question"); + } + }); + } + + // Инициализация на основе параметров URL + if (selectedOtdelId) { + selectOtdel.value = selectedOtdelId; + } +}); diff --git a/webadmin/static/js/scripts.js b/webadmin/static/js/scripts.js new file mode 100644 index 0000000..7690197 --- /dev/null +++ b/webadmin/static/js/scripts.js @@ -0,0 +1,35 @@ + + +document.addEventListener("DOMContentLoaded", function() { + const alerts = document.querySelectorAll('.alert'); + alerts.forEach(alert => { + alert.classList.add('show'); + setTimeout(() => { + alert.classList.remove('show'); + }, 5000); // Display alerts for 5 seconds + }); + + // Handle logout button + const logoutButton = document.querySelector('.logout-button'); + if (logoutButton) { + logoutButton.addEventListener('click', function(event) { + event.preventDefault(); + const form = document.createElement('form'); + form.method = 'POST'; + form.action = logoutButton.href; + + const input = document.createElement('input'); + input.type = 'hidden'; + input.name = '_method'; + input.value = 'POST'; + form.appendChild(input); + + document.body.appendChild(form); + form.submit(); + }); + } +}); + + + + diff --git a/webadmin/static/js/time.js b/webadmin/static/js/time.js new file mode 100644 index 0000000..103a350 --- /dev/null +++ b/webadmin/static/js/time.js @@ -0,0 +1,39 @@ +function updateTime() { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + const timeString = `${hours}:${minutes}:${seconds}`; + + document.getElementById('current-time').textContent = timeString; + + +} +updateTime(); + + +// Update the time every second +setInterval(updateTime, 1000); + +// Initial call to display time immediately + + +// scripts.js + +document.addEventListener('DOMContentLoaded', function () { + function updateTime() { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + const formattedTime = `${hours}:${minutes}:${seconds}`; + + document.getElementById('current-time').textContent = formattedTime; + } + + // Update the time immediately + updateTime(); + + // Update the time every second + setInterval(updateTime, 1000); +}); \ No newline at end of file diff --git a/webadmin/static/js/users.js b/webadmin/static/js/users.js new file mode 100644 index 0000000..8817990 --- /dev/null +++ b/webadmin/static/js/users.js @@ -0,0 +1,125 @@ +document.addEventListener('DOMContentLoaded', function() { + const newsletterTitle = document.getElementById("newsletter-title"); + const newsletterForm = document.getElementById("newsletter-form"); + const newsletterMessageInput = document.getElementById("newsletter-message"); + const newsletterButton = document.getElementById("newsletter-button"); + const newsletterModal = document.getElementById("newsletter-modal"); + const closeButton = document.querySelectorAll(".close-button"); + + // Проверка существования элементов перед добавлением обработчиков + if (newsletterButton) { + newsletterButton.addEventListener("click", () => { + if (newsletterTitle && newsletterMessageInput && newsletterModal) { + newsletterMessageInput.value = ""; // Очистить поле ввода + newsletterTitle.textContent = "Рассылка"; + newsletterModal.classList.add("show"); // Показать модальное окно + } + }); + } + + if (newsletterForm) { + newsletterForm.addEventListener("submit", async (event) => { + event.preventDefault(); + const message = newsletterMessageInput.value; + + try { + const response = await fetch(`/send-newsletter`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ message: message }) + }); + + // Парсим JSON-ответ + const result = await response.json(); + + if (response.ok) { + alert("Рассылка отправлена успешно!"); + if (newsletterModal) { + newsletterModal.classList.remove("show"); // Скрыть модальное окно + } + } else { + // Показать сообщение об ошибке, если оно есть + const errorMessage = result.message || "Произошла ошибка, рассылка не была начата"; + alert(`Ошибка: ${errorMessage}`); + if (newsletterModal) { + newsletterModal.classList.remove("show"); // Скрыть модальное окно + } + } + } catch (error) { + console.error("Error:", error); + alert("Произошла ошибка при отправке запроса."); + } + }); + } + + if (closeButton.length > 0) { + closeButton.forEach(button => { + button.addEventListener("click", (event) => { + const modalId = event.target.getAttribute("data-modal-id"); + const modal = document.getElementById(modalId); + if (modal) { + modal.classList.remove("show"); // Скрыть соответствующее модальное окно + } + }); + }); + } + + function closeModal(event) { + if (newsletterModal && event.target === newsletterModal) { + newsletterModal.classList.remove("show"); // Скрыть модальное окно при клике вне его + } + } + + window.addEventListener("click", closeModal); + window.addEventListener("touchend", closeModal); // Обработка касания на мобильных устройствах + + const statusToggles = document.querySelectorAll('.status-toggle'); + + statusToggles.forEach(toggle => { + toggle.addEventListener('change', async function() { + const userId = this.getAttribute('data-user-id'); + const status = this.checked ? 'enabled' : 'disabled'; + + try { + const response = await fetch(`/update_status/${userId}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') // Получение CSRF токена + }, + body: JSON.stringify({ status: status }) + }); + + if (response.ok) { + const statusLabel = this.closest('.user-status').querySelector('.status-label'); + if (statusLabel) { + statusLabel.textContent = this.checked ? 'Доступ открыт' : 'Доступ закрыт'; + } + console.log('Status updated successfully'); + } else { + console.error('Failed to update status'); + } + } catch (error) { + console.error('Error:', error); + } + }); + }); +}); + +// Функция для получения CSRF токена из cookie +function getCookie(name) { + let cookieValue = null; + if (document.cookie && document.cookie !== '') { + const cookies = document.cookie.split(';'); + for (let i = 0; i < cookies.length; i++) { + const cookie = cookies[i].trim(); + if (cookie.substring(0, name.length + 1) === (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; +} diff --git a/webadmin/templates/base.html b/webadmin/templates/base.html new file mode 100644 index 0000000..d2efb10 --- /dev/null +++ b/webadmin/templates/base.html @@ -0,0 +1,141 @@ + + + + + + {% block title %}Admin Panel{% endblock %} + + + + + {% block extra_head %} + {% endblock %} + + + + +
+
+
+

Admin Panel

+ + +
+
+
+
+ {% block content %}{% endblock %} +
+
+
+
+

© 2024 Admin Panel. All rights reserved.

+
+
+ + + + + + + + + + + + + + + + + + diff --git a/webadmin/templates/index.html b/webadmin/templates/index.html new file mode 100644 index 0000000..65c1bd1 --- /dev/null +++ b/webadmin/templates/index.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block title %}Home{% endblock %} + +{% block content %} +
+

Welcome to Admin Panel

+

Explore our features and enjoy a seamless experience with our platform.

+

Current time: +

Check out our latest updates and news below!

+ +
+ +{% endblock %} \ No newline at end of file diff --git a/webadmin/templates/login.html b/webadmin/templates/login.html new file mode 100644 index 0000000..0961302 --- /dev/null +++ b/webadmin/templates/login.html @@ -0,0 +1,22 @@ +{% extends "base.html" %} + +{% block title %}Login{% endblock %} + +{% block content %} +
+

Login

+ {% if error %} +
+ {{ error }} +
+ {% endif %} +
+ + + + + +
+

Don't have an account? Register here

+
+{% endblock %} \ No newline at end of file diff --git a/webadmin/templates/otdels.html b/webadmin/templates/otdels.html new file mode 100644 index 0000000..3259b39 --- /dev/null +++ b/webadmin/templates/otdels.html @@ -0,0 +1,41 @@ +{% extends "base.html" %} + +{% block title %}Отделы{% endblock %} + +{% block extra_head %} + + + + + +{% endblock %} + +{% block content %} + +
+

Отделы

+ +
+ +
+ {% for otdel in otdels %} +
+
+

ID: {{ otdel.id }}

+

{{ otdel.name }}

+
+ +
+ {% endfor %} +
+ +{% include 'pagination.html' %} + + + +{% endblock %} + + diff --git a/webadmin/templates/pagination.html b/webadmin/templates/pagination.html new file mode 100644 index 0000000..8da0301 --- /dev/null +++ b/webadmin/templates/pagination.html @@ -0,0 +1,27 @@ + diff --git a/webadmin/templates/profile.html b/webadmin/templates/profile.html new file mode 100644 index 0000000..987ede2 --- /dev/null +++ b/webadmin/templates/profile.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} + +{% block title %}Profile{% endblock %} + +{% block extra_head %} + +{% endblock %} + +{% block content %} +
+

Welcome, {{ user.full_name }}

+

Username: {{ user.username }}

+

Current Time:

+ +
+{% endblock %} \ No newline at end of file diff --git a/webadmin/templates/questions.html b/webadmin/templates/questions.html new file mode 100644 index 0000000..87182c0 --- /dev/null +++ b/webadmin/templates/questions.html @@ -0,0 +1,57 @@ +{% extends "base.html" %} + +{% block title %}Вопросы{% endblock %} + +{% block extra_head %} + + + + + +{% endblock %} + +{% block content %} +
+

Вопросы

+
+ +
+ +
+ +
+ {% if questions %} + {% for question in questions %} +
+
+

ID: {{ question.id }}

+

{{ question.name }}

+
+ +
+ {% endfor %} + {% else %} +

Пожалуйста, выберите отдел для отображения вопросов.

+ {% endif %} +
+ +{% include 'pagination.html' %} + +{% endblock %} diff --git a/webadmin/templates/register.html b/webadmin/templates/register.html new file mode 100644 index 0000000..105b4c0 --- /dev/null +++ b/webadmin/templates/register.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} + +{% block title %}Register{% endblock %} + +{% block content %} +
+

Register

+ {% if error %} +
+ {{ error }} +
+ {% endif %} +
+ + + + + + + +
+

Already have an account? Login here

+
+{% endblock %} \ No newline at end of file diff --git a/webadmin/templates/users.html b/webadmin/templates/users.html new file mode 100644 index 0000000..fb5105a --- /dev/null +++ b/webadmin/templates/users.html @@ -0,0 +1,46 @@ +{% extends "base.html" %} + +{% block title %}User Management{% endblock %} + +{% block extra_head %} + + + + + +{% endblock %} + +{% block content %} + +
+

Пользователи

+ +
+ +
+ {% for user in users %} +
+
+

ID: {{ user.id }}

+

{{ user.username }}

+
+
+ +

+ {% if user.has_access %} + Доступ открыт + {% else %} + Доступ закрыт + {% endif %} +

+
+
+ {% endfor %} +
+ +{% include 'pagination.html' %} + +{% endblock %} diff --git a/webadmin/uploads/123_5e327b983b3a4613b754daee7a82861e.docx b/webadmin/uploads/123_5e327b983b3a4613b754daee7a82861e.docx new file mode 100644 index 0000000000000000000000000000000000000000..0d00d6d73739b63c16757ad91377b26a2e0b1836 GIT binary patch literal 11683 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 z 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%0A=T`$*!$htx5_cYo&8R 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 AQ~&?~ literal 0 HcmV?d00001 diff --git a/webadmin/uploads/900_908dca7b1ea546998e07594abc709b17.jpg b/webadmin/uploads/900_908dca7b1ea546998e07594abc709b17.jpg new file mode 100644 index 0000000000000000000000000000000000000000..156cf39e4876991401d4b3f53de5b42b63934a3e GIT binary patch literal 170611 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

kuSU;=bAtt4!ZZ8cnqxMARGFEgs#KEV~_6s>E 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 b;9xU#Dp3duhpKVmqaZk!_oG_V>0kfZ(YR&N literal 0 HcmV?d00001 diff --git a/webadmin/uploads/900_dd9bb24d2f4d4ec089795e4182da7a07.jpg b/webadmin/uploads/900_dd9bb24d2f4d4ec089795e4182da7a07.jpg new file mode 100644 index 0000000000000000000000000000000000000000..156cf39e4876991401d4b3f53de5b42b63934a3e GIT binary patch literal 170611 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

kuSU;=bAtt4!ZZ8cnqxMARGFEgs#KEV~_6s>E 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 b;9xU#Dp3duhpKVmqaZk!_oG_V>0kfZ(YR&N literal 0 HcmV?d00001 diff --git a/webadmin/uploads/bot_d0dbea5b90474c4981a769657d6339f1.service b/webadmin/uploads/bot_d0dbea5b90474c4981a769657d6339f1.service new file mode 100644 index 0000000..4820cba --- /dev/null +++ b/webadmin/uploads/bot_d0dbea5b90474c4981a769657d6339f1.service @@ -0,0 +1,16 @@ +[Unit] +Description=Example - Telegram Bot + +After=syslog.target +After=network.target + +[Service] + +WorkingDirectory=/home/tgbot/ +ExecStart=/home/tgbot/myenv/bin/python3 /home/tgbot/bot.py +RestartSec=60 +StandardError=file:/home/tgbot/logs.log + +[Install] + +WantedBy=multi-user.target \ No newline at end of file