From 488daed8b5933339330b33b86806351dc728ca35 Mon Sep 17 00:00:00 2001 From: mpabi Date: Thu, 20 Jun 2024 06:27:54 +0000 Subject: [PATCH] starter --- __tracked-files | 40 +++ script/__ | 18 ++ src/Dockerfile | 84 ++++++ src/Dockerfile-kopia | 71 +++++ src/__build | 1 + src/__docker-portainer | 4 + src/__incus-proxy | 1 + src/__n1 | 8 + src/__run | 1 + src/__run2 | 2 + src/__uvicorn | 1 + src/_confs/.tmux.conf | 14 + src/_confs/.vimrc | 163 ++++++++++ src/app/database.py | 20 ++ src/app/main.py | 50 +++ src/app/models.py | 21 ++ src/app/schemas.py | 29 ++ src/docker-compose.yaml | 36 +++ src/entrypoint.py | 23 ++ src/php/Dockerfile | 2 + src/poetry.lock | 653 ++++++++++++++++++++++++++++++++++++++++ src/pyproject.toml | 22 ++ src/static/index.html | 40 +++ src/static/script.js | 69 +++++ src/static/style.css | 43 +++ tex/backend/main.pdf | Bin 0 -> 42326 bytes tex/backend/main.tex | 25 ++ tex/devops/main.pdf | Bin 0 -> 143036 bytes tex/devops/main.tex | 232 ++++++++++++++ tex/fronted/main.pdf | Bin 0 -> 100050 bytes tex/fronted/main.tex | 163 ++++++++++ 31 files changed, 1836 insertions(+) create mode 100644 __tracked-files create mode 100644 script/__ create mode 100644 src/Dockerfile create mode 100644 src/Dockerfile-kopia create mode 100644 src/__build create mode 100644 src/__docker-portainer create mode 100644 src/__incus-proxy create mode 100644 src/__n1 create mode 100644 src/__run create mode 100644 src/__run2 create mode 100644 src/__uvicorn create mode 100644 src/_confs/.tmux.conf create mode 100644 src/_confs/.vimrc create mode 100644 src/app/database.py create mode 100644 src/app/main.py create mode 100644 src/app/models.py create mode 100644 src/app/schemas.py create mode 100644 src/docker-compose.yaml create mode 100644 src/entrypoint.py create mode 100644 src/php/Dockerfile create mode 100644 src/poetry.lock create mode 100644 src/pyproject.toml create mode 100644 src/static/index.html create mode 100644 src/static/script.js create mode 100644 src/static/style.css create mode 100644 tex/backend/main.pdf create mode 100644 tex/backend/main.tex create mode 100644 tex/devops/main.pdf create mode 100644 tex/devops/main.tex create mode 100644 tex/fronted/main.pdf create mode 100644 tex/fronted/main.tex diff --git a/__tracked-files b/__tracked-files new file mode 100644 index 0000000..d3cc069 --- /dev/null +++ b/__tracked-files @@ -0,0 +1,40 @@ +./script/__ + +./src/__build +./src/__n1 +./src/__run +./src/__run2 +./src/__uvicorn +./src/_confs +./src/_confs/.vimrc +./src/_confs/.tmux.conf + +./src/app/database.py +./src/app/main.py +./src/app/models.py +./src/app/schemas.py +./src/entrypoint.py +./src/poetry.lock +./src/pyproject.toml + +./src/static/index.html +./src/static/script.js +./src/static/style.css +./src/Dockerfile-kopia + +./src/php/Dockerfile +./src/Dockerfile +./src/__incus-proxy +./src/__docker-portainer +./src/docker-compose.yaml + +./tex/backend/main.pdf +./tex/backend/main.tex + +./tex/devops/main.pdf +./tex/devops/main.tex + +./tex/fronted/main.pdf +./tex/fronted/main.tex + +./__tracked-files diff --git a/script/__ b/script/__ new file mode 100644 index 0000000..c8d30c2 --- /dev/null +++ b/script/__ @@ -0,0 +1,18 @@ +#!/bin/bash + +f() { + for i in {1..5}; do + curl -X 'POST' \ + "http://$1:9999/api/" \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -d '{ + "type": "Item", + "quantity": 1, + "address": "Example Address '"$i"'" + }' + done +} + +f $1 + diff --git a/src/Dockerfile b/src/Dockerfile new file mode 100644 index 0000000..9ca02e9 --- /dev/null +++ b/src/Dockerfile @@ -0,0 +1,84 @@ +# Choose a base image. Debian is a good choice due to pyenv +FROM debian:latest + +# Update the package list and install necessary dependencies +RUN apt-get update && apt-get install -y \ + aptitude \ + tmux vim-nox nano mc git curl termshark procps \ + sudo iproute2 iputils-ping bridge-utils \ + ifupdown udev make build-essential libssl-dev zlib1g-dev \ + libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev \ + libncursesw5-dev xz-utils libffi-dev liblzma-dev \ + sqlite3 default-libmysqlclient-dev pkg-config + +# Set password for root user (optional, for configuration) +RUN echo 'root:rootpass' | chpasswd + +# Add a new user `user` with password `pass` and prepare the environment +RUN useradd -m user && echo 'user:pass' | chpasswd && adduser user sudo + +# Switch to user `user` +USER user +WORKDIR /home/user + +# Install pyenv +RUN git clone https://github.com/pyenv/pyenv .pyenv + +# Install pyenv-virtualenv +RUN git clone https://github.com/pyenv/pyenv-virtualenv .pyenv/plugins/pyenv-virtualenv + +# Set environment variables +ENV HOME /home/user +ENV PYENV_ROOT $HOME/.pyenv +ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH + +# Add pyenv and pyenv-virtualenv configuration to .bashrc +RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> .bashrc +RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> .bashrc +RUN echo 'eval "$(pyenv init -)"' >> .bashrc +RUN echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc + +# Install Python 3.11 with --enable-shared +RUN bash -i -c "source ~/.bashrc && env PYTHON_CONFIGURE_OPTS='--enable-shared' pyenv install 3.11" + +# Create a virtual environment p3.11 +RUN bash -i -c "source ~/.bashrc && pyenv virtualenv 3.11 p3.11" + +# Set p3.11 as the default virtual environment +RUN bash -i -c "source ~/.bashrc && pyenv local p3.11" + +# Install Poetry +RUN curl -sSL https://install.python-poetry.org | python3 - + +# Add Poetry path to PATH directly in the Dockerfile +ENV PATH="$HOME/.local/bin:$PATH" + +# Install SQLAlchemy and MySQL adapter in the pyenv environment +RUN bash -i -c "source ~/.bashrc && pyenv activate p3.11 && pip install sqlalchemy mysqlclient" + +# Copy the project into the image +COPY --chown=user:user . /home/user/fapi +COPY ./_confs/* ./ + +# Set the working directory for installing dependencies +WORKDIR /home/user/fapi + +RUN bash -i -c "source ~/.bashrc && poetry config virtualenvs.create false && poetry install" + +# Copy the .vimrc file +#COPY --chown=user:user .vimrc /home/user/.vimrc + +# Install vim-plug using curl +RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + +# Install Vim plugins +RUN vim +PlugInstall +qall + +# Run the application +#CMD ["/bin/bash", "-c", "python entrypoint.py"] + +# Run Bash +CMD ["/bin/bash"] + + diff --git a/src/Dockerfile-kopia b/src/Dockerfile-kopia new file mode 100644 index 0000000..cd1e613 --- /dev/null +++ b/src/Dockerfile-kopia @@ -0,0 +1,71 @@ +# Choose a base image. Debian is a good choice due to pyenv +FROM debian:latest + +# Update the package list and install necessary dependencies +RUN apt-get update && apt-get install -y \ + aptitude \ + tmux vim-nox nano mc git curl termshark procps \ + sudo iproute2 iputils-ping bridge-utils \ + ifupdown udev make build-essential libssl-dev zlib1g-dev \ + libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev \ + libncursesw5-dev xz-utils libffi-dev liblzma-dev \ + sqlite3 default-libmysqlclient-dev pkg-config \ + npm htop + +# Set password for root user (optional, for configuration) +RUN echo 'root:rootpass' | chpasswd + +# Add a new user `user` with password `pass` and prepare the environment +RUN useradd -m user && echo 'user:pass' | chpasswd && adduser user sudo + +# Switch to user `user` +USER user +WORKDIR /home/user + +# Install pyenv +RUN git clone https://github.com/pyenv/pyenv .pyenv + +# Install pyenv-virtualenv +RUN git clone https://github.com/pyenv/pyenv-virtualenv .pyenv/plugins/pyenv-virtualenv + +# Set environment variables +ENV HOME /home/user +ENV PYENV_ROOT $HOME/.pyenv +ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH + +# Add pyenv and pyenv-virtualenv configuration to .bashrc +RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> .bashrc +RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> .bashrc +RUN echo 'eval "$(pyenv init -)"' >> .bashrc +RUN echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc + +# Install Python 3.11 with --enable-shared +RUN bash -i -c "source ~/.bashrc && env PYTHON_CONFIGURE_OPTS='--enable-shared' pyenv install 3.11" + +# Create a virtual environment p3.11 +RUN bash -i -c "source ~/.bashrc && pyenv virtualenv 3.11 p3.11" + +# Set p3.11 as the default virtual environment, docker doesn't like ;) +RUN bash -i -c "source ~/.bashrc && pyenv local 3.11" + +# Install Poetry +RUN curl -sSL https://install.python-poetry.org | python3 - + +RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + +# Copy the project into the image +COPY --chown=user:user . /home/user/fapi +COPY --chown=user:user ./_confs/* ./ +COPY --chown=user:user ./static/* ./ + +# Set the working directory for installing dependencies +WORKDIR /home/user/fapi + +# Add Poetry path to PATH directly in the Dockerfile +ENV PATH="$HOME/.local/bin:$PATH" + +RUN bash -i -c "source ~/.bashrc && poetry config virtualenvs.create false && poetry install" + +# Run the application +CMD ["/bin/bash", "-c", "python entrypoint.py"] diff --git a/src/__build b/src/__build new file mode 100644 index 0000000..3d3ad67 --- /dev/null +++ b/src/__build @@ -0,0 +1 @@ +docker build -t fapi . diff --git a/src/__docker-portainer b/src/__docker-portainer new file mode 100644 index 0000000..44b314f --- /dev/null +++ b/src/__docker-portainer @@ -0,0 +1,4 @@ +docker volume create portainer_data + +docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest + diff --git a/src/__incus-proxy b/src/__incus-proxy new file mode 100644 index 0000000..370660c --- /dev/null +++ b/src/__incus-proxy @@ -0,0 +1 @@ +sudo incus config device add tri proxy-9443 proxy listen=tcp:0.0.0.0:9443 connect=tcp:0.0.0.0:9443 diff --git a/src/__n1 b/src/__n1 new file mode 100644 index 0000000..b70a70c --- /dev/null +++ b/src/__n1 @@ -0,0 +1,8 @@ +docker run --rm \ + -dit \ + --privileged \ + -p 9999:9999 \ + -p 8888:8888 \ + -v /home/user/work/py/fapi/fapi:/home/user/fapi \ + --name f1 \ + fapi diff --git a/src/__run b/src/__run new file mode 100644 index 0000000..78ea769 --- /dev/null +++ b/src/__run @@ -0,0 +1 @@ +docker run --rm -dit -p $2:9999 --name $1 fapi diff --git a/src/__run2 b/src/__run2 new file mode 100644 index 0000000..7ab8c62 --- /dev/null +++ b/src/__run2 @@ -0,0 +1,2 @@ +#. ./__run2 mpabi 1111 +docker run --rm -dit -p $2:9999 --name $1 fapi bash diff --git a/src/__uvicorn b/src/__uvicorn new file mode 100644 index 0000000..ab99518 --- /dev/null +++ b/src/__uvicorn @@ -0,0 +1 @@ +poetry run uvicorn --reload app.main:app --host 0.0.0.0 --port 9999 diff --git a/src/_confs/.tmux.conf b/src/_confs/.tmux.conf new file mode 100644 index 0000000..2de7bd6 --- /dev/null +++ b/src/_confs/.tmux.conf @@ -0,0 +1,14 @@ +set-option -g default-command "bash --login" + +# remap prefix to Control + a +set -g prefix C-s +# bind 'C-a C-a' to type 'C-a' +bind C-s send-prefix +unbind C-b + +# synchronize all panes in a window +# don't use control S, too easily confused +# with navigation key sequences in tmux (show sessions) +unbind C-S +bind C-Y set-window-option synchronize-panes + diff --git a/src/_confs/.vimrc b/src/_confs/.vimrc new file mode 100644 index 0000000..1062b02 --- /dev/null +++ b/src/_confs/.vimrc @@ -0,0 +1,163 @@ +call plug#begin() + +Plug 'tpope/vim-fugitive' +Plug 'tpope/vim-commentary' +Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' } + +Plug 'jupyter-vim/jupyter-vim' +Plug 'goerz/jupytext.vim' + +Plug 'ConradIrwin/vim-bracketed-paste' + +Plug 'rafi/awesome-vim-colorschemes' +Plug 'flazz/vim-colorschemes' + +Plug 'neoclide/coc.nvim', {'branch': 'release'} + +Plug 'jpalardy/vim-slime' + +call plug#end() + +nnoremap n :NERDTreeFocus +nnoremap :NERDTree +nnoremap :NERDTreeToggle +nnoremap :NERDTreeFind + + +" Run current file +nnoremap R :JupyterRunFile +nnoremap I :PythonImportThisFile + +" Change to directory of current file +nnoremap d :JupyterCd %:p:h + +" Send a selection of lines +nnoremap X :JupyterSendCell +nnoremap E :JupyterSendRange +nmap e JupyterRunTextObj +vmap e JupyterRunVisual + +" Debugging maps +nnoremap b :PythonSetBreak + +set backspace=indent,eol,start +set mouse=r + +packadd termdebug +let g:termdebug_wide=1 +let g:termdebugger='riscv32-esp-elf-gdb' + + +" Disable compatibility with vi which can cause unexpected issues. +set nocompatible + +" Enable type file detection. Vim will be able to try to detect the type of file in use. +filetype on + +" Enable plugins and load plugin for the detected file type. +filetype plugin on + +" Load an indent file for the detected file type. +filetype indent on + +" Turn syntax highlighting on. +syntax on + +" Add numbers to each line on the left-hand side. +set number + +" Highlight cursor line underneath the cursor horizontally. +set cursorline + +" Highlight cursor line underneath the cursor vertically. +" set cursorcolumn + +" Set shift width to 4 spaces. +set shiftwidth=4 + +" Set tab width to 4 columns. +set tabstop=4 + +" Use space characters instead of tabs. +set expandtab + +" Do not save backup files. +set nobackup + +" Do not let cursor scroll below or above N number of lines when scrolling. +set scrolloff=10 + +" Do not wrap lines. Allow long lines to extend as far as the line goes. +set nowrap + +" While searching though a file incrementally highlight matching characters as you type. +set incsearch + +" Ignore capital letters during search. +set ignorecase + +" Override the ignorecase option if searching for capital letters. +" This will allow you to search specifically for capital letters. +set smartcase + +" Show partial command you type in the last line of the screen. +set showcmd + +" Show the mode you are on the last line. +set showmode + +" Show matching words during a search. +set showmatch + +" Use highlighting when doing a search. +set hlsearch + +" Set the commands to save in history default number is 20. +set history=1000 + +" Enable auto completion menu after pressing TAB. +set wildmenu + +" Make wildmenu behave like similar to Bash completion. +set wildmode=list:longest + +" There are certain files that we would never want to edit with Vim. +" Wildmenu will ignore files with these extensions. +set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx + + +" set colorscheme OceanicNext + + +if !exists("g:slime_python_ipython") + let g:slime_python_ipython = 1 +endif + +let g:slime_target = "tmux" + +" Run cell for vim-slime +function! SendCell(pattern) + let start_line = search(a:pattern, 'bnW') + + if start_line + let start_line = start_line + 1 + else + let start_line = 1 + endif + + let stop_line = search(a:pattern, 'nW') + if stop_line + let stop_line = stop_line - 1 + else + let stop_line = line('$') + endif + + call slime#send_range(start_line, stop_line) +endfunction + +" Custom vim-slime mappings +let g:slime_no_mappings = 1 +xmap SlimeRegionSend +nmap :call SendCell('^#%%') +nmap v SlimeConfig + diff --git a/src/app/database.py b/src/app/database.py new file mode 100644 index 0000000..49bcfff --- /dev/null +++ b/src/app/database.py @@ -0,0 +1,20 @@ +from sqlalchemy import create_engine +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import sessionmaker + +""" +#SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db" # SQLite +engine = create_engine( + SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} # Opcja dla SQLite +) +""" + +SQLALCHEMY_DATABASE_URL = "mysql+mysqlconnector://root:secret@qstack.pl:3306/mpabi" # Przykład dla MySQL +engine = create_engine( + SQLALCHEMY_DATABASE_URL, +) + +SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) + +Base = declarative_base() + diff --git a/src/app/main.py b/src/app/main.py new file mode 100644 index 0000000..50c02a7 --- /dev/null +++ b/src/app/main.py @@ -0,0 +1,50 @@ +# app/main.py +from fastapi import FastAPI, Depends, HTTPException +from sqlalchemy.orm import Session +from sqlalchemy.orm import joinedload + +from app import models, database, schemas # Importuj schematy +from fastapi.staticfiles import StaticFiles +from typing import List, Optional + +app = FastAPI() +app.mount("/static", StaticFiles(directory="static"), name="static") + +# Dependency +def get_db(): + db = database.SessionLocal() + try: + yield db + finally: + db.close() + +@app.post("/authors/", response_model=schemas.AuthorModel) +def create_author(author: schemas.AuthorCreate, db: Session = Depends(get_db)): + db_author = models.Author(**author.dict()) + db.add(db_author) + db.commit() + db.refresh(db_author) + return db_author + +@app.get("/authors/", response_model=List[schemas.AuthorModel]) +def read_authors(db: Session = Depends(get_db)): + authors = db.query(models.Author).all() + return authors + +@app.post("/books/", response_model=schemas.BookModel) +def create_book(book: schemas.BookCreate, db: Session = Depends(get_db)): + db_book = models.Book(**book.dict()) + db.add(db_book) + db.commit() + db.refresh(db_book) + return db_book + +@app.get("/books/", response_model=List[schemas.BookModel]) +def read_books(db: Session = Depends(get_db)): + books = db.query(models.Book).all() + return books + +@app.get("/books-with-authors/", response_model=List[schemas.BookWithAuthor]) +def read_books_with_authors(db: Session = Depends(get_db)): + books = db.query(models.Book).options(joinedload(models.Book.author)).all() + return books diff --git a/src/app/models.py b/src/app/models.py new file mode 100644 index 0000000..d69beab --- /dev/null +++ b/src/app/models.py @@ -0,0 +1,21 @@ +# app/models.py +from sqlalchemy import Column, Integer, String, ForeignKey +from sqlalchemy.orm import relationship +from app.database import Base + +class Author(Base): + __tablename__ = "authors" + + id = Column(Integer, primary_key=True, index=True) + name = Column(String(255), unique=True, index=True) + books = relationship("Book", back_populates="author") + +class Book(Base): + __tablename__ = "books" + + id = Column(Integer, primary_key=True, index=True) + title = Column(String(255), index=True) + author_id = Column(Integer, ForeignKey('authors.id')) + + author = relationship("Author", back_populates="books") + diff --git a/src/app/schemas.py b/src/app/schemas.py new file mode 100644 index 0000000..fc6fcdf --- /dev/null +++ b/src/app/schemas.py @@ -0,0 +1,29 @@ +from typing import List, Optional +from pydantic import BaseModel, constr, conint + +class AuthorCreate(BaseModel): + name: constr(min_length=2, max_length=100) + +class AuthorModel(BaseModel): + id: int + name: str + + class Config: + orm_mode = True + +class BookCreate(BaseModel): + title: constr(min_length=1, max_length=100) + author_id: conint(gt=0) + +class BookModel(BaseModel): + id: int + title: str + author_id: int + status: Optional[str] = None + + class Config: + orm_mode = True + +class BookWithAuthor(BookModel): + author: AuthorModel + diff --git a/src/docker-compose.yaml b/src/docker-compose.yaml new file mode 100644 index 0000000..c7b3d92 --- /dev/null +++ b/src/docker-compose.yaml @@ -0,0 +1,36 @@ +version: "3.7" +services: + + web-server: + build: + dockerfile: php/Dockerfile + context: . + restart: always + volumes: + - "./html/:/var/www/html/" + ports: + - "8080:80" + + mysql-server: + image: mysql:8.0.19 + restart: always + environment: + MYSQL_ROOT_PASSWORD: secret + volumes: + - mysql-data:/var/lib/mysql + ports: + - "3306:3306" + + phpmyadmin: + image: phpmyadmin/phpmyadmin:5.0.1 + restart: always + environment: + PMA_HOST: mysql-server + PMA_USER: root + PMA_PASSWORD: secret + ports: + - "5000:80" + +volumes: + mysql-data: + diff --git a/src/entrypoint.py b/src/entrypoint.py new file mode 100644 index 0000000..f79ca28 --- /dev/null +++ b/src/entrypoint.py @@ -0,0 +1,23 @@ +from app.database import engine +from app.models import Base +import uvicorn +import argparse # Importuj argparse + +def main(port): + # Create the database + print("Creating database tables...") + Base.metadata.create_all(bind=engine) + print("Database tables created.") + + # Uruchomienie aplikacji FastAPI za pomocą uvicorn + uvicorn.run("app.main:app", host="0.0.0.0", port=port, reload=True) + +if __name__ == "__main__": + # Utwórz parser argumentów + parser = argparse.ArgumentParser(description="Run the FastAPI app") + # Dodaj argument port, domyślnie 9999 + parser.add_argument("--port", type=int, default=9999, help="Port to run the FastAPI app on") + # Parsuj argumenty + args = parser.parse_args() + + main(args.port) diff --git a/src/php/Dockerfile b/src/php/Dockerfile new file mode 100644 index 0000000..93494af --- /dev/null +++ b/src/php/Dockerfile @@ -0,0 +1,2 @@ +FROM php:7.4.3-apache +RUN docker-php-ext-install mysqli pdo pdo_mysql diff --git a/src/poetry.lock b/src/poetry.lock new file mode 100644 index 0000000..5d68c2b --- /dev/null +++ b/src/poetry.lock @@ -0,0 +1,653 @@ +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. + +[[package]] +name = "anyio" +version = "4.3.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, +] + +[package.dependencies] +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 = "asgiref" +version = "3.8.1" +description = "ASGI specs, helper code, and adapters" +optional = false +python-versions = ">=3.8" +files = [ + {file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"}, + {file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4", markers = "python_version < \"3.11\""} + +[package.extras] +tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] + +[[package]] +name = "astunparse" +version = "1.6.3" +description = "An AST unparser for Python" +optional = false +python-versions = "*" +files = [ + {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, + {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, +] + +[package.dependencies] +six = ">=1.6.1,<2.0" +wheel = ">=0.23.0,<1.0" + +[[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 = "exceptiongroup" +version = "1.2.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.85.2" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.7" +files = [ + {file = "fastapi-0.85.2-py3-none-any.whl", hash = "sha256:6292db0edd4a11f0d938d6033ccec5f706e9d476958bf33b119e8ddb4e524bde"}, + {file = "fastapi-0.85.2.tar.gz", hash = "sha256:3e10ea0992c700e0b17b6de8c2092d7b9cd763ce92c49ee8d4be10fee3b2f367"}, +] + +[package.dependencies] +pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0" +starlette = "0.20.4" + +[package.extras] +all = ["email-validator (>=1.1.1,<2.0.0)", "itsdangerous (>=1.1.0,<3.0.0)", "jinja2 (>=2.11.2,<4.0.0)", "orjson (>=3.2.1,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "pyyaml (>=5.3.1,<7.0.0)", "requests (>=2.24.0,<3.0.0)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)", "uvicorn[standard] (>=0.12.0,<0.19.0)"] +dev = ["autoflake (>=1.4.0,<2.0.0)", "flake8 (>=3.8.3,<6.0.0)", "pre-commit (>=2.17.0,<3.0.0)", "uvicorn[standard] (>=0.12.0,<0.19.0)"] +doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer[all] (>=0.6.1,<0.7.0)"] +test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==22.8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flake8 (>=3.8.3,<6.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "pytest-cov (>=2.12.0,<5.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "pyyaml (>=5.3.1,<7.0.0)", "requests (>=2.24.0,<3.0.0)", "sqlalchemy (>=1.3.18,<=1.4.41)", "types-orjson (==3.6.2)", "types-ujson (==5.5.0)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] + +[[package]] +name = "graphql-core" +version = "3.2.3" +description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." +optional = false +python-versions = ">=3.6,<4" +files = [ + {file = "graphql-core-3.2.3.tar.gz", hash = "sha256:06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676"}, + {file = "graphql_core-3.2.3-py3-none-any.whl", hash = "sha256:5766780452bd5ec8ba133f8bf287dc92713e3868ddd83aee4faab9fc3e303dc3"}, +] + +[[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 = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "mysql-connector-python" +version = "8.3.0" +description = "MySQL driver written in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mysql-connector-python-8.3.0.tar.gz", hash = "sha256:e4ff23aa8036b4c5b6463fa81398bb5a528a29f99955de6ba937f0bba57a2fe3"}, + {file = "mysql_connector_python-8.3.0-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:f4ee7e07cca6b744874d60d6b0b24817d9246eb4e8d7269b7ddbe68763a0bd13"}, + {file = "mysql_connector_python-8.3.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:5718e426cf67f041772d4984f709052201883f74190ba6feaddce5cbd3b99e6f"}, + {file = "mysql_connector_python-8.3.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:0deb38f05057e12af091a48e03a1ff00e213945880000f802879fae5665e7502"}, + {file = "mysql_connector_python-8.3.0-cp310-cp310-manylinux_2_17_x86_64.whl", hash = "sha256:4be4165e4cd5acb4659261ddc74e9164d2dfa0d795d5695d52f2bf39ea0762fa"}, + {file = "mysql_connector_python-8.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:51d97bf771519829797556718d81e8b9bdcd0a00427740ca57c085094c8bde17"}, + {file = "mysql_connector_python-8.3.0-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:5e2c86c60be08c71bae755d811fe8b89ec4feb8117ec3440ebc6c042dd6f06bc"}, + {file = "mysql_connector_python-8.3.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:de74055944b214bff56e1752ec213d705c421414c67a250fb695af0c5c214135"}, + {file = "mysql_connector_python-8.3.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:b2901391b651d60dab3cc8985df94976fc1ea59fa7324c5b19d0a4177914c8dd"}, + {file = "mysql_connector_python-8.3.0-cp311-cp311-manylinux_2_17_x86_64.whl", hash = "sha256:55cb57d8098c721abce20fdef23232663977c0e5c87a4d0f9f73466f32c7d168"}, + {file = "mysql_connector_python-8.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:201e609159b84a247be87b76f5deb79e8c6b368e91f043790e62077f13f3fed8"}, + {file = "mysql_connector_python-8.3.0-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:c57d02fd6c28be444487e7905ede09e3fecb18377cf82908ca262826369d3401"}, + {file = "mysql_connector_python-8.3.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:9302d774025e76a0fac46bfeea8854b3d6819715a6a16ff23bfcda04218a76b7"}, + {file = "mysql_connector_python-8.3.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:85fa878fdd6accaeb7d609bd2637c2cfa61592e7f9bdbdc0da18b2fa998d3d5a"}, + {file = "mysql_connector_python-8.3.0-cp312-cp312-manylinux_2_17_x86_64.whl", hash = "sha256:de0f2f2baa9e091ca8bdc4a091f874f9cd0b84b256389596adb0e032a05fe9f9"}, + {file = "mysql_connector_python-8.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:27f8be2087627366a44a6831ec68b568c98dbf0f4ceff24682d90c21db6e0f1f"}, + {file = "mysql_connector_python-8.3.0-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:ec6dc3434a7deef74ab04e8978f6c5e181866a5423006c1b5aec5390a189d28d"}, + {file = "mysql_connector_python-8.3.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:73ee8bc5f9626c42b37342a91a825cddb3461f6bfbbd6524d8ccfd3293aaa088"}, + {file = "mysql_connector_python-8.3.0-cp38-cp38-manylinux_2_17_x86_64.whl", hash = "sha256:1db5b48b4ff7d24344217ed2418b162c7677eec86ab9766dc0e5feae39c90974"}, + {file = "mysql_connector_python-8.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:77bae496566d3da77bb0e938d89243103d20ee41633f626a47785470451bf45c"}, + {file = "mysql_connector_python-8.3.0-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:f7acacdf9fd4260702f360c00952ad9a9cc73e8b7475e0d0c973c085a3dd7b7d"}, + {file = "mysql_connector_python-8.3.0-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:5f707a9b040ad4700fc447ba955c78b08f2dd5affde37ac2401918f7b6daaba3"}, + {file = "mysql_connector_python-8.3.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:125714c998a697592bc56cce918a1acc58fadc510a7f588dbef3e53a1920e086"}, + {file = "mysql_connector_python-8.3.0-cp39-cp39-manylinux_2_17_x86_64.whl", hash = "sha256:7f4f5fa844c19ee3a78c4606f6e138b06829e75469592d90246a290c7befc322"}, + {file = "mysql_connector_python-8.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:de5c3ee89d9276356f93df003949d3ba4c486f32fec9ec9fd7bc0caab124d89c"}, + {file = "mysql_connector_python-8.3.0-py2.py3-none-any.whl", hash = "sha256:e868ccc7ad9fbc242546db04673d89cee87d12b8139affd114524553df4e5d6a"}, +] + +[package.extras] +dns-srv = ["dnspython (>=1.16.0,<=2.3.0)"] +fido2 = ["fido2 (==1.1.2)"] +gssapi = ["gssapi (>=1.6.9,<=1.8.2)"] +opentelemetry = ["Deprecated (>=1.2.6)", "typing-extensions (>=3.7.4)", "zipp (>=0.5)"] + +[[package]] +name = "mysqlclient" +version = "2.2.4" +description = "Python interface to MySQL" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mysqlclient-2.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:ac44777eab0a66c14cb0d38965572f762e193ec2e5c0723bcd11319cc5b693c5"}, + {file = "mysqlclient-2.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:329e4eec086a2336fe3541f1ce095d87a6f169d1cc8ba7b04ac68bcb234c9711"}, + {file = "mysqlclient-2.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:e1ebe3f41d152d7cb7c265349fdb7f1eca86ccb0ca24a90036cde48e00ceb2ab"}, + {file = "mysqlclient-2.2.4-cp38-cp38-win_amd64.whl", hash = "sha256:3c318755e06df599338dad7625f884b8a71fcf322a9939ef78c9b3db93e1de7a"}, + {file = "mysqlclient-2.2.4-cp39-cp39-win_amd64.whl", hash = "sha256:9d4c015480c4a6b2b1602eccd9846103fc70606244788d04aa14b31c4bd1f0e2"}, + {file = "mysqlclient-2.2.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d43987bb9626096a302ca6ddcdd81feaeca65ced1d5fe892a6a66b808326aa54"}, + {file = "mysqlclient-2.2.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4e80dcad884dd6e14949ac6daf769123223a52a6805345608bf49cdaf7bc8b3a"}, + {file = "mysqlclient-2.2.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:9d3310295cb682232cadc28abd172f406c718b9ada41d2371259098ae37779d3"}, + {file = "mysqlclient-2.2.4.tar.gz", hash = "sha256:33bc9fb3464e7d7c10b1eaf7336c5ff8f2a3d3b88bab432116ad2490beb3bf41"}, +] + +[[package]] +name = "pydantic" +version = "1.10.14" +description = "Data validation and settings management using python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054"}, + {file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87"}, + {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d"}, + {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e"}, + {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9"}, + {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a"}, + {file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf"}, + {file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7"}, + {file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b"}, + {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663"}, + {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f"}, + {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046"}, + {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca"}, + {file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f"}, + {file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c"}, + {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5"}, + {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c"}, + {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc"}, + {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe"}, + {file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01"}, + {file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee"}, + {file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597"}, + {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee"}, + {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f"}, + {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022"}, + {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f"}, + {file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a"}, + {file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4"}, + {file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347"}, + {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7"}, + {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea"}, + {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f"}, + {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593"}, + {file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8"}, + {file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c"}, + {file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-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 = "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.29" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.29-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c142852ae192e9fe5aad5c350ea6befe9db14370b34047e1f0f7cf99e63c63b"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:99a1e69d4e26f71e750e9ad6fdc8614fbddb67cfe2173a3628a2566034e223c7"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ef3fbccb4058355053c51b82fd3501a6e13dd808c8d8cd2561e610c5456013c"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d6753305936eddc8ed190e006b7bb33a8f50b9854823485eed3a886857ab8d1"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0f3ca96af060a5250a8ad5a63699180bc780c2edf8abf96c58af175921df847a"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c4520047006b1d3f0d89e0532978c0688219857eb2fee7c48052560ae76aca1e"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-win32.whl", hash = "sha256:b2a0e3cf0caac2085ff172c3faacd1e00c376e6884b5bc4dd5b6b84623e29e4f"}, + {file = "SQLAlchemy-2.0.29-cp310-cp310-win_amd64.whl", hash = "sha256:01d10638a37460616708062a40c7b55f73e4d35eaa146781c683e0fa7f6c43fb"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:308ef9cb41d099099fffc9d35781638986870b29f744382904bf9c7dadd08513"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:296195df68326a48385e7a96e877bc19aa210e485fa381c5246bc0234c36c78e"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a13b917b4ffe5a0a31b83d051d60477819ddf18276852ea68037a144a506efb9"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f6d971255d9ddbd3189e2e79d743ff4845c07f0633adfd1de3f63d930dbe673"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:61405ea2d563407d316c63a7b5271ae5d274a2a9fbcd01b0aa5503635699fa1e"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:de7202ffe4d4a8c1e3cde1c03e01c1a3772c92858837e8f3879b497158e4cb44"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-win32.whl", hash = "sha256:b5d7ed79df55a731749ce65ec20d666d82b185fa4898430b17cb90c892741520"}, + {file = "SQLAlchemy-2.0.29-cp311-cp311-win_amd64.whl", hash = "sha256:205f5a2b39d7c380cbc3b5dcc8f2762fb5bcb716838e2d26ccbc54330775b003"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d96710d834a6fb31e21381c6d7b76ec729bd08c75a25a5184b1089141356171f"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:52de4736404e53c5c6a91ef2698c01e52333988ebdc218f14c833237a0804f1b"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c7b02525ede2a164c5fa5014915ba3591730f2cc831f5be9ff3b7fd3e30958e"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dfefdb3e54cd15f5d56fd5ae32f1da2d95d78319c1f6dfb9bcd0eb15d603d5d"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a88913000da9205b13f6f195f0813b6ffd8a0c0c2bd58d499e00a30eb508870c"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fecd5089c4be1bcc37c35e9aa678938d2888845a134dd016de457b942cf5a758"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-win32.whl", hash = "sha256:8197d6f7a3d2b468861ebb4c9f998b9df9e358d6e1cf9c2a01061cb9b6cf4e41"}, + {file = "SQLAlchemy-2.0.29-cp312-cp312-win_amd64.whl", hash = "sha256:9b19836ccca0d321e237560e475fd99c3d8655d03da80c845c4da20dda31b6e1"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87a1d53a5382cdbbf4b7619f107cc862c1b0a4feb29000922db72e5a66a5ffc0"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a0732dffe32333211801b28339d2a0babc1971bc90a983e3035e7b0d6f06b93"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90453597a753322d6aa770c5935887ab1fc49cc4c4fdd436901308383d698b4b"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ea311d4ee9a8fa67f139c088ae9f905fcf0277d6cd75c310a21a88bf85e130f5"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5f20cb0a63a3e0ec4e169aa8890e32b949c8145983afa13a708bc4b0a1f30e03"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-win32.whl", hash = "sha256:e5bbe55e8552019c6463709b39634a5fc55e080d0827e2a3a11e18eb73f5cdbd"}, + {file = "SQLAlchemy-2.0.29-cp37-cp37m-win_amd64.whl", hash = "sha256:c2f9c762a2735600654c654bf48dad388b888f8ce387b095806480e6e4ff6907"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e614d7a25a43a9f54fcce4675c12761b248547f3d41b195e8010ca7297c369c"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:471fcb39c6adf37f820350c28aac4a7df9d3940c6548b624a642852e727ea586"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:988569c8732f54ad3234cf9c561364221a9e943b78dc7a4aaf35ccc2265f1930"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dddaae9b81c88083e6437de95c41e86823d150f4ee94bf24e158a4526cbead01"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:334184d1ab8f4c87f9652b048af3f7abea1c809dfe526fb0435348a6fef3d380"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:38b624e5cf02a69b113c8047cf7f66b5dfe4a2ca07ff8b8716da4f1b3ae81567"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-win32.whl", hash = "sha256:bab41acf151cd68bc2b466deae5deeb9e8ae9c50ad113444151ad965d5bf685b"}, + {file = "SQLAlchemy-2.0.29-cp38-cp38-win_amd64.whl", hash = "sha256:52c8011088305476691b8750c60e03b87910a123cfd9ad48576d6414b6ec2a1d"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3071ad498896907a5ef756206b9dc750f8e57352113c19272bdfdc429c7bd7de"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dba622396a3170974f81bad49aacebd243455ec3cc70615aeaef9e9613b5bca5"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b184e3de58009cc0bf32e20f137f1ec75a32470f5fede06c58f6c355ed42a72"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c37f1050feb91f3d6c32f864d8e114ff5545a4a7afe56778d76a9aec62638ba"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bda7ce59b06d0f09afe22c56714c65c957b1068dee3d5e74d743edec7daba552"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:25664e18bef6dc45015b08f99c63952a53a0a61f61f2e48a9e70cec27e55f699"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-win32.whl", hash = "sha256:77d29cb6c34b14af8a484e831ab530c0f7188f8efed1c6a833a2c674bf3c26ec"}, + {file = "SQLAlchemy-2.0.29-cp39-cp39-win_amd64.whl", hash = "sha256:04c487305ab035a9548f573763915189fc0fe0824d9ba28433196f8436f1449c"}, + {file = "SQLAlchemy-2.0.29-py3-none-any.whl", hash = "sha256:dc4ee2d4ee43251905f88637d5281a8d52e916a021384ec10758826f5cbae305"}, + {file = "SQLAlchemy-2.0.29.tar.gz", hash = "sha256:bd9566b8e58cabd700bc367b60e90d9349cd16f0984973f98a9a09f9c64e86f0"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.20.4" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.7" +files = [ + {file = "starlette-0.20.4-py3-none-any.whl", hash = "sha256:c0414d5a56297d37f3db96a84034d61ce29889b9eaccf65eb98a0b39441fcaa3"}, + {file = "starlette-0.20.4.tar.gz", hash = "sha256:42fcf3122f998fefce3e2c5ad7e5edbf0f02cf685d646a83a08d404726af5084"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"] + +[[package]] +name = "strawberry-graphql" +version = "0.219.2" +description = "A library for creating GraphQL APIs" +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "strawberry_graphql-0.219.2-py3-none-any.whl", hash = "sha256:6b26994bcf092714dbd6def4c69a36c279fbdbfdc2390fb6294728dd076ba863"}, + {file = "strawberry_graphql-0.219.2.tar.gz", hash = "sha256:b7a9b3115398402ec04fceb76b0dd3908dd90009cf20d344071be985c039aac7"}, +] + +[package.dependencies] +astunparse = {version = ">=1.6.3,<2.0.0", markers = "python_version < \"3.9\""} +fastapi = {version = ">=0.65.2", optional = true, markers = "extra == \"fastapi\""} +graphql-core = ">=3.2.0,<3.3.0" +python-dateutil = ">=2.7.0,<3.0.0" +python-multipart = {version = ">=0.0.7", optional = true, markers = "extra == \"asgi\" or extra == \"debug-server\" or extra == \"fastapi\""} +typing-extensions = ">=4.5.0" + +[package.extras] +aiohttp = ["aiohttp (>=3.7.4.post0,<4.0.0)"] +asgi = ["python-multipart (>=0.0.7)", "starlette (>=0.18.0)"] +chalice = ["chalice (>=1.22,<2.0)"] +channels = ["asgiref (>=3.2,<4.0)", "channels (>=3.0.5)"] +cli = ["libcst (>=0.4.7)", "pygments (>=2.3,<3.0)", "rich (>=12.0.0)", "typer (>=0.7.0)"] +debug = ["libcst (>=0.4.7)", "rich (>=12.0.0)"] +debug-server = ["libcst (>=0.4.7)", "pygments (>=2.3,<3.0)", "python-multipart (>=0.0.7)", "rich (>=12.0.0)", "starlette (>=0.18.0)", "typer (>=0.7.0)", "uvicorn (>=0.11.6)"] +django = ["Django (>=3.2)", "asgiref (>=3.2,<4.0)"] +fastapi = ["fastapi (>=0.65.2)", "python-multipart (>=0.0.7)"] +flask = ["flask (>=1.1)"] +litestar = ["litestar (>=2)"] +opentelemetry = ["opentelemetry-api (<2)", "opentelemetry-sdk (<2)"] +pydantic = ["pydantic (>1.6.1)"] +pyinstrument = ["pyinstrument (>=4.0.0)"] +quart = ["quart (>=0.19.3)"] +sanic = ["sanic (>=20.12.2)"] +starlite = ["starlite (>=1.48.0)"] + +[[package]] +name = "typing-extensions" +version = "4.10.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, +] + +[[package]] +name = "uvicorn" +version = "0.17.6" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.7" +files = [ + {file = "uvicorn-0.17.6-py3-none-any.whl", hash = "sha256:19e2a0e96c9ac5581c01eb1a79a7d2f72bb479691acd2b8921fce48ed5b961a6"}, + {file = "uvicorn-0.17.6.tar.gz", hash = "sha256:5180f9d059611747d841a4a4c4ab675edf54c8489e97f96d0583ee90ac3bfc23"}, +] + +[package.dependencies] +asgiref = ">=3.4.0" +click = ">=7.0" +h11 = ">=0.8" + +[package.extras] +standard = ["PyYAML (>=5.1)", "colorama (>=0.4)", "httptools (>=0.4.0)", "python-dotenv (>=0.13)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchgod (>=0.6)", "websockets (>=10.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 = "wheel" +version = "0.43.0" +description = "A built-package format for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81"}, + {file = "wheel-0.43.0.tar.gz", hash = "sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85"}, +] + +[package.extras] +test = ["pytest (>=6.0.0)", "setuptools (>=65)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.8" +content-hash = "105119712865c66fa759fbc45c472ee9026535e6473b012bb5db3c4ecf73b0f3" diff --git a/src/pyproject.toml b/src/pyproject.toml new file mode 100644 index 0000000..481020c --- /dev/null +++ b/src/pyproject.toml @@ -0,0 +1,22 @@ +[tool.poetry] +name = "app" +version = "0.1.0" +description = "Przykład aplikacji FastAPI z WebSockets i Flutter" +authors = ["mpabi"] + +[tool.poetry.dependencies] +python = "^3.8" +fastapi = "^0.85" +websockets = "^12.0" +sqlalchemy = "^2.0.26" +strawberry-graphql = {extras = ["fastapi"], version = "^0.219.2"} +mysqlclient = "^2.2.4" +mysql-connector-python = "^8.3.0" + +[tool.poetry.dev-dependencies] +uvicorn = "^0.17.6" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry run pip install --no-deps ." +build-frontend = "poetry run flutter build web" diff --git a/src/static/index.html b/src/static/index.html new file mode 100644 index 0000000..f041a95 --- /dev/null +++ b/src/static/index.html @@ -0,0 +1,40 @@ + + + + + + Library Management + + + +
Library Management
+
+ +
+

Authors

+
    +

    Books

    +
      + +
        +
        +
        +
        2024 Library Management System
        + + + + diff --git a/src/static/script.js b/src/static/script.js new file mode 100644 index 0000000..4540378 --- /dev/null +++ b/src/static/script.js @@ -0,0 +1,69 @@ +const BASE_URL = 'http://qstack.pl:1111'; // Zaktualizuj zgodnie z konfiguracją Twojego serwera + +document.addEventListener('DOMContentLoaded', function() { + loadAuthors(); + loadBooks(); +}); + +document.getElementById('addAuthorForm').addEventListener('submit', function(e) { + e.preventDefault(); + const authorName = document.getElementById('authorName').value; + fetch(`${BASE_URL}/authors/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ name: authorName }), + }) + .then(response => response.json()) + .then(() => { + loadAuthors(); // Ponowne ładowanie listy autorów po dodaniu nowego autora + }) + .catch(error => console.error('Error:', error)); +}); + +document.getElementById('addBookForm').addEventListener('submit', function(e) { + e.preventDefault(); + const bookTitle = document.getElementById('bookTitle').value; + const bookAuthorId = document.getElementById('bookAuthorId').value; + fetch(`${BASE_URL}/books/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ title: bookTitle, author_id: parseInt(bookAuthorId, 10) }), + }) + .then(response => response.json()) + .then(() => { + loadBooks(); // Ponowne ładowanie listy książek po dodaniu nowej książki + }) + .catch(error => console.error('Error:', error)); +}); + +function loadAuthors() { + fetch(`${BASE_URL}/authors/`) + .then(response => response.json()) + .then(data => { + const authorsSelect = document.getElementById('bookAuthorId'); + authorsSelect.innerHTML = ''; // Dodaj domyślną opcję + data.forEach(author => { + const option = document.createElement('option'); + option.value = author.id; + option.textContent = author.name; + authorsSelect.appendChild(option); + }); + }) + .catch(error => console.error('Error:', error)); +} + +function loadBooks() { + fetch(`${BASE_URL}/books/`) + .then(response => response.json()) + .then(data => { + const booksList = document.getElementById('booksList'); + booksList.innerHTML = ''; + data.forEach(book => { + const listItem = document.createElement('li'); + listItem.textContent = `${book.title} - Author ID: ${book.author_id}`; + booksList.appendChild(listItem); + }); + }) + .catch(error => console.error('Error:', error)); +} + diff --git a/src/static/style.css b/src/static/style.css new file mode 100644 index 0000000..3883254 --- /dev/null +++ b/src/static/style.css @@ -0,0 +1,43 @@ +body, html { + margin: 0; + padding: 0; + font-family: Arial, sans-serif; +} + +header, footer { + background-color: #333; + color: #fff; + text-align: center; + padding: 1rem 0; +} + +.container { + display: flex; + min-height: calc(100vh - 100px); /* Adjust based on header/footer height */ +} + +.sidebar { + width: 30%; + padding: 20px; + background-color: #f4f4f4; +} + +.content { + flex-grow: 1; + padding: 20px; +} + +form > * { + display: block; + margin-bottom: 10px; +} + +button { + cursor: pointer; +} + +ul { + list-style-type: none; + padding-left: 0; +} + diff --git a/tex/backend/main.pdf b/tex/backend/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8b605ddca802988350b97414f4fb36b182ea0613 GIT binary patch literal 42326 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 O%kvkYtdB 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­PWMYOay*>wbKD*gbfO<>=?yDjDHqS7y-|~QnXg4 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 YlYxVi8_0>nffVIng(D{yl@o*ef7^x@asU7T literal 0 HcmV?d00001 diff --git a/tex/backend/main.tex b/tex/backend/main.tex new file mode 100644 index 0000000..2a69789 --- /dev/null +++ b/tex/backend/main.tex @@ -0,0 +1,25 @@ +\documentclass{article} +\usepackage{hyperref} % Dodaje aktywne linki + +\begin{document} + +\section{Polecenia curl} + +Poniżej znajdują się polecenia \texttt{curl} do wysyłania żądań POST do endpointu \texttt{/kebab\_orders/}: + +\begin{verbatim} +for i in {1..5}; do \ + curl -X 'POST' \ + 'http://qstack.pl:9999/kebab_orders/' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -d '{ + "type": "Kebab", + "quantity": 1, + "address": "Example Address '$i'" + }'; \ +done +\end{verbatim} + +\end{document} + diff --git a/tex/devops/main.pdf b/tex/devops/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e552bdc494cddb14c8a5a3648b996dc56c228893 GIT binary patch literal 143036 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

        &|ohq}{iZSv(cVHp6$>NR9z1w-f8s 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

        !x9^g& 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�*eBBsHqiu%>h5R`0VOi9Bgz zmM_+T8Q_erBt8JXhp+u!{Ls&vyvJ5Js!6W@hBr-G@g*T)`by}?w3GQ-Wm1)1WX>|f z;nV}{$ATlk`MR{eZiGWhRXrM%@7S%|g;S3_uhP^0jl*N=~F_EmPP0+ul z8T~-?$#`g+eZ;*1z3Ih+`-P*>ZAL#KCJ}e(~qmGJ@?M)t-vk>AMar&Q0EOp;Z4;e44|2j76>A>p9ry zGmG2b-$P$4V}7cLErL;g1%;Lg2vfLW16>t{C1wepWeyt`7kE|!=GKyx8!it!Vg6giW}lmgWFrXy2e+a;3b#XVx2SwoP=vGq0LfX4)ScD$wz{_w1g9Qg?H>D=I@ zq=OFVV@IvoLXr{=-m!*q(mL9!xPvy?#%F1s^C|ufqVf)^$Rc{!Q-2i-H{g^iO4g;q zg$_O0P!dXfqdIXfD2w29vJ*}Sy)P^iUwht9h4PfFnY>=zAzmR$6%9>#U++5WdXs6H zm}uBg)uZ~lBezQ$V?R|b@aqHxIi*BYQ$~1Oj~iQ>`WH@wF()bFG(ow zwv7X)cvn7$sNNFdSKl*6R0SeBZ`H*O_vlx+n`@sa$G)o9w`;6?OKo~BvE9+M5OGB; zbdY>i|8?11b0Qu2(htoZN%ADj#vfL2J`&e#!cUs!W@6R(W)ov&u=c7eZ1anR7>2;m z9+St8rGdfAgu|qC$0KJkD*Uj)J=p0%frQ1*5MtnX>eF`12?9-&oK{3$hh%SIXu-ZV z=qgXbDB5anvo-@%)Si;p1$G7#oLVp!;x5?2A`!~%aWUS_%xq!86ia+oJy}CtXE2bk z^e6N^xH~lRYVf+F+7&!E2? zWYxQQyy8N{$bm`1vi8v=nDH5-AX{kL-G(Q0b;{$OA*bEK@Ak#Bj2B-UD7}VkY3656 zt4cTEB*ED8M}PL2Oigp$+k{lV2eF!qtukIkYh5+Wu^Vdkjn$G#yd_|CYn1qL*3-rJ zt^M8e+}MkYOG|&yhyJ{7BG)S8^VR0WuUW=8%2w+d$hljE{YSy#$K?wi7e05YRNg2H zP>vWMLXSeftz}%6g^ja|;e7Mn*xOxPduQ7x?T;P$W4OhmHf(X1+QGWOBNo+nLb^61*6V%>JpvgWL9^6n*+QK* zGiv8r>^QNGg@A49f~);N zNAWLvdK_TFXQMMS*~Yx3JNJ8zdrJyvew37zc)6*bj+Mi+X~YkbkQ2>qCY6=526ipk zHtyUMQSx8YY+4r#WbD@HYP`OwT4;GkQzDrR>BBy+35)DcAzjlS`Hxo!_N0 zcX?N(Ai+NqpKFLjOx4T|f3K{Ui~+2u@)LdwZ!)>sS`@ zEWn{=4by9|gVDvOlK!X2HCRd#{BBptT;#2>&;w>#9R6vACW(SU@~z^+B`(f`(XJ8a7@KV1&h`L#q#_<)H-w%hVkm zVYC7_opkk^>6VVPzsjVWD>AhDqCB$FLj2s)(o%vlLUR0)QheNU0w4iCNp5agFds-# zQk?eRPXV6g&sJ{SV7~wB&L7p_Q|{Z3fx{B)**$$i7l$cn0cs;S`l{B}-aR~ztC{bN zrlY#bR?;+#W^Zp07fGzOP zRfB8> .bashrc +RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> .bashrc +RUN echo 'eval "$(pyenv init -)"' >> .bashrc +RUN echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc +\end{verbatim} +Install Pyenv and Pyenv-virtualenv. + +\subsection{Installing Python 3.11} +\textbf{Dockerfile Instruction:} +\begin{verbatim} +RUN bash -i -c "source ~/.bashrc && env PYTHON_CONFIGURE_OPTS='--enable-shared' pyenv install 3.11" + +RUN bash -i -c "source ~/.bashrc && pyenv virtualenv 3.11 p3.11" + +RUN bash -i -c "source ~/.bashrc && pyenv local 3.11" +\end{verbatim} +Install Python 3.11 using Pyenv. + +\subsection{Installing Poetry} +\textbf{Dockerfile Instruction:} +\begin{verbatim} +RUN curl -sSL https://install.python-poetry.org | python3 - +\end{verbatim} +Install Poetry. + +\subsection{Project Configuration} +\textbf{Dockerfile Instruction:} +\begin{verbatim} +COPY --chown=user:user . /home/user/fapi +COPY ./_confs/* ./ + +WORKDIR /home/user/fapi + +ENV PATH="$HOME/.local/bin:$PATH" + +RUN bash -i -c "source ~/.bashrc && poetry config virtualenvs.create false && poetry install" +\end{verbatim} +Copy the project into the image, configure the Poetry path, and install dependencies. + +\subsection{Running the Application} +\textbf{Dockerfile Instruction:} +\begin{verbatim} +CMD ["/bin/bash", "-c", "python entrypoint.py"] +\end{verbatim} +Run the application. + +\section{Running the Container} + +\subsection{Running with Default Command} +\textbf{Docker Command:} +\begin{verbatim} +docker run --rm -dit -p 9999:9999 fapi +\end{verbatim} +Run the container with the default command (CMD). + +\subsection{Running with Bash Shell} +\textbf{Docker Command:} +\begin{verbatim} +docker run --rm -dit -p 9999:9999 --name cfapi fapi bash +\end{verbatim} +Run the container with a bash shell. + +\subsection{Accessing Container Shell} +\textbf{Docker Command:} +\begin{verbatim} +docker exec -it cfapi bash +\end{verbatim} +Allows accessing the shell of the container named cfapi. + +\appendix +\section{Complete Dockerfile with Database Creation} + +\begin{verbatim} +# Choose a base image. Debian is a good choice due to pyenv +FROM debian:latest + +# Update the package list and install necessary dependencies +RUN apt-get update && apt-get install -y \ + aptitude \ + tmux vim-nox nano mc git curl termshark procps \ + sudo iproute2 iputils-ping bridge-utils \ + ifupdown udev make build-essential libssl-dev zlib1g-dev \ + libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev \ + libncursesw5-dev xz-utils libffi-dev liblzma-dev \ + sqlite3 default-libmysqlclient-dev pkg-config + +# Set password for root user (optional, for configuration) +RUN echo 'root:rootpass' | chpasswd + +# Add a new user `user` with password `pass` and prepare the environment +RUN useradd -m user && echo 'user:pass' | chpasswd && adduser user sudo + +# Switch to user `user` +USER user +WORKDIR /home/user + +# Install pyenv +RUN git clone https://github.com/pyenv/pyenv .pyenv + +# Install pyenv-virtualenv +RUN git clone https://github.com/pyenv/pyenv-virtualenv .pyenv/plugins/pyenv-virtualenv + +# Set environment variables +ENV HOME /home/user +ENV PYENV_ROOT $HOME/.pyenv +ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH + +# Add pyenv and pyenv-virtualenv configuration to .bashrc +RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> .bashrc +RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> .bashrc +RUN echo 'eval "$(pyenv init -)"' >> .bashrc +RUN echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc + +# Install Python 3.11 with --enable-shared +RUN bash -i -c "source ~/.bashrc && env PYTHON_CONFIGURE_OPTS='--enable-shared' pyenv install 3.11" + +# Create a virtual environment p3.11 +RUN bash -i -c "source ~/.bashrc && pyenv virtualenv 3.11 p3.11" + +# Set p3.11 as the default virtual environment, docker doesn't like ;) +RUN bash -i -c "source ~/.bashrc && pyenv local 3.11" + +# Install Poetry +RUN curl -sSL https://install.python-poetry.org | python3 - + +# Copy the project into the image +COPY --chown=user:user . /home/user/fapi +COPY ./_confs/* ./ + +# Set the working directory for installing dependencies +WORKDIR /home/user/fapi + +# Add Poetry path to PATH directly in the Dockerfile +ENV PATH="$HOME/.local/bin:$PATH" + +RUN bash -i -c "source ~/.bashrc && poetry config virtualenvs.create false && poetry install" + +# Run the application +CMD ["/bin/bash", "-c", "python entrypoint.py"] +\end{verbatim} + +\end{document} diff --git a/tex/fronted/main.pdf b/tex/fronted/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b7518e8cfc4c43732ce006e220cc9cf3308bd0c GIT binary patch literal 100050 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≪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 literal 0 HcmV?d00001 diff --git a/tex/fronted/main.tex b/tex/fronted/main.tex new file mode 100644 index 0000000..304cb89 --- /dev/null +++ b/tex/fronted/main.tex @@ -0,0 +1,163 @@ +\documentclass{article} +\usepackage[utf8]{inputenc} +\usepackage{hyperref} + +% \title{Exercise: +\title{Fetching Data from API with FastAPI and JavaScript and Inserting into a Table} +\author{Tomasz Zadworny} +\date{\today} + +\begin{document} + +\maketitle + +\section{Introduction} +In this exercise, we will explore the process of fetching data from an API using FastAPI on the server side and displaying it on the client side using JavaScript with the \texttt{fetch} API. + +\section{Server-side Implementation with FastAPI} +Create a FastAPI application that serves a simple API endpoint returning JSON data. The following Python code snippet demonstrates a basic FastAPI application: + +\begin{verbatim} +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware + +app = FastAPI() + +origins = [ + "http://localhost:8888", +] + +app.add_middleware( + CORSMiddleware, + allow_origins=origins, # Dla wszystkich domen (uwaga: lepiej określić konkretne adresy) + allow_credentials=True, + # allow_origins=["*"], # Dla wszystkich domen (uwaga: lepiej określić konkretne adresy) + # allow_credentials=False, + allow_methods=["*"], # Dla wszystkich metod HTTP + allow_headers=["*"], # Dla wszystkich nagłówków HTTP +) + +data = [ + {"id": 1, "name": "Example 1"}, + {"id": 2, "name": "Example 2"}, + {"id": 3, "name": "Example 3"}, +] + +@app.get("/api/data") +def get_data(): + return data +\end{verbatim} + + +\subsection{Poetry Configuration} + +To configure your Python project using Poetry, follow these steps: + +\begin{enumerate} +\item \textbf{Initialize Poetry:} Run the following command to initialize your project with Poetry. + +\begin{verbatim} +poetry init +\end{verbatim} + +This command will guide you through the project setup process, prompting for information such as the project name, version, and dependencies. + +\item \textbf{Add FastAPI:} Use the following command to add FastAPI as a dependency to your project. + +\begin{verbatim} +poetry add fastapi +\end{verbatim} + +This will automatically update your \texttt{pyproject.toml} file with the FastAPI dependency. + +\item \textbf{Add Uvicorn:} Similarly, add Uvicorn as a dependency. + +\begin{verbatim} +poetry add uvicorn +\end{verbatim} + +\item \textbf{Install Dependencies:} Execute the following command to install the dependencies. + +\begin{verbatim} +poetry install +\end{verbatim} + +This command installs the project dependencies, including FastAPI and Uvicorn. + +\item \textbf{Install (No-Root):} For development purposes, it's recommended to use the following command to install dependencies without including the project itself. + +\begin{verbatim} +poetry install --no-root +\end{verbatim} + +This command installs dependencies without including the main project. It's useful when you're working in a virtual environment. + +\item \textbf{Run Uvicorn:} To run your FastAPI application using Uvicorn, execute the following command: + +\begin{verbatim} +poetry run uvicorn --reload app.main:app --host 0.0.0.0 --port 9999 +\end{verbatim} + +This command starts the FastAPI application with Uvicorn, enabling hot-reloading and specifying the host and port. + +\end{enumerate} + +These steps help you configure your Python project using Poetry, adding FastAPI and Uvicorn as dependencies and providing commands to install and run your application. + +\section{Client-side Implementation with JavaScript} +Design an HTML page that uses JavaScript and the \texttt{fetch} API to retrieve data from the FastAPI endpoint and display it in a table. The following HTML and JavaScript code can serve as a starting point: + +\begin{verbatim} + + + + + + Fetch Data Example + + + + + + + + + + + +
        IDName
        + + + + + +\end{verbatim} + +\section{Conclusion} +This exercise introduces the basics of using FastAPI to create a simple API and using JavaScript with the \texttt{fetch} API to retrieve and display data on the client side. + +\end{document}