From f6b4d699369477923eac820780a3a9bd464c4a5f Mon Sep 17 00:00:00 2001 From: ErikO <49541561+EJOOSTEROP@users.noreply.github.com> Date: Thu, 17 Aug 2023 21:16:19 +0000 Subject: [PATCH] Initial commit. --- .devcontainer/devcontainer.json | 50 + .devcontainer/dockerfile | 5 + .env.example | 4 + .flake8 | 29 + .gitignore | 175 ++ .vscode/settings.json | 19 + README.md | 364 +++ docs/pdf/CIBC_AIF_2022_ENG.pdf | Bin 0 -> 238520 bytes docs/pdf/test.txt | 1 + experiments.md | 78 + license.txt | 20 + media/llms.png | Bin 0 -> 152713 bytes noxfile.py | 48 + poetry.lock | 3064 +++++++++++++++++++++++++ poetry.toml | 2 + pyproject.toml | 105 + quke/__init__.py | 29 + quke/conf/__init__.py | 0 quke/conf/config.yaml | 15 + quke/conf/embedding/cohere.yaml | 28 + quke/conf/embedding/hf_r.yaml | 28 + quke/conf/embedding/huggingface.yaml | 28 + quke/conf/embedding/openai.yaml | 28 + quke/conf/experiment/llama2.yaml | 5 + quke/conf/experiment/openai.yaml | 5 + quke/conf/experiment/openaihf.yaml | 5 + quke/conf/llm/cohere.yaml | 7 + quke/conf/llm/falcon7b.yaml | 11 + quke/conf/llm/gpt3-5.yaml | 8 + quke/conf/llm/llama2.yaml | 15 + quke/conf/question/eps.yaml | 3 + quke/conf/question/growth.yaml | 3 + quke/conf/question/tabulation.yaml | 3 + quke/embed.py | 200 ++ quke/llm_chat.py | 134 ++ quke/quke.py | 193 ++ quke/trial questions.txt | 4 + tests/__init__.py | 0 tests/conf/__init__.py | 0 tests/conf/config.yaml | 11 + tests/conf/embedding/cohere.yaml | 28 + tests/conf/embedding/hf_r.yaml | 28 + tests/conf/embedding/huggingface.yaml | 28 + tests/conf/embedding/openai.yaml | 28 + tests/conf/experiment/llama2.yaml | 5 + tests/conf/experiment/openai.yaml | 5 + tests/conf/experiment/openaihf.yaml | 5 + tests/conf/llm/cohere.yaml | 7 + tests/conf/llm/falcon7b.yaml | 11 + tests/conf/llm/gpt3-5.yaml | 8 + tests/conf/llm/llama2.yaml | 15 + tests/conf/question/eps.yaml | 3 + tests/conf/question/tabulation.yaml | 3 + tests/data/src_doc/test.txt | 1 + tests/test_001.py | 100 + 55 files changed, 5002 insertions(+) create mode 100755 .devcontainer/devcontainer.json create mode 100755 .devcontainer/dockerfile create mode 100644 .env.example create mode 100644 .flake8 create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100755 docs/pdf/CIBC_AIF_2022_ENG.pdf create mode 100644 docs/pdf/test.txt create mode 100644 experiments.md create mode 100755 license.txt create mode 100755 media/llms.png create mode 100644 noxfile.py create mode 100644 poetry.lock create mode 100644 poetry.toml create mode 100644 pyproject.toml create mode 100644 quke/__init__.py create mode 100644 quke/conf/__init__.py create mode 100644 quke/conf/config.yaml create mode 100644 quke/conf/embedding/cohere.yaml create mode 100644 quke/conf/embedding/hf_r.yaml create mode 100644 quke/conf/embedding/huggingface.yaml create mode 100644 quke/conf/embedding/openai.yaml create mode 100644 quke/conf/experiment/llama2.yaml create mode 100644 quke/conf/experiment/openai.yaml create mode 100644 quke/conf/experiment/openaihf.yaml create mode 100644 quke/conf/llm/cohere.yaml create mode 100644 quke/conf/llm/falcon7b.yaml create mode 100644 quke/conf/llm/gpt3-5.yaml create mode 100644 quke/conf/llm/llama2.yaml create mode 100644 quke/conf/question/eps.yaml create mode 100644 quke/conf/question/growth.yaml create mode 100644 quke/conf/question/tabulation.yaml create mode 100644 quke/embed.py create mode 100644 quke/llm_chat.py create mode 100644 quke/quke.py create mode 100644 quke/trial questions.txt create mode 100644 tests/__init__.py create mode 100644 tests/conf/__init__.py create mode 100644 tests/conf/config.yaml create mode 100644 tests/conf/embedding/cohere.yaml create mode 100644 tests/conf/embedding/hf_r.yaml create mode 100644 tests/conf/embedding/huggingface.yaml create mode 100644 tests/conf/embedding/openai.yaml create mode 100644 tests/conf/experiment/llama2.yaml create mode 100644 tests/conf/experiment/openai.yaml create mode 100644 tests/conf/experiment/openaihf.yaml create mode 100644 tests/conf/llm/cohere.yaml create mode 100644 tests/conf/llm/falcon7b.yaml create mode 100644 tests/conf/llm/gpt3-5.yaml create mode 100644 tests/conf/llm/llama2.yaml create mode 100644 tests/conf/question/eps.yaml create mode 100644 tests/conf/question/tabulation.yaml create mode 100644 tests/data/src_doc/test.txt create mode 100644 tests/test_001.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100755 index 0000000..efdc83a --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,50 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/python +{ + "name": "LangChain - Python 3", + + "build": { + "dockerfile": "./dockerfile", + "context": "." + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "installOhMyZsh": true, + "installOhMyZshConfig": true, + "upgradePackages": true, + "username": "devcontainer" + }, + "ghcr.io/devcontainers-contrib/features/poetry:2": { + "version": "latest" + }, + "ghcr.io/devcontainers-contrib/features/nox:2": { + "version": "latest" + } + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "pip3 install --user -r requirements.txt", + "postCreateCommand": "poetry install" , + + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance", + "Gruntfuggly.todo-tree" + ] + } + }, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" + "remoteUser": "vscode" + +} diff --git a/.devcontainer/dockerfile b/.devcontainer/dockerfile new file mode 100755 index 0000000..c3af78e --- /dev/null +++ b/.devcontainer/dockerfile @@ -0,0 +1,5 @@ +FROM mcr.microsoft.com/devcontainers/python:1-3.11-bullseye + +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..fea42b9 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +OPENAI_API_KEY = "YOUR-KEY" +HUGGINGFACEHUB_API_TOKEN = "YOUR-KEY" +COHERE_API_KEY = "YOUR-KEY" +REPLICATE_API_TOKEN = "YOUR-KEY" \ No newline at end of file diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..459c60b --- /dev/null +++ b/.flake8 @@ -0,0 +1,29 @@ +[flake8] +# https://stackoverflow.com/questions/50177173/how-do-i-get-flake8-to-reliably-ignore-rules-in-vs-code + +select = ANN,B,B9,BLK,D,DAR,E,F,I,S,W +# add ,C for copyright notices, S for bandit, B for bugbear, BLK for Black +# select = E,F,W,I,C +ignore=E203,E501,W503 + +exclude = + .git + ,.nox + ,build + ,dist + + +max-line-length = 119 +max-complexity = 10 + +application-import-names = quke,tests + +import-order-style = google +docstring-convention = google + +per-file-ignores = tests/*:S101, quke/conf/*:D104 + +# add ',C' to 'select=' in order to show the copyright warnings. +copyright-check = True +copyright-min-file-size = 50 +copyright-regexp=Copyright \(c\) XXXX. All Rights Reserved \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..283dbe3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,175 @@ +# quke specific +old-for-reference/ +idata/ +outputs/ +multirun/ +docs/youtube/ +docs/src_docs/ +docs/pdf - Copy/ +.chroma/ + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ +DEL__init__.py +DEL_setup.py +readme - SAMPLE.md +quke/temp.yaml +quke/wip.py diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..cc2e7ff --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,19 @@ +{ + "todo-tree.tree.showBadges": true, + "todo-tree.tree.disableCompactFolders": true, + "python.testing.pytestArgs": [ + "tests" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, + + + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": true + }, + }, + "isort.args":["--profile", "black"], +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1f58850 --- /dev/null +++ b/README.md @@ -0,0 +1,364 @@ + + + + + + + + + + + +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![MIT License][license-shield]][license-url] +[![LinkedIn][linkedin-shield]][linkedin-url] + + + + + +
+
+ + Logo + + +

quke

+ +

+ Compare the answering capabilities of different LLMs - for example LlaMa, ChatGPT, Cohere, Falcon - against user provided document(s) and questions. +
+ Explore the docs » +
+
+ + Report Bug + · + Request Feature +

+
+ + + +
+ Table of Contents +
    +
  1. + About The Project + +
  2. +
  3. + Getting Started + +
  4. +
  5. + Usage + +
  6. + +
  7. License
  8. +
  9. Contact
  10. + +
+
+ + + +## About The Project +Compare the answering capabilities of different LLMs - for example LlaMa, ChatGPT, Cohere, Falcon - against user provided document(s) and questions. + +Specify the different models, embedding tools and vector databases in configuration files. + +Maintain reproducable experiments reflecting combinations of these configurations. + +

(back to top)

+ +## Getting Started +### Prerequisites +#### Poetry +The instructions assume a Python environment with [Poetry][poetry-url] installed. Development of the tool is done in Python 3.11. While Poetry is not actually needed for the tool to function, the examples assume Poetry is installed. + +#### API keys +The tool uses 3rd party hosted inference APIs. API keys need to be specified as environment variables. + +The services used: +- [HuggingFace][huggingface-url] +- [OpenAI][openai-url] +- [Cohere][cohere-url] +- [Replicate][replicate-url] + +The API keys can be specied in a [.env file][.env-url]. Use the provided .env.example file as an example (enter your own API keys and rename it to '.env'). + +At present, all services used in the example configuration have free tiers available. + +

(back to top)

+ +### Installation +Navigate to the directory that contains the pyproject.toml file, then execute the +```sh +poetry install +``` +command. + +

(back to top)

+ + +## Usage +For the examples the project comes with a public financial document for a Canadian Bank (CIBC) as source pdf file. + +### Base +In order to run the first example, ensure to specify your HuggingFace API key. + +Use the command +```sh +poetry run quke +``` +to ask the default questions, using the default embedding and the default LLM. + +The answers provided by the LLM - in addition to various other logging messages - are saved in the ./output/ or ./multirun directories in separate date and time subdirectories, including in a file called `chat_session.md`. + +The defaults are specified in the config.yaml file (in the ./quke/conf/ directory). + +

(back to top)

+ +### Specify models and embeddings +*Ensure to specify your Cohere API key before running.* + +As per the configuration files, the default LLM is Falcon and the default embedding uses HuggingFace embedding. + +To specify a different LLM - Cohere in this example - run the following: +```sh +poetry run quke embedding=huggingface llm=cohere question=eps +``` + + +

(back to top)

+ +### Experiments +*Ensure to specify your OpenAI API key before running.* + +The LLMs, embeddings, questions and other configurations can be captured in experiment config files. The command +```sh +poetry run quke +experiment=openai +``` +uses an experiment file openai.yaml (see folder ./config/experiments) which specifies the LLM, embedding and questions to be used. It is equivalent to running: +```sh +poetry run quke embedding=openai llm=gpt3-5 question=eps +``` +Multiple experiments can be run at once as follows: + +*Ensure to specify your Replicate API key before running.* +```sh +poetry run quke --multirun +experiment=openai,llama2 +``` + + +

(back to top)

+ +### Configuration +LLMs, embeddings, questions, experiments and other items are specified in a set of configuration files. These are saved in the ./config directory. + +The [Hydra][hydra-url] package is used for configuration management. Their website explains more about the configuration system in general. + +Four different models are specified (ChatGPT, LlaMa2, Falcon, and Cohere); using 4 different APIs (OpenAI, HuggingFace, Cohere and Replicate). + +Additional LLMs (or embeddings, questions) can be set up by adding new configuration files. + +

(back to top)

+ +### Search your own documents +The documents to be searched are stored in the ./docs/pdf directory. At present only pdf documents are considered. +Note to set `vectorstore_write_mode` to `append` or `overwrite` in the embedding configuration file (or delete the folder with the existing vector database, in the ./idata folder). + +

(back to top)

+ +### Limitations +The free tiers for the third party services generally come with fairly strict limitations. They differ between services; and may differ over time. + + To try out the tool with your own documents it is best to start with a single small source document, no more than two questions and only one combination of LLM/embedding. + +Error messages due to limitations of the APIs are not always clearly indicated as such. + +

(back to top)

+ +### Privacy +The tool uses third party APIs (OpenAI, HuggingFace, Cohere, Replicate). These process your source documents and your questions, to the extent that you provide these. They track your usage of their APIs. They may do other things; I do not know. + +The tool uses the [LangChain][langchain-url] Python package to interact with the third party services. I do not know if the package 'leaks' any of the data in any way. + +In general I do not know to what extent any of the data is encrypted during transmission. + +The tool shares no information with me. + +

(back to top)

+ + + +### Built With + +* [![Cohere][cohere.com]][cohere-url] +* [![HuggingFace][huggingface.com]][huggingface-url] +* [![OpenAI][openai.com]][openai-url] +* [![Replicate][replicate.com]][replicate-url] +

+* [![Hydra][hydra.com]][hydra-url] +* [![LangChain][langchain.com]][langchain-url] + +

(back to top)

+ + + + + + + + + + + + +## License + +Distributed under the MIT License. See `LICENSE.txt` for more information. + +

(back to top)

+ + + + +## Contact + + + +Project Link: [https://github.com/ejoosterop/quke](https://github.com/ejoosterop/quke) + +

(back to top)

+ + + + + + + + + +[contributors-shield]: https://img.shields.io/github/contributors/ejoosterop/quke.svg?style=for-the-badge +[contributors-url]: https://github.com/ejoosterop/quke/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/ejoosterop/quke.svg?style=for-the-badge +[forks-url]: https://github.com/ejoosterop/quke/network/members +[stars-shield]: https://img.shields.io/github/stars/ejoosterop/quke.svg?style=for-the-badge +[stars-url]: https://github.com/ejoosterop/quke/stargazers +[issues-shield]: https://img.shields.io/github/issues/ejoosterop/quke.svg?style=for-the-badge +[issues-url]: https://github.com/ejoosterop/quke/issues +[license-shield]: https://img.shields.io/github/license/ejoosterop/quke.svg?style=for-the-badge +[license-url]: https://github.com/ejoosterop/quke/blob/master/LICENSE.txt +[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 +[linkedin-url]: https://linkedin.com/in/erik-oosterop-9505a21 +[product-screenshot]: images/screenshot.png + + +[cohere-url]: https://cohere.com/ +[huggingface-url]: https://huggingface.co/ +[hydra-url]: https://hydra.cc/ +[langchain-url]: https://python.langchain.com/ +[openai-url]: https://openai.com/ +[poetry-url]: https://python-poetry.org/ +[replicate-url]: https://replicate.com/ +[.env-url]: https://pypi.org/project/python-dotenv/ + +[openai.com]: https://img.shields.io/badge/openai-412991?style=for-the-badge&logo=openai&logoColor=white + +[huggingface.com]: https://img.shields.io/badge/huggingface-yellow?style=for-the-badge&logo=huggingface&logoColor=white +[cohere.com]: https://img.shields.io/badge/Cohere-013220?style=for-the-badge&logo=cohere&logoColor=white +[replicate.com]: https://img.shields.io/badge/replicate-black?style=for-the-badge&logo=replicate&logoColor=white + +[hydra.com]: https://img.shields.io/badge/hydra-white?style=for-the-badge&logo=python&logoColor=black +[langchain.com]: https://img.shields.io/badge/langchain-white?style=for-the-badge&logo=python&logoColor=black \ No newline at end of file diff --git a/docs/pdf/CIBC_AIF_2022_ENG.pdf b/docs/pdf/CIBC_AIF_2022_ENG.pdf new file mode 100755 index 0000000000000000000000000000000000000000..61a0124f789186c97b89c982c0a9f14efab3e18a GIT binary patch literal 238520 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≦A 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%0ADc0rPK5^$hkjA?lWQ)|hVntj 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º~bFjGyR$zSEF$ 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%0DQnOxK(+oK%D^Jqy{bS-^YxYgu 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%0AV*pN?p^}6CsDu8z!yv@6 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 Wc8Om=M3kSO>=GNB988|<(*FYQ6o732 literal 0 HcmV?d00001 diff --git a/docs/pdf/test.txt b/docs/pdf/test.txt new file mode 100644 index 0000000..848a79f --- /dev/null +++ b/docs/pdf/test.txt @@ -0,0 +1 @@ +CIBC is a German Airline with a large exposure to Africa. It was founded in 2019. \ No newline at end of file diff --git a/experiments.md b/experiments.md new file mode 100644 index 0000000..1df445e --- /dev/null +++ b/experiments.md @@ -0,0 +1,78 @@ +# Base case, Falcon +embedding: hugginface +llm: falcon7b +question: eps + +Q: What is EPS according to the AIF? +Earnings per share (EPS) is a measure of a company's profitability. It is calculated by dividing the company's earnings by the number of outstanding shares of its common stock. The company's earnings can be found in its income statement. + +Q: What is CIBC? +CIBC was formed in 1875 by the merger of The Canadian Bank of Commerce and Imperial Bank of Canada. It is a leading Canadian financial institution with a presence in North America. It offers a wide range of financial services, including personal and business banking, wealth management, and investment services. + +# Cohere +embedding: hugginface +llm: cohere +question: eps + +Q: What is EPS according to the AIF? +EPS stands for earnings per share. It is a financial ratio that measures the profitability of a company. It is calculated by dividing the company's net income by the number of outstanding shares. + +In the AIF, EPS is referred to as reported diluted EPS and adjusted diluted EPS. Reported diluted EPS is the company's net income divided by the number of outstanding shares, including the impact of dilutive securities. Adjusted diluted EPS is the company's net income divided by the number of outstanding shares, excluding the impact of dilutive securities and certain items of note. + +The 3-year CAGR for reported and adjusted diluted EPS is 6.1% and 5.8%, respectively, and the 5-year CAGR is 3.5% and 4.9%, respectively. These rates represent the compound annual growth rate of the company's EPS over the past 3 and 5 years. + +Q: What is CIBC? +Yes, I would like to know more about CIBC. + +CIBC is a diversified financial institution governed by the Bank Act (Canada), which constitutes its charter. CIBC was formed through the amalgamation of The Canadian Bank of Commerce and Imperial Bank of Canada in 1961. The Canadian Bank of Commerce was originally incorporated as Bank of Canada by special act of the legislature of the Province of Canada in 1858. Subsequently, the name was changed to The Canadian Bank of Commerce and it opened for business under that name in 1867. Imperial Bank of Canada was incorporated in 1875 by special act of the Parliament of Canada and commenced operations in that year. The address of the registered and head office of CIBC is 81 Bay Street, CIBC SQUARE, Toronto, Ontario, Canada, M5J 0E7. + +Would you like to know more about the history of CIBC? + +# Cohere +embedding: openai +llm: cohere +question: eps + +Q: What is EPS according to the AIF? +EPS stands for earnings per share. It is a financial ratio that measures the profitability of a company. It is calculated by dividing the company's net income by the number of outstanding shares. + +In the AIF, EPS is used to evaluate the company's financial performance and to set targets for future growth. The company's 2022 target for EPS growth is 5%-10%, with a long-term target of 7% to 10%. + +It is important to note that EPS is just one of many financial ratios that can be used to evaluate a company's financial performance, and it should be considered in conjunction with other ratios and metrics to get a more comprehensive understanding of the company's financial health. + +Q: What is CIBC? +CIBC is a diversified financial institution governed by the Bank Act (Canada), which constitutes its charter. CIBC was formed through the amalgamation of The Canadian Bank of Commerce and Imperial Bank of Canada in 1961. The Canadian Bank of Commerce was originally incorporated as Bank of Canada by special act of the legislature of the Province of Canada in 1858. Subsequently, the name was changed to The Canadian Bank of Commerce and it opened for business under that name in 1867. Imperial Bank of Canada was incorporated in 1875 by special act of the Parliament of Canada and commenced operations in that year. The address of the registered and head office of CIBC is 81 Bay Street, CIBC SQUARE, Toronto, Ontario, Canada, M5J 0E7. + +# OpenAI +embedding: openai +llm: gpt3-5 +question: eps + +Q: What is EPS according to the AIF? +EPS stands for Earnings Per Share. According to the AIF, CIBC has set targets for adjusted average annual diluted earnings per share (EPS) and aims to deliver a compound annual growth rate (CAGR) of 7% to 10% through the cycle. The AIF also provides information on CIBC's reported and adjusted diluted EPS for the past three and five years. + +Q: What is CIBC? +CIBC (Canadian Imperial Bank of Commerce) is a diversified financial institution governed by the Bank Act (Canada), which constitutes its charter. It was formed through the amalgamation of The Canadian Bank of Commerce and Imperial Bank of Canada in 1961. CIBC is a leading North American financial institution that serves its clients through four main strategic business units: Canadian Personal and Business Banking, Canadian Commercial Banking and Wealth Management, U.S. Commercial Banking and Wealth Management, and Capital Markets. Information about CIBC's business lines and functional groups is provided in the 2022 Annual Report on pages 22 to 32. + +# OpenAI using HF embeddings +embedding: huggingface +llm: gpt3-5 +question: eps + +Q: What is EPS according to the AIF? +EPS stands for Earnings Per Share. It is a financial metric that represents the portion of a company's profit that is allocated to each outstanding share of common stock. The AIF provides both reported and adjusted diluted EPS figures for CIBC for the years 2018-2022. + +Q: What is CIBC? +CIBC (Canadian Imperial Bank of Commerce) is a leading North American financial institution. It was formed through the amalgamation of The Canadian Bank of Commerce and Imperial Bank of Canada in 1961. CIBC serves its clients through four main strategic business units: Canadian Personal and Business Banking, Canadian Commercial Banking and Wealth Management, U.S. Commercial Banking and Wealth Management, and Capital Markets. CIBC is governed by the Bank Act (Canada), which constitutes its charter. It is the fifth largest Canadian chartered bank in terms of market capitalization as of October 31, 2022. + + +# Llama2 +embedding: openai +llm: llama2 +question: eps + +Q: What is EPS according to the AIF? +EPS stands for "diluted earnings per share" and is a financial measure used to evaluate a company's profitability. According to the CIBC 2022 Annual Information Form (AIF), reported diluted EPS was $6.68 in 2022, compared to $6.96 in 2021, down 4%. Adjusted diluted EPS was $7.05 in 2022, compared to $7.23 in 2021, down 2%. The 3-year and 5-year CAGR for reported and adjusted diluted EPS were 6.1% and 5.8%, respectively. + +Q: What is CIBC? +CIBC stands for Canadian Imperial Bank of Commerce. It is a leading North American financial institution that provides a range of financial products and services to its clients through its four main strategic business units: Canadian Personal and Business Banking, Canadian Commercial Banking and Wealth Management, U.S. Commercial Banking and Wealth Management, and Capital Markets. CIBC is headquartered in Toronto, Ontario, Canada, and is governed by the Bank Act (Canada), which constitutes its charter. \ No newline at end of file diff --git a/license.txt b/license.txt new file mode 100755 index 0000000..640f145 --- /dev/null +++ b/license.txt @@ -0,0 +1,20 @@ +Copyright (c) 2012-2023 Erik Oosterop and others + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/media/llms.png b/media/llms.png new file mode 100755 index 0000000000000000000000000000000000000000..a66e21bf387a0429bf437e076396f14bf4e764b7 GIT binary patch literal 152713 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 literal 0 HcmV?d00001 diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 0000000..697f949 --- /dev/null +++ b/noxfile.py @@ -0,0 +1,48 @@ +# nox is installed outside of poetry. VS Code is using Poetry Python interpreter, +# which does not know nox. Hence, use the terminal to run nox. +# TODO: apply some of this: https://github.com/cjolowicz/hypermodern-python/blob/master/noxfile.py#L14 +# especially look at roughly line 51, flake/lint +import nox + + +# TODO: Is this an option: https://nox-poetry.readthedocs.io/en/stable/ +@nox.session +def flake(session): + session.install( + "flake8", + "flake8-docstrings", + "flake8-copyright", + "flake8-annotations", + "flake8-bandit", + "flake8-black", + "flake8-bugbear", + "flake8-import-order", + "darglint", + ) + session.run("flake8", "./quke/") + + +@nox.session +def black(session): + session.install("black") + session.run("black", "./quke/") + + +@nox.session +def ruff(session): + session.install("ruff") + session.run("ruff", "check", "./quke/", "./tests/", "pyproject.toml") + + +@nox.session +def test(session): + # Not certain this is a good approach. But it currently works. + # session.install("pytest") + + if session.posargs: + test_files = session.posargs + else: + test_files = [] + + session.run("pytest", *test_files) + # session.run("pytest") diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..be4d9af --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3064 @@ +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. + +[[package]] +name = "aiohttp" +version = "3.8.5" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a94159871304770da4dd371f4291b20cac04e8c94f11bdea1c3478e557fbe0d8"}, + {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:13bf85afc99ce6f9ee3567b04501f18f9f8dbbb2ea11ed1a2e079670403a7c84"}, + {file = "aiohttp-3.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ce2ac5708501afc4847221a521f7e4b245abf5178cf5ddae9d5b3856ddb2f3a"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96943e5dcc37a6529d18766597c491798b7eb7a61d48878611298afc1fca946c"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ad5c3c4590bb3cc28b4382f031f3783f25ec223557124c68754a2231d989e2b"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c413c633d0512df4dc7fd2373ec06cc6a815b7b6d6c2f208ada7e9e93a5061d"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df72ac063b97837a80d80dec8d54c241af059cc9bb42c4de68bd5b61ceb37caa"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c48c5c0271149cfe467c0ff8eb941279fd6e3f65c9a388c984e0e6cf57538e14"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:368a42363c4d70ab52c2c6420a57f190ed3dfaca6a1b19afda8165ee16416a82"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7607ec3ce4993464368505888af5beb446845a014bc676d349efec0e05085905"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0d21c684808288a98914e5aaf2a7c6a3179d4df11d249799c32d1808e79503b5"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:312fcfbacc7880a8da0ae8b6abc6cc7d752e9caa0051a53d217a650b25e9a691"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad093e823df03bb3fd37e7dec9d4670c34f9e24aeace76808fc20a507cace825"}, + {file = "aiohttp-3.8.5-cp310-cp310-win32.whl", hash = "sha256:33279701c04351a2914e1100b62b2a7fdb9a25995c4a104259f9a5ead7ed4802"}, + {file = "aiohttp-3.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:6e4a280e4b975a2e7745573e3fc9c9ba0d1194a3738ce1cbaa80626cc9b4f4df"}, + {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae871a964e1987a943d83d6709d20ec6103ca1eaf52f7e0d36ee1b5bebb8b9b9"}, + {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:461908b2578955045efde733719d62f2b649c404189a09a632d245b445c9c975"}, + {file = "aiohttp-3.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72a860c215e26192379f57cae5ab12b168b75db8271f111019509a1196dfc780"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc14be025665dba6202b6a71cfcdb53210cc498e50068bc088076624471f8bb9"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af740fc2711ad85f1a5c034a435782fbd5b5f8314c9a3ef071424a8158d7f6b"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:841cd8233cbd2111a0ef0a522ce016357c5e3aff8a8ce92bcfa14cef890d698f"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed1c46fb119f1b59304b5ec89f834f07124cd23ae5b74288e364477641060ff"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84f8ae3e09a34f35c18fa57f015cc394bd1389bce02503fb30c394d04ee6b938"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62360cb771707cb70a6fd114b9871d20d7dd2163a0feafe43fd115cfe4fe845e"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23fb25a9f0a1ca1f24c0a371523546366bb642397c94ab45ad3aedf2941cec6a"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0ba0d15164eae3d878260d4c4df859bbdc6466e9e6689c344a13334f988bb53"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5d20003b635fc6ae3f96d7260281dfaf1894fc3aa24d1888a9b2628e97c241e5"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0175d745d9e85c40dcc51c8f88c74bfbaef9e7afeeeb9d03c37977270303064c"}, + {file = "aiohttp-3.8.5-cp311-cp311-win32.whl", hash = "sha256:2e1b1e51b0774408f091d268648e3d57f7260c1682e7d3a63cb00d22d71bb945"}, + {file = "aiohttp-3.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:043d2299f6dfdc92f0ac5e995dfc56668e1587cea7f9aa9d8a78a1b6554e5755"}, + {file = "aiohttp-3.8.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cae533195e8122584ec87531d6df000ad07737eaa3c81209e85c928854d2195c"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f21e83f355643c345177a5d1d8079f9f28b5133bcd154193b799d380331d5d3"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a75ef35f2df54ad55dbf4b73fe1da96f370e51b10c91f08b19603c64004acc"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e2e9839e14dd5308ee773c97115f1e0a1cb1d75cbeeee9f33824fa5144c7634"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44e65da1de4403d0576473e2344828ef9c4c6244d65cf4b75549bb46d40b8dd"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d847e4cde6ecc19125ccbc9bfac4a7ab37c234dd88fbb3c5c524e8e14da543"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:c7a815258e5895d8900aec4454f38dca9aed71085f227537208057853f9d13f2"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:8b929b9bd7cd7c3939f8bcfffa92fae7480bd1aa425279d51a89327d600c704d"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:5db3a5b833764280ed7618393832e0853e40f3d3e9aa128ac0ba0f8278d08649"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:a0215ce6041d501f3155dc219712bc41252d0ab76474615b9700d63d4d9292af"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fd1ed388ea7fbed22c4968dd64bab0198de60750a25fe8c0c9d4bef5abe13824"}, + {file = "aiohttp-3.8.5-cp36-cp36m-win32.whl", hash = "sha256:6e6783bcc45f397fdebc118d772103d751b54cddf5b60fbcc958382d7dd64f3e"}, + {file = "aiohttp-3.8.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b5411d82cddd212644cf9360879eb5080f0d5f7d809d03262c50dad02f01421a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:01d4c0c874aa4ddfb8098e85d10b5e875a70adc63db91f1ae65a4b04d3344cda"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5980a746d547a6ba173fd5ee85ce9077e72d118758db05d229044b469d9029a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a482e6da906d5e6e653be079b29bc173a48e381600161c9932d89dfae5942ef"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80bd372b8d0715c66c974cf57fe363621a02f359f1ec81cba97366948c7fc873"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1161b345c0a444ebcf46bf0a740ba5dcf50612fd3d0528883fdc0eff578006a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd56db019015b6acfaaf92e1ac40eb8434847d9bf88b4be4efe5bfd260aee692"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:153c2549f6c004d2754cc60603d4668899c9895b8a89397444a9c4efa282aaf4"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4a01951fabc4ce26ab791da5f3f24dca6d9a6f24121746eb19756416ff2d881b"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bfb9162dcf01f615462b995a516ba03e769de0789de1cadc0f916265c257e5d8"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7dde0009408969a43b04c16cbbe252c4f5ef4574ac226bc8815cd7342d2028b6"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4149d34c32f9638f38f544b3977a4c24052042affa895352d3636fa8bffd030a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-win32.whl", hash = "sha256:68c5a82c8779bdfc6367c967a4a1b2aa52cd3595388bf5961a62158ee8a59e22"}, + {file = "aiohttp-3.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2cf57fb50be5f52bda004b8893e63b48530ed9f0d6c96c84620dc92fe3cd9b9d"}, + {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:eca4bf3734c541dc4f374ad6010a68ff6c6748f00451707f39857f429ca36ced"}, + {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1274477e4c71ce8cfe6c1ec2f806d57c015ebf84d83373676036e256bc55d690"}, + {file = "aiohttp-3.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28c543e54710d6158fc6f439296c7865b29e0b616629767e685a7185fab4a6b9"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:910bec0c49637d213f5d9877105d26e0c4a4de2f8b1b29405ff37e9fc0ad52b8"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5443910d662db951b2e58eb70b0fbe6b6e2ae613477129a5805d0b66c54b6cb7"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e460be6978fc24e3df83193dc0cc4de46c9909ed92dd47d349a452ef49325b7"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1558def481d84f03b45888473fc5a1f35747b5f334ef4e7a571bc0dfcb11f8"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34dd0c107799dcbbf7d48b53be761a013c0adf5571bf50c4ecad5643fe9cfcd0"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aa1990247f02a54185dc0dff92a6904521172a22664c863a03ff64c42f9b5410"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0e584a10f204a617d71d359fe383406305a4b595b333721fa50b867b4a0a1548"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a3cf433f127efa43fee6b90ea4c6edf6c4a17109d1d037d1a52abec84d8f2e42"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c11f5b099adafb18e65c2c997d57108b5bbeaa9eeee64a84302c0978b1ec948b"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:84de26ddf621d7ac4c975dbea4c945860e08cccde492269db4e1538a6a6f3c35"}, + {file = "aiohttp-3.8.5-cp38-cp38-win32.whl", hash = "sha256:ab88bafedc57dd0aab55fa728ea10c1911f7e4d8b43e1d838a1739f33712921c"}, + {file = "aiohttp-3.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:5798a9aad1879f626589f3df0f8b79b3608a92e9beab10e5fda02c8a2c60db2e"}, + {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a6ce61195c6a19c785df04e71a4537e29eaa2c50fe745b732aa937c0c77169f3"}, + {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:773dd01706d4db536335fcfae6ea2440a70ceb03dd3e7378f3e815b03c97ab51"}, + {file = "aiohttp-3.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f83a552443a526ea38d064588613aca983d0ee0038801bc93c0c916428310c28"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f7372f7341fcc16f57b2caded43e81ddd18df53320b6f9f042acad41f8e049a"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea353162f249c8097ea63c2169dd1aa55de1e8fecbe63412a9bc50816e87b761"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d47ae48db0b2dcf70bc8a3bc72b3de86e2a590fc299fdbbb15af320d2659de"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d827176898a2b0b09694fbd1088c7a31836d1a505c243811c87ae53a3f6273c1"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3562b06567c06439d8b447037bb655ef69786c590b1de86c7ab81efe1c9c15d8"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e874cbf8caf8959d2adf572a78bba17cb0e9d7e51bb83d86a3697b686a0ab4d"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6809a00deaf3810e38c628e9a33271892f815b853605a936e2e9e5129762356c"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:33776e945d89b29251b33a7e7d006ce86447b2cfd66db5e5ded4e5cd0340585c"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eaeed7abfb5d64c539e2db173f63631455f1196c37d9d8d873fc316470dfbacd"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e91d635961bec2d8f19dfeb41a539eb94bd073f075ca6dae6c8dc0ee89ad6f91"}, + {file = "aiohttp-3.8.5-cp39-cp39-win32.whl", hash = "sha256:00ad4b6f185ec67f3e6562e8a1d2b69660be43070bd0ef6fcec5211154c7df67"}, + {file = "aiohttp-3.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:c0a9034379a37ae42dea7ac1e048352d96286626251862e448933c0f59cbd79c"}, + {file = "aiohttp-3.8.5.tar.gz", hash = "sha256:b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"}, +] + +[package.dependencies] +aiosignal = ">=1.1.2" +async-timeout = ">=4.0.0a3,<5.0" +attrs = ">=17.3.0" +charset-normalizer = ">=2.0,<4.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +yarl = ">=1.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns", "cchardet"] + +[[package]] +name = "aiosignal" +version = "1.3.1" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, + {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +description = "ANTLR 4.9.3 runtime for Python 3.7" +optional = false +python-versions = "*" +files = [ + {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, +] + +[[package]] +name = "anyio" +version = "3.7.1" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, + {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] +test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (<0.22)"] + +[[package]] +name = "async-timeout" +version = "4.0.2" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.6" +files = [ + {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, + {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, +] + +[[package]] +name = "attrs" +version = "23.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, + {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[docs,tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] + +[[package]] +name = "backoff" +version = "2.2.1" +description = "Function decoration for backoff and retry" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, + {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.2" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "brotli" +version = "1.0.9" +description = "Python bindings for the Brotli compression library" +optional = false +python-versions = "*" +files = [ + {file = "Brotli-1.0.9-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:268fe94547ba25b58ebc724680609c8ee3e5a843202e9a381f6f9c5e8bdb5c70"}, + {file = "Brotli-1.0.9-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:c2415d9d082152460f2bd4e382a1e85aed233abc92db5a3880da2257dc7daf7b"}, + {file = "Brotli-1.0.9-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5913a1177fc36e30fcf6dc868ce23b0453952c78c04c266d3149b3d39e1410d6"}, + {file = "Brotli-1.0.9-cp27-cp27m-win32.whl", hash = "sha256:afde17ae04d90fbe53afb628f7f2d4ca022797aa093e809de5c3cf276f61bbfa"}, + {file = "Brotli-1.0.9-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7cb81373984cc0e4682f31bc3d6be9026006d96eecd07ea49aafb06897746452"}, + {file = "Brotli-1.0.9-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:db844eb158a87ccab83e868a762ea8024ae27337fc7ddcbfcddd157f841fdfe7"}, + {file = "Brotli-1.0.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9744a863b489c79a73aba014df554b0e7a0fc44ef3f8a0ef2a52919c7d155031"}, + {file = "Brotli-1.0.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a72661af47119a80d82fa583b554095308d6a4c356b2a554fdc2799bc19f2a43"}, + {file = "Brotli-1.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ee83d3e3a024a9618e5be64648d6d11c37047ac48adff25f12fa4226cf23d1c"}, + {file = "Brotli-1.0.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:19598ecddd8a212aedb1ffa15763dd52a388518c4550e615aed88dc3753c0f0c"}, + {file = "Brotli-1.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:44bb8ff420c1d19d91d79d8c3574b8954288bdff0273bf788954064d260d7ab0"}, + {file = "Brotli-1.0.9-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e23281b9a08ec338469268f98f194658abfb13658ee98e2b7f85ee9dd06caa91"}, + {file = "Brotli-1.0.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3496fc835370da351d37cada4cf744039616a6db7d13c430035e901443a34daa"}, + {file = "Brotli-1.0.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83bb06a0192cccf1eb8d0a28672a1b79c74c3a8a5f2619625aeb6f28b3a82bb"}, + {file = "Brotli-1.0.9-cp310-cp310-win32.whl", hash = "sha256:26d168aac4aaec9a4394221240e8a5436b5634adc3cd1cdf637f6645cecbf181"}, + {file = "Brotli-1.0.9-cp310-cp310-win_amd64.whl", hash = "sha256:622a231b08899c864eb87e85f81c75e7b9ce05b001e59bbfbf43d4a71f5f32b2"}, + {file = "Brotli-1.0.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cc0283a406774f465fb45ec7efb66857c09ffefbe49ec20b7882eff6d3c86d3a"}, + {file = "Brotli-1.0.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:11d3283d89af7033236fa4e73ec2cbe743d4f6a81d41bd234f24bf63dde979df"}, + {file = "Brotli-1.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c1306004d49b84bd0c4f90457c6f57ad109f5cc6067a9664e12b7b79a9948ad"}, + {file = "Brotli-1.0.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1375b5d17d6145c798661b67e4ae9d5496920d9265e2f00f1c2c0b5ae91fbde"}, + {file = "Brotli-1.0.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cab1b5964b39607a66adbba01f1c12df2e55ac36c81ec6ed44f2fca44178bf1a"}, + {file = "Brotli-1.0.9-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ed6a5b3d23ecc00ea02e1ed8e0ff9a08f4fc87a1f58a2530e71c0f48adf882f"}, + {file = "Brotli-1.0.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cb02ed34557afde2d2da68194d12f5719ee96cfb2eacc886352cb73e3808fc5d"}, + {file = "Brotli-1.0.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b3523f51818e8f16599613edddb1ff924eeb4b53ab7e7197f85cbc321cdca32f"}, + {file = "Brotli-1.0.9-cp311-cp311-win32.whl", hash = "sha256:ba72d37e2a924717990f4d7482e8ac88e2ef43fb95491eb6e0d124d77d2a150d"}, + {file = "Brotli-1.0.9-cp311-cp311-win_amd64.whl", hash = "sha256:3ffaadcaeafe9d30a7e4e1e97ad727e4f5610b9fa2f7551998471e3736738679"}, + {file = "Brotli-1.0.9-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:c83aa123d56f2e060644427a882a36b3c12db93727ad7a7b9efd7d7f3e9cc2c4"}, + {file = "Brotli-1.0.9-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:6b2ae9f5f67f89aade1fab0f7fd8f2832501311c363a21579d02defa844d9296"}, + {file = "Brotli-1.0.9-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:68715970f16b6e92c574c30747c95cf8cf62804569647386ff032195dc89a430"}, + {file = "Brotli-1.0.9-cp35-cp35m-win32.whl", hash = "sha256:defed7ea5f218a9f2336301e6fd379f55c655bea65ba2476346340a0ce6f74a1"}, + {file = "Brotli-1.0.9-cp35-cp35m-win_amd64.whl", hash = "sha256:88c63a1b55f352b02c6ffd24b15ead9fc0e8bf781dbe070213039324922a2eea"}, + {file = "Brotli-1.0.9-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:503fa6af7da9f4b5780bb7e4cbe0c639b010f12be85d02c99452825dd0feef3f"}, + {file = "Brotli-1.0.9-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:40d15c79f42e0a2c72892bf407979febd9cf91f36f495ffb333d1d04cebb34e4"}, + {file = "Brotli-1.0.9-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:93130612b837103e15ac3f9cbacb4613f9e348b58b3aad53721d92e57f96d46a"}, + {file = "Brotli-1.0.9-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87fdccbb6bb589095f413b1e05734ba492c962b4a45a13ff3408fa44ffe6479b"}, + {file = "Brotli-1.0.9-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:6d847b14f7ea89f6ad3c9e3901d1bc4835f6b390a9c71df999b0162d9bb1e20f"}, + {file = "Brotli-1.0.9-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:495ba7e49c2db22b046a53b469bbecea802efce200dffb69b93dd47397edc9b6"}, + {file = "Brotli-1.0.9-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:4688c1e42968ba52e57d8670ad2306fe92e0169c6f3af0089be75bbac0c64a3b"}, + {file = "Brotli-1.0.9-cp36-cp36m-win32.whl", hash = "sha256:61a7ee1f13ab913897dac7da44a73c6d44d48a4adff42a5701e3239791c96e14"}, + {file = "Brotli-1.0.9-cp36-cp36m-win_amd64.whl", hash = "sha256:1c48472a6ba3b113452355b9af0a60da5c2ae60477f8feda8346f8fd48e3e87c"}, + {file = "Brotli-1.0.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b78a24b5fd13c03ee2b7b86290ed20efdc95da75a3557cc06811764d5ad1126"}, + {file = "Brotli-1.0.9-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:9d12cf2851759b8de8ca5fde36a59c08210a97ffca0eb94c532ce7b17c6a3d1d"}, + {file = "Brotli-1.0.9-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:6c772d6c0a79ac0f414a9f8947cc407e119b8598de7621f39cacadae3cf57d12"}, + {file = "Brotli-1.0.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29d1d350178e5225397e28ea1b7aca3648fcbab546d20e7475805437bfb0a130"}, + {file = "Brotli-1.0.9-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7bbff90b63328013e1e8cb50650ae0b9bac54ffb4be6104378490193cd60f85a"}, + {file = "Brotli-1.0.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ec1947eabbaf8e0531e8e899fc1d9876c179fc518989461f5d24e2223395a9e3"}, + {file = "Brotli-1.0.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12effe280b8ebfd389022aa65114e30407540ccb89b177d3fbc9a4f177c4bd5d"}, + {file = "Brotli-1.0.9-cp37-cp37m-win32.whl", hash = "sha256:f909bbbc433048b499cb9db9e713b5d8d949e8c109a2a548502fb9aa8630f0b1"}, + {file = "Brotli-1.0.9-cp37-cp37m-win_amd64.whl", hash = "sha256:97f715cf371b16ac88b8c19da00029804e20e25f30d80203417255d239f228b5"}, + {file = "Brotli-1.0.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e16eb9541f3dd1a3e92b89005e37b1257b157b7256df0e36bd7b33b50be73bcb"}, + {file = "Brotli-1.0.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:160c78292e98d21e73a4cc7f76a234390e516afcd982fa17e1422f7c6a9ce9c8"}, + {file = "Brotli-1.0.9-cp38-cp38-manylinux1_i686.whl", hash = "sha256:b663f1e02de5d0573610756398e44c130add0eb9a3fc912a09665332942a2efb"}, + {file = "Brotli-1.0.9-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5b6ef7d9f9c38292df3690fe3e302b5b530999fa90014853dcd0d6902fb59f26"}, + {file = "Brotli-1.0.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a674ac10e0a87b683f4fa2b6fa41090edfd686a6524bd8dedbd6138b309175c"}, + {file = "Brotli-1.0.9-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e2d9e1cbc1b25e22000328702b014227737756f4b5bf5c485ac1d8091ada078b"}, + {file = "Brotli-1.0.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b336c5e9cf03c7be40c47b5fd694c43c9f1358a80ba384a21969e0b4e66a9b17"}, + {file = "Brotli-1.0.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:85f7912459c67eaab2fb854ed2bc1cc25772b300545fe7ed2dc03954da638649"}, + {file = "Brotli-1.0.9-cp38-cp38-win32.whl", hash = "sha256:35a3edbe18e876e596553c4007a087f8bcfd538f19bc116917b3c7522fca0429"}, + {file = "Brotli-1.0.9-cp38-cp38-win_amd64.whl", hash = "sha256:269a5743a393c65db46a7bb982644c67ecba4b8d91b392403ad8a861ba6f495f"}, + {file = "Brotli-1.0.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2aad0e0baa04517741c9bb5b07586c642302e5fb3e75319cb62087bd0995ab19"}, + {file = "Brotli-1.0.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5cb1e18167792d7d21e21365d7650b72d5081ed476123ff7b8cac7f45189c0c7"}, + {file = "Brotli-1.0.9-cp39-cp39-manylinux1_i686.whl", hash = "sha256:16d528a45c2e1909c2798f27f7bf0a3feec1dc9e50948e738b961618e38b6a7b"}, + {file = "Brotli-1.0.9-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:56d027eace784738457437df7331965473f2c0da2c70e1a1f6fdbae5402e0389"}, + {file = "Brotli-1.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bf919756d25e4114ace16a8ce91eb340eb57a08e2c6950c3cebcbe3dff2a5e7"}, + {file = "Brotli-1.0.9-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e4c4e92c14a57c9bd4cb4be678c25369bf7a092d55fd0866f759e425b9660806"}, + {file = "Brotli-1.0.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e48f4234f2469ed012a98f4b7874e7f7e173c167bed4934912a29e03167cf6b1"}, + {file = "Brotli-1.0.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9ed4c92a0665002ff8ea852353aeb60d9141eb04109e88928026d3c8a9e5433c"}, + {file = "Brotli-1.0.9-cp39-cp39-win32.whl", hash = "sha256:cfc391f4429ee0a9370aa93d812a52e1fee0f37a81861f4fdd1f4fb28e8547c3"}, + {file = "Brotli-1.0.9-cp39-cp39-win_amd64.whl", hash = "sha256:854c33dad5ba0fbd6ab69185fec8dab89e13cda6b7d191ba111987df74f38761"}, + {file = "Brotli-1.0.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9749a124280a0ada4187a6cfd1ffd35c350fb3af79c706589d98e088c5044267"}, + {file = "Brotli-1.0.9-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:73fd30d4ce0ea48010564ccee1a26bfe39323fde05cb34b5863455629db61dc7"}, + {file = "Brotli-1.0.9-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02177603aaca36e1fd21b091cb742bb3b305a569e2402f1ca38af471777fb019"}, + {file = "Brotli-1.0.9-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:76ffebb907bec09ff511bb3acc077695e2c32bc2142819491579a695f77ffd4d"}, + {file = "Brotli-1.0.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b43775532a5904bc938f9c15b77c613cb6ad6fb30990f3b0afaea82797a402d8"}, + {file = "Brotli-1.0.9-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5bf37a08493232fbb0f8229f1824b366c2fc1d02d64e7e918af40acd15f3e337"}, + {file = "Brotli-1.0.9-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:330e3f10cd01da535c70d09c4283ba2df5fb78e915bea0a28becad6e2ac010be"}, + {file = "Brotli-1.0.9-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e1abbeef02962596548382e393f56e4c94acd286bd0c5afba756cffc33670e8a"}, + {file = "Brotli-1.0.9-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3148362937217b7072cf80a2dcc007f09bb5ecb96dae4617316638194113d5be"}, + {file = "Brotli-1.0.9-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:336b40348269f9b91268378de5ff44dc6fbaa2268194f85177b53463d313842a"}, + {file = "Brotli-1.0.9-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b8b09a16a1950b9ef495a0f8b9d0a87599a9d1f179e2d4ac014b2ec831f87e7"}, + {file = "Brotli-1.0.9-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c8e521a0ce7cf690ca84b8cc2272ddaf9d8a50294fd086da67e517439614c755"}, + {file = "Brotli-1.0.9.zip", hash = "sha256:4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438"}, +] + +[[package]] +name = "brotlicffi" +version = "1.0.9.2" +description = "Python CFFI bindings to the Brotli library" +optional = false +python-versions = "*" +files = [ + {file = "brotlicffi-1.0.9.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:408ec4359f9763280d5c4e0ad29c51d1240b25fdd18719067e972163b4125b98"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2e4629f7690ded66c8818715c6d4dd6a7ff6a4f10fad6186fe99850f781ce210"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:137c4635edcdf593de5ce9d0daa596bf499591b16b8fca5fd72a490deb54b2ee"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:af8a1b7bcfccf9c41a3c8654994d6a81821fdfe4caddcfe5045bfda936546ca3"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9078432af4785f35ab3840587eed7fb131e3fc77eb2a739282b649b343c584dd"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7bb913d5bf3b4ce2ec59872711dc9faaff5f320c3c3827cada2d8a7b793a7753"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:16a0c9392a1059e2e62839fbd037d2e7e03c8ae5da65e9746f582464f7fab1bb"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:94d2810efc5723f1447b332223b197466190518a3eeca93b9f357efb5b22c6dc"}, + {file = "brotlicffi-1.0.9.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9e70f3e20f317d70912b10dbec48b29114d3dbd0e9d88475cb328e6c086f0546"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:586f0ea3c2eed455d5f2330b9ab4a591514c8de0ee53d445645efcfbf053c69f"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-manylinux1_i686.whl", hash = "sha256:4454c3baedc277fd6e65f983e3eb8e77f4bc15060f69370a0201746e2edeca81"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:52c1c12dad6eb1d44213a0a76acf5f18f64653bd801300bef5e2f983405bdde5"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-manylinux2010_i686.whl", hash = "sha256:21cd400d24b344c218d8e32b394849e31b7c15784667575dbda9f65c46a64b0a"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:71061f8bc86335b652e442260c4367b782a92c6e295cf5a10eff84c7d19d8cf5"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:15e0db52c56056be6310fc116b3d7c6f34185594e261f23790b2fb6489998363"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-win32.whl", hash = "sha256:551305703d12a2dd1ae43d3dde35dee20b1cb49b5796279d4d34e2c6aec6be4d"}, + {file = "brotlicffi-1.0.9.2-cp35-abi3-win_amd64.whl", hash = "sha256:2be4fb8a7cb482f226af686cd06d2a2cab164ccdf99e460f8e3a5ec9a5337da2"}, + {file = "brotlicffi-1.0.9.2-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:8e7221d8a084d32d15c7b58e0ce0573972375c5038423dbe83f217cfe512e680"}, + {file = "brotlicffi-1.0.9.2-pp27-pypy_73-manylinux1_x86_64.whl", hash = "sha256:75a46bc5ed2753e1648cc211dcb2c1ac66116038766822dc104023f67ff4dfd8"}, + {file = "brotlicffi-1.0.9.2-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:1e27c43ef72a278f9739b12b2df80ee72048cd4cbe498f8bbe08aaaa67a5d5c8"}, + {file = "brotlicffi-1.0.9.2-pp27-pypy_73-win32.whl", hash = "sha256:feb942814285bdc5e97efc77a04e48283c17dfab9ea082d79c0a7b9e53ef1eab"}, + {file = "brotlicffi-1.0.9.2-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a6208d82c3172eeeb3be83ed4efd5831552c7cd47576468e50fcf0fb23fcf97f"}, + {file = "brotlicffi-1.0.9.2-pp36-pypy36_pp73-manylinux1_x86_64.whl", hash = "sha256:408c810c599786fb806556ff17e844a903884e6370ca400bcec7fa286149f39c"}, + {file = "brotlicffi-1.0.9.2-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:a73099858ee343e8801710a08be8d194f47715ff21e98d92a19ac461058f52d1"}, + {file = "brotlicffi-1.0.9.2-pp36-pypy36_pp73-win32.whl", hash = "sha256:916b790f967a18a595e61f218c252f83718ac91f24157d622cf0fa710cd26ab7"}, + {file = "brotlicffi-1.0.9.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba4a00263af40e875ec3d6c7f623cbf8c795b55705da18c64ec36b6bf0848bc5"}, + {file = "brotlicffi-1.0.9.2-pp37-pypy37_pp73-manylinux1_x86_64.whl", hash = "sha256:df78aa47741122b0d5463f1208b7bb18bc9706dee5152d9f56e0ead4865015cd"}, + {file = "brotlicffi-1.0.9.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:9030cd5099252d16bfa4e22659c84a89c102e94f8e81d30764788b72e2d7cfb7"}, + {file = "brotlicffi-1.0.9.2-pp37-pypy37_pp73-win32.whl", hash = "sha256:7e72978f4090a161885b114f87b784f538dcb77dafc6602592c1cf39ae8d243d"}, + {file = "brotlicffi-1.0.9.2.tar.gz", hash = "sha256:0c248a68129d8fc6a217767406c731e498c3e19a7be05ea0a90c3c86637b7d96"}, +] + +[package.dependencies] +cffi = ">=1.0.0" + +[[package]] +name = "bs4" +version = "0.0.1" +description = "Dummy package for Beautiful Soup" +optional = false +python-versions = "*" +files = [ + {file = "bs4-0.0.1.tar.gz", hash = "sha256:36ecea1fd7cc5c0c6e4a1ff075df26d50da647b75376626cc186e2212886dd3a"}, +] + +[package.dependencies] +beautifulsoup4 = "*" + +[[package]] +name = "certifi" +version = "2023.5.7" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, + {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, +] + +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = "*" +files = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.2.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, + {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, +] + +[[package]] +name = "chromadb" +version = "0.3.29" +description = "Chroma." +optional = false +python-versions = ">=3.7" +files = [ + {file = "chromadb-0.3.29-py3-none-any.whl", hash = "sha256:d681a3e4f3284715dd146774be84cad3d2f8c529bd004ba249e1d3deb70ac68e"}, + {file = "chromadb-0.3.29.tar.gz", hash = "sha256:29d47835da494fc1b58da40abb1435689d4ba1c93df6c64664a5d91521cb80e9"}, +] + +[package.dependencies] +clickhouse-connect = ">=0.5.7" +duckdb = ">=0.7.1" +fastapi = "0.85.1" +hnswlib = ">=0.7" +numpy = ">=1.21.6" +onnxruntime = ">=1.14.1" +overrides = ">=7.3.1" +pandas = ">=1.3" +posthog = ">=2.4.0" +pulsar-client = ">=3.1.0" +pydantic = ">=1.9,<2.0" +requests = ">=2.28" +tokenizers = ">=0.13.2" +tqdm = ">=4.65.0" +typing-extensions = ">=4.5.0" +uvicorn = {version = ">=0.18.3", extras = ["standard"]} + +[[package]] +name = "click" +version = "8.1.6" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.6-py3-none-any.whl", hash = "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"}, + {file = "click-8.1.6.tar.gz", hash = "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "clickhouse-connect" +version = "0.6.8" +description = "ClickHouse Database Core Driver for Python, Pandas, and Superset" +optional = false +python-versions = "~=3.7" +files = [ + {file = "clickhouse-connect-0.6.8.tar.gz", hash = "sha256:a8729f4f100f891d058944342d9a0838f4a51bd91504af6b6af106a01aa08426"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8155c2a976d2de82a3df526dc980b77a07e815353f67e9bf49c15e09faa8b620"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:068244b05ea155a6cf6a6b4379b39c078f70659480366a152161f3235444dd4e"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4f3d53a3c49002c57590abd17e616374559f3fa4c96d1aaf9500aef7655879a"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e28e4e0e70433c3339a945d73c219f58fcf7b58481ff6f3077da0ae20a295d0"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:783cf21680c37b1fc2e48859ae4ba7cab8d648d36d466d936645e2a27ffb2050"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:97844fd19faacf135c56c43d3f1b8493840c9e283931ba0773931a9505b62da4"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:286c97ff8dd0a32cde48fe1b7024b483bf900038620441a019647f25c1928c0c"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:49ee463569d6f9f92e2ed83ab843e139d07ae87fb477956cd7659c1458ac2360"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-win32.whl", hash = "sha256:a0ed55deccdae2d9b2ce545b0c1b554389bb89f03dc4afd7ee0cc0ddb26acb22"}, + {file = "clickhouse_connect-0.6.8-cp310-cp310-win_amd64.whl", hash = "sha256:4bf40ea3d41d75421e2f489894e14b7a5cd2bf4000bbb927364e4b43066d2595"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5646f7eee3609da6277d2dc8ccb4be16959b5e4959bb408eb52eed628b4e29f2"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8b2c9be52670222231e3b7284267121568ab15fb6d48f163695fa26c5ebaf193"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:675f02e3fb586172da9d7231d0c10a10c47b8063b0f43fce04719d03584ac55e"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a48301444f5f0931a51ec9c0b8b7458a4ba6ddb9128c352102bbe869c96a3ba0"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03233693f9d2a38bd781786a8b6a435df9e2c2d85d1a6f84bcc21ecd32c87b84"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c6b136213d042262a2257ba2db3a9a091c465a2535311172be0e87f0c66653b5"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c96c69570d17b83b45c9e14fd1a92be4d180b3accb52539d1333ff4bff4d1f7b"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:86fc223b2e84c7eb7d4e6082f81a1304164c32112db9a8e41720b1077d53e206"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-win32.whl", hash = "sha256:529a35e03069b4d31b1624506021e804c26907ae1faa2753678590414681c37f"}, + {file = "clickhouse_connect-0.6.8-cp311-cp311-win_amd64.whl", hash = "sha256:4f7d84456939eec83d0670050ed00c84ef11ff6f1d15e1151d9cfbed4094218c"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4eeb30c4a5a2e404eece76891baa4554ee85cc34e17d9714f8da79df4c162abe"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:610f4946495acf1fc465e882e006c8076344cbdd0b0f34a10b113c9a2adc49fb"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc87597bc68e0d9b8cb322e47e427423565e9a774de0fe080611001d7cd1f657"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0672dcf6c75aeea7a20104538dcaecc4a10915b83e1eb2f0bafa2922368b7e8c"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:190b2b7de1b15506dd5c7c34df403bd5cde94dc4c98f082ab6f1453475af5efc"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a1ba4dbd0ce87a6e430b834e6790f00c21a9a5a49587b834ee94e93c42a83891"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:fcca53c9b186c5d18ccbeb3e90bb58e6c7777c7eb22ea5166da2f83661b595a7"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-win32.whl", hash = "sha256:07350c635ddbd21cc4680401680436a360f6182e3fa2b8b9da6cecd2104acd28"}, + {file = "clickhouse_connect-0.6.8-cp37-cp37m-win_amd64.whl", hash = "sha256:4ec1e5f4cb1e276f6f885695466ec53664cb6d6749c4f214778f746cd4c169c4"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e195d7cbb0305df40fce6d3b16d556c2eccc166807d19f49b76730ad6cab9ac6"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1fe67217d369e30c446d7998186d6bedfab0ef6ad41c63bc4a65cd5c16b11e7c"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05bd58f417a98061e4d4dff2238a1d0b80f0c1c54e489cfb37b6ac0f55a5117d"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715acb48161687cf860b6244d064646d90069d9ed6705d4e71c07ee54a98ede1"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c05c2fefb326c49d798f1adce99a30fc25804311c0adbb6537a08bd7b9fb4a6"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ba6335faec2a0525d14bc5dfc8268924878d5219831acd51ca88ef69b9d4186f"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d3122339282e41dc863c1d2ad6f812424aba9023a5733cfe5e801b02b36e2596"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:397f803dfe502329be9ac209ac55a7229ee6bd81d0e9291faf77ae4c86f1d99c"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-win32.whl", hash = "sha256:0136a99842694219c3b1dbb3f6baf0866112b7ffa6a5c9109fef1b891a788467"}, + {file = "clickhouse_connect-0.6.8-cp38-cp38-win_amd64.whl", hash = "sha256:4340e4d62119ea56c2cbd15673813fe99be8c9de1af96e593ca3b42113a9ae4f"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:64c9f52ce8eec80ab6958702ea910904723e228dc26a63be89b621aa7af80aec"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5169c22b0765ef52d7498108df0f9158da05c35342fc60ba3c6527d9fe6d15f3"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f324a827c6c3c56a651dd5f2c33cdd74c6cea16e4237cb2638a89aefc9bccb"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91e9f9ddb8adeaa6996cd3aa97cbb72b5cc69769d59419cf3a65f5d654af1e92"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09f83ceef6ced6a9a44a3e74c0904cfc5c5f25e563cabc46b922051f4b1e0bf8"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6fae23b60e1653efa03abd850b3b36fdf5c930b5b37a7f70ced2a1f164a11f51"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4203aa258cd396716d3acdebfa405f849dae83e162dad22b3ce326e54e4cfa92"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bf094318639675d02068dbb93299507694c0f4d66dcb530084044a877e547c83"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-win32.whl", hash = "sha256:28d4022ac7db92a2c405a55e6bfffdfd9afdda2075c5a906ac1ea42d24e95e8d"}, + {file = "clickhouse_connect-0.6.8-cp39-cp39-win_amd64.whl", hash = "sha256:5754e2b12645ab18d4afde101391beb019685b0d0c1b5717733ba8d91fc942cf"}, + {file = "clickhouse_connect-0.6.8-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:160fb485ce6c280c7e30fbc8a2a33e6ecb663e24db43242ad555901e363ef613"}, + {file = "clickhouse_connect-0.6.8-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f660664341ab6f93f61d7245e3983f41fc7bf06520ce44088431d5e48713a8e1"}, + {file = "clickhouse_connect-0.6.8-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99f66263e8014c6c1ba657cfe408c39c9f178c257d159158c7f4a12f4379312a"}, + {file = "clickhouse_connect-0.6.8-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:050681b8ad33fc3210461a6b5e396cca8b202944ef24c436094202702ae84be7"}, + {file = "clickhouse_connect-0.6.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:342be4094746bb068496555a3d9ecf4f67574b7bcf9c57a39f76700a7155cc13"}, + {file = "clickhouse_connect-0.6.8-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d956358c9966006b246f450146c816d198972c19531e69e02d3fc8f3fac8b5a2"}, + {file = "clickhouse_connect-0.6.8-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8def8771307ee5b964dcf9436c3a4dfca46618df72bbf9e73c7882c05812e481"}, + {file = "clickhouse_connect-0.6.8-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e05f0504edddfae4a08d4c8ceb2e263982b3d2b453fc54b8c9fa9db1c3ad47a"}, + {file = "clickhouse_connect-0.6.8-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f45986e195cd9352ffab5116df488f21e790c3b33e3ce79910a70730aa90f5bc"}, + {file = "clickhouse_connect-0.6.8-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3c7fde400669245efa572cf0810c4c0a4ca6bb05d6c787a84472a4f958207770"}, + {file = "clickhouse_connect-0.6.8-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2830d1f1b58904c4f1100315345d0e54fd5ed5346b391b25d82b1a0b695c266a"}, + {file = "clickhouse_connect-0.6.8-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8f055198176252a8298497f05420aa5b7b3d099d77a72b0b25398630303004a"}, + {file = "clickhouse_connect-0.6.8-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f90b135933cb4297bc67b3d74e3bca57bad80a430883ef2aabf50f985820be3"}, + {file = "clickhouse_connect-0.6.8-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e87ffc88ebda5cab7fb4de8c832d155f9e50e4f18c43ed44e2c058449b6370ab"}, + {file = "clickhouse_connect-0.6.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:691a12359f88431bbe6c743dab62ef330b3a6dde0aa88b7fa3b332265ee25a8e"}, +] + +[package.dependencies] +certifi = "*" +importlib-metadata = "*" +lz4 = "*" +pytz = "*" +urllib3 = ">=1.26" +zstandard = "*" + +[package.extras] +arrow = ["pyarrow"] +numpy = ["numpy"] +orjson = ["orjson"] +pandas = ["pandas"] +sqlalchemy = ["sqlalchemy (>1.3.21,<2.0)"] + +[[package]] +name = "cohere" +version = "4.17.0" +description = "" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "cohere-4.17.0-py3-none-any.whl", hash = "sha256:44e0bdb0a2d9467506d27b285f542177b98f92647f27e17ea921a01006fe2f33"}, + {file = "cohere-4.17.0.tar.gz", hash = "sha256:9f479543b50490b4cb6385468d7571ad891a09cde7bd6b028171596bac6ce6ff"}, +] + +[package.dependencies] +aiohttp = ">=3.0,<4.0" +backoff = ">=2.0,<3.0" +importlib_metadata = ">=6.0,<7.0" +requests = ">=2.25.0,<3.0.0" +urllib3 = ">=1.26,<3" + +[[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 = "coloredlogs" +version = "15.0.1" +description = "Colored terminal output for Python's logging module" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934"}, + {file = "coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0"}, +] + +[package.dependencies] +humanfriendly = ">=9.1" + +[package.extras] +cron = ["capturer (>=2.4)"] + +[[package]] +name = "dataclasses-json" +version = "0.5.9" +description = "Easily serialize dataclasses to and from JSON" +optional = false +python-versions = ">=3.6" +files = [ + {file = "dataclasses-json-0.5.9.tar.gz", hash = "sha256:e9ac87b73edc0141aafbce02b44e93553c3123ad574958f0fe52a534b6707e8e"}, + {file = "dataclasses_json-0.5.9-py3-none-any.whl", hash = "sha256:1280542631df1c375b7bc92e5b86d39e06c44760d7e3571a537b3b8acabf2f0c"}, +] + +[package.dependencies] +marshmallow = ">=3.3.0,<4.0.0" +marshmallow-enum = ">=1.5.1,<2.0.0" +typing-inspect = ">=0.4.0" + +[package.extras] +dev = ["flake8", "hypothesis", "ipython", "mypy (>=0.710)", "portray", "pytest (>=7.2.0)", "setuptools", "simplejson", "twine", "types-dataclasses", "wheel"] + +[[package]] +name = "duckdb" +version = "0.8.1" +description = "DuckDB embedded database" +optional = false +python-versions = "*" +files = [ + {file = "duckdb-0.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:14781d21580ee72aba1f5dcae7734674c9b6c078dd60470a08b2b420d15b996d"}, + {file = "duckdb-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f13bf7ab0e56ddd2014ef762ae4ee5ea4df5a69545ce1191b8d7df8118ba3167"}, + {file = "duckdb-0.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4032042d8363e55365bbca3faafc6dc336ed2aad088f10ae1a534ebc5bcc181"}, + {file = "duckdb-0.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31a71bd8f0b0ca77c27fa89b99349ef22599ffefe1e7684ae2e1aa2904a08684"}, + {file = "duckdb-0.8.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24568d6e48f3dbbf4a933109e323507a46b9399ed24c5d4388c4987ddc694fd0"}, + {file = "duckdb-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297226c0dadaa07f7c5ae7cbdb9adba9567db7b16693dbd1b406b739ce0d7924"}, + {file = "duckdb-0.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5792cf777ece2c0591194006b4d3e531f720186102492872cb32ddb9363919cf"}, + {file = "duckdb-0.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:12803f9f41582b68921d6b21f95ba7a51e1d8f36832b7d8006186f58c3d1b344"}, + {file = "duckdb-0.8.1-cp310-cp310-win32.whl", hash = "sha256:d0953d5a2355ddc49095e7aef1392b7f59c5be5cec8cdc98b9d9dc1f01e7ce2b"}, + {file = "duckdb-0.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:6e6583c98a7d6637e83bcadfbd86e1f183917ea539f23b6b41178f32f813a5eb"}, + {file = "duckdb-0.8.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fad7ed0d4415f633d955ac24717fa13a500012b600751d4edb050b75fb940c25"}, + {file = "duckdb-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81ae602f34d38d9c48dd60f94b89f28df3ef346830978441b83c5b4eae131d08"}, + {file = "duckdb-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7d75cfe563aaa058d3b4ccaaa371c6271e00e3070df5de72361fd161b2fe6780"}, + {file = "duckdb-0.8.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbb55e7a3336f2462e5e916fc128c47fe1c03b6208d6bd413ac11ed95132aa0"}, + {file = "duckdb-0.8.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6df53efd63b6fdf04657385a791a4e3c4fb94bfd5db181c4843e2c46b04fef5"}, + {file = "duckdb-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b188b80b70d1159b17c9baaf541c1799c1ce8b2af4add179a9eed8e2616be96"}, + {file = "duckdb-0.8.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5ad481ee353f31250b45d64b4a104e53b21415577943aa8f84d0af266dc9af85"}, + {file = "duckdb-0.8.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1d1b1729993611b1892509d21c21628917625cdbe824a61ce891baadf684b32"}, + {file = "duckdb-0.8.1-cp311-cp311-win32.whl", hash = "sha256:2d8f9cc301e8455a4f89aa1088b8a2d628f0c1f158d4cf9bc78971ed88d82eea"}, + {file = "duckdb-0.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:07457a43605223f62d93d2a5a66b3f97731f79bbbe81fdd5b79954306122f612"}, + {file = "duckdb-0.8.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d2c8062c3e978dbcd80d712ca3e307de8a06bd4f343aa457d7dd7294692a3842"}, + {file = "duckdb-0.8.1-cp36-cp36m-win32.whl", hash = "sha256:fad486c65ae944eae2de0d590a0a4fb91a9893df98411d66cab03359f9cba39b"}, + {file = "duckdb-0.8.1-cp36-cp36m-win_amd64.whl", hash = "sha256:86fa4506622c52d2df93089c8e7075f1c4d0ba56f4bf27faebde8725355edf32"}, + {file = "duckdb-0.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:60e07a62782f88420046e30cc0e3de842d0901c4fd5b8e4d28b73826ec0c3f5e"}, + {file = "duckdb-0.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f18563675977f8cbf03748efee0165b4c8ef64e0cbe48366f78e2914d82138bb"}, + {file = "duckdb-0.8.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16e179443832bea8439ae4dff93cf1e42c545144ead7a4ef5f473e373eea925a"}, + {file = "duckdb-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a413d5267cb41a1afe69d30dd6d4842c588256a6fed7554c7e07dad251ede095"}, + {file = "duckdb-0.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3784680df59eadd683b0a4c2375d451a64470ca54bd171c01e36951962b1d332"}, + {file = "duckdb-0.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:67a1725c2b01f9b53571ecf3f92959b652f60156c1c48fb35798302e39b3c1a2"}, + {file = "duckdb-0.8.1-cp37-cp37m-win32.whl", hash = "sha256:197d37e2588c5ad063e79819054eedb7550d43bf1a557d03ba8f8f67f71acc42"}, + {file = "duckdb-0.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3843feb79edf100800f5037c32d5d5a5474fb94b32ace66c707b96605e7c16b2"}, + {file = "duckdb-0.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:624c889b0f2d656794757b3cc4fc58030d5e285f5ad2ef9fba1ea34a01dab7fb"}, + {file = "duckdb-0.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fcbe3742d77eb5add2d617d487266d825e663270ef90253366137a47eaab9448"}, + {file = "duckdb-0.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:47516c9299d09e9dbba097b9fb339b389313c4941da5c54109df01df0f05e78c"}, + {file = "duckdb-0.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf1ba718b7522d34399446ebd5d4b9fcac0b56b6ac07bfebf618fd190ec37c1d"}, + {file = "duckdb-0.8.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e36e35d38a9ae798fe8cf6a839e81494d5b634af89f4ec9483f4d0a313fc6bdb"}, + {file = "duckdb-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23493313f88ce6e708a512daacad13e83e6d1ea0be204b175df1348f7fc78671"}, + {file = "duckdb-0.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1fb9bf0b6f63616c8a4b9a6a32789045e98c108df100e6bac783dc1e36073737"}, + {file = "duckdb-0.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:12fc13ecd5eddd28b203b9e3999040d3a7374a8f4b833b04bd26b8c5685c2635"}, + {file = "duckdb-0.8.1-cp38-cp38-win32.whl", hash = "sha256:a12bf4b18306c9cb2c9ba50520317e6cf2de861f121d6f0678505fa83468c627"}, + {file = "duckdb-0.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e4e809358b9559c00caac4233e0e2014f3f55cd753a31c4bcbbd1b55ad0d35e4"}, + {file = "duckdb-0.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7acedfc00d97fbdb8c3d120418c41ef3cb86ef59367f3a9a30dff24470d38680"}, + {file = "duckdb-0.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:99bfe264059cdc1e318769103f656f98e819cd4e231cd76c1d1a0327f3e5cef8"}, + {file = "duckdb-0.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:538b225f361066231bc6cd66c04a5561de3eea56115a5dd773e99e5d47eb1b89"}, + {file = "duckdb-0.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae0be3f71a18cd8492d05d0fc1bc67d01d5a9457b04822d025b0fc8ee6efe32e"}, + {file = "duckdb-0.8.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd82ba63b58672e46c8ec60bc9946aa4dd7b77f21c1ba09633d8847ad9eb0d7b"}, + {file = "duckdb-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:780a34559aaec8354e83aa4b7b31b3555f1b2cf75728bf5ce11b89a950f5cdd9"}, + {file = "duckdb-0.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:01f0d4e9f7103523672bda8d3f77f440b3e0155dd3b2f24997bc0c77f8deb460"}, + {file = "duckdb-0.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:31f692decb98c2d57891da27180201d9e93bb470a3051fcf413e8da65bca37a5"}, + {file = "duckdb-0.8.1-cp39-cp39-win32.whl", hash = "sha256:e7fe93449cd309bbc67d1bf6f6392a6118e94a9a4479ab8a80518742e855370a"}, + {file = "duckdb-0.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:81d670bc6807672f038332d9bf587037aabdd741b0810de191984325ed307abd"}, + {file = "duckdb-0.8.1.tar.gz", hash = "sha256:a54d37f4abc2afc4f92314aaa56ecf215a411f40af4bffe1e86bd25e62aceee9"}, +] + +[[package]] +name = "fastapi" +version = "0.85.1" +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.1-py3-none-any.whl", hash = "sha256:de3166b6b1163dc22da4dc4ebdc3192fcbac7700dd1870a1afa44de636a636b5"}, + {file = "fastapi-0.85.1.tar.gz", hash = "sha256:1facd097189682a4ff11cbd01334a992e51b56be663b2bd50c2c09523624f144"}, +] + +[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 (>=0.4.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.971)", "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,<4.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.5.0)", "types-orjson (==3.6.2)", "types-ujson (==5.4.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 = "ffmpeg" +version = "1.4" +description = "ffmpeg python package url [https://github.com/jiashaokun/ffmpeg]" +optional = false +python-versions = "*" +files = [ + {file = "ffmpeg-1.4.tar.gz", hash = "sha256:6931692c890ff21d39938433c2189747815dca0c60ddc7f9bb97f199dba0b5b9"}, +] + +[[package]] +name = "filelock" +version = "3.12.2" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.7" +files = [ + {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, + {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, +] + +[package.extras] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] + +[[package]] +name = "flatbuffers" +version = "23.5.26" +description = "The FlatBuffers serialization format for Python" +optional = false +python-versions = "*" +files = [ + {file = "flatbuffers-23.5.26-py2.py3-none-any.whl", hash = "sha256:c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1"}, + {file = "flatbuffers-23.5.26.tar.gz", hash = "sha256:9ea1144cac05ce5d86e2859f431c6cd5e66cd9c78c558317c7955fb8d4c78d89"}, +] + +[[package]] +name = "frozenlist" +version = "1.4.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +files = [ + {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764226ceef3125e53ea2cb275000e309c0aa5464d43bd72abd661e27fffc26ab"}, + {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6484756b12f40003c6128bfcc3fa9f0d49a687e171186c2d85ec82e3758c559"}, + {file = "frozenlist-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ac08e601308e41eb533f232dbf6b7e4cea762f9f84f6357136eed926c15d12c"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d081f13b095d74b67d550de04df1c756831f3b83dc9881c38985834387487f1b"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71932b597f9895f011f47f17d6428252fc728ba2ae6024e13c3398a087c2cdea"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:981b9ab5a0a3178ff413bca62526bb784249421c24ad7381e39d67981be2c326"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e41f3de4df3e80de75845d3e743b3f1c4c8613c3997a912dbf0229fc61a8b963"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6918d49b1f90821e93069682c06ffde41829c346c66b721e65a5c62b4bab0300"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e5c8764c7829343d919cc2dfc587a8db01c4f70a4ebbc49abde5d4b158b007b"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8d0edd6b1c7fb94922bf569c9b092ee187a83f03fb1a63076e7774b60f9481a8"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e29cda763f752553fa14c68fb2195150bfab22b352572cb36c43c47bedba70eb"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0c7c1b47859ee2cac3846fde1c1dc0f15da6cec5a0e5c72d101e0f83dcb67ff9"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:901289d524fdd571be1c7be054f48b1f88ce8dddcbdf1ec698b27d4b8b9e5d62"}, + {file = "frozenlist-1.4.0-cp310-cp310-win32.whl", hash = "sha256:1a0848b52815006ea6596c395f87449f693dc419061cc21e970f139d466dc0a0"}, + {file = "frozenlist-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:b206646d176a007466358aa21d85cd8600a415c67c9bd15403336c331a10d956"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de343e75f40e972bae1ef6090267f8260c1446a1695e77096db6cfa25e759a95"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad2a9eb6d9839ae241701d0918f54c51365a51407fd80f6b8289e2dfca977cc3"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7bd3b3830247580de99c99ea2a01416dfc3c34471ca1298bccabf86d0ff4dc"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdf1847068c362f16b353163391210269e4f0569a3c166bc6a9f74ccbfc7e839"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38461d02d66de17455072c9ba981d35f1d2a73024bee7790ac2f9e361ef1cd0c"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5a32087d720c608f42caed0ef36d2b3ea61a9d09ee59a5142d6070da9041b8f"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd65632acaf0d47608190a71bfe46b209719bf2beb59507db08ccdbe712f969b"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261b9f5d17cac914531331ff1b1d452125bf5daa05faf73b71d935485b0c510b"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b89ac9768b82205936771f8d2eb3ce88503b1556324c9f903e7156669f521472"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e74b0506fa5aa5598ac6a975a12aa8928cbb58e1f5ac8360792ef15de1aa848f"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:490132667476f6781b4c9458298b0c1cddf237488abd228b0b3650e5ecba7467"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:76d4711f6f6d08551a7e9ef28c722f4a50dd0fc204c56b4bcd95c6cc05ce6fbb"}, + {file = "frozenlist-1.4.0-cp311-cp311-win32.whl", hash = "sha256:a02eb8ab2b8f200179b5f62b59757685ae9987996ae549ccf30f983f40602431"}, + {file = "frozenlist-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:515e1abc578dd3b275d6a5114030b1330ba044ffba03f94091842852f806f1c1"}, + {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f0ed05f5079c708fe74bf9027e95125334b6978bf07fd5ab923e9e55e5fbb9d3"}, + {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca265542ca427bf97aed183c1676e2a9c66942e822b14dc6e5f42e038f92a503"}, + {file = "frozenlist-1.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:491e014f5c43656da08958808588cc6c016847b4360e327a62cb308c791bd2d9"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17ae5cd0f333f94f2e03aaf140bb762c64783935cc764ff9c82dff626089bebf"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e78fb68cf9c1a6aa4a9a12e960a5c9dfbdb89b3695197aa7064705662515de2"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5655a942f5f5d2c9ed93d72148226d75369b4f6952680211972a33e59b1dfdc"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c11b0746f5d946fecf750428a95f3e9ebe792c1ee3b1e96eeba145dc631a9672"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e66d2a64d44d50d2543405fb183a21f76b3b5fd16f130f5c99187c3fb4e64919"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:88f7bc0fcca81f985f78dd0fa68d2c75abf8272b1f5c323ea4a01a4d7a614efc"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5833593c25ac59ede40ed4de6d67eb42928cca97f26feea219f21d0ed0959b79"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fec520865f42e5c7f050c2a79038897b1c7d1595e907a9e08e3353293ffc948e"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:b826d97e4276750beca7c8f0f1a4938892697a6bcd8ec8217b3312dad6982781"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ceb6ec0a10c65540421e20ebd29083c50e6d1143278746a4ef6bcf6153171eb8"}, + {file = "frozenlist-1.4.0-cp38-cp38-win32.whl", hash = "sha256:2b8bcf994563466db019fab287ff390fffbfdb4f905fc77bc1c1d604b1c689cc"}, + {file = "frozenlist-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:a6c8097e01886188e5be3e6b14e94ab365f384736aa1fca6a0b9e35bd4a30bc7"}, + {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6c38721585f285203e4b4132a352eb3daa19121a035f3182e08e437cface44bf"}, + {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a0c6da9aee33ff0b1a451e867da0c1f47408112b3391dd43133838339e410963"}, + {file = "frozenlist-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93ea75c050c5bb3d98016b4ba2497851eadf0ac154d88a67d7a6816206f6fa7f"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f61e2dc5ad442c52b4887f1fdc112f97caeff4d9e6ebe78879364ac59f1663e1"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa384489fefeb62321b238e64c07ef48398fe80f9e1e6afeff22e140e0850eef"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10ff5faaa22786315ef57097a279b833ecab1a0bfb07d604c9cbb1c4cdc2ed87"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f4f399d28478d1f604c2ff9119907af9726aed73680e5ed1ca634d377abb087"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5374b80521d3d3f2ec5572e05adc94601985cc526fb276d0c8574a6d749f1b3"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ce31ae3e19f3c902de379cf1323d90c649425b86de7bbdf82871b8a2a0615f3d"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7211ef110a9194b6042449431e08c4d80c0481e5891e58d429df5899690511c2"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:556de4430ce324c836789fa4560ca62d1591d2538b8ceb0b4f68fb7b2384a27a"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7645a8e814a3ee34a89c4a372011dcd817964ce8cb273c8ed6119d706e9613e3"}, + {file = "frozenlist-1.4.0-cp39-cp39-win32.whl", hash = "sha256:19488c57c12d4e8095a922f328df3f179c820c212940a498623ed39160bc3c2f"}, + {file = "frozenlist-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:6221d84d463fb110bdd7619b69cb43878a11d51cbb9394ae3105d082d5199167"}, + {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"}, +] + +[[package]] +name = "fsspec" +version = "2023.6.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2023.6.0-py3-none-any.whl", hash = "sha256:1cbad1faef3e391fba6dc005ae9b5bdcbf43005c9167ce78c915549c352c869a"}, + {file = "fsspec-2023.6.0.tar.gz", hash = "sha256:d0b2f935446169753e7a5c5c55681c54ea91996cc67be93c39a154fb3a2742af"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +devel = ["pytest", "pytest-cov"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "requests"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "2.0.2" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +files = [ + {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, + {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, + {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, + {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, + {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, + {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, + {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, + {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, + {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, + {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, + {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, + {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, + {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, + {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, + {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, + {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, + {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, + {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, + {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, + {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, + {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, + {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, +] + +[package.extras] +docs = ["Sphinx", "docutils (<0.18)"] +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 = "hnswlib" +version = "0.7.0" +description = "hnswlib" +optional = false +python-versions = "*" +files = [ + {file = "hnswlib-0.7.0.tar.gz", hash = "sha256:bc459668e7e44bb7454b256b90c98c5af750653919d9a91698dafcf416cf64c4"}, +] + +[package.dependencies] +numpy = "*" + +[[package]] +name = "httptools" +version = "0.6.0" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.5.0" +files = [ + {file = "httptools-0.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:818325afee467d483bfab1647a72054246d29f9053fd17cc4b86cda09cc60339"}, + {file = "httptools-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72205730bf1be875003692ca54a4a7c35fac77b4746008966061d9d41a61b0f5"}, + {file = "httptools-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33eb1d4e609c835966e969a31b1dedf5ba16b38cab356c2ce4f3e33ffa94cad3"}, + {file = "httptools-0.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdc6675ec6cb79d27e0575750ac6e2b47032742e24eed011b8db73f2da9ed40"}, + {file = "httptools-0.6.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:463c3bc5ef64b9cf091be9ac0e0556199503f6e80456b790a917774a616aff6e"}, + {file = "httptools-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:82f228b88b0e8c6099a9c4757ce9fdbb8b45548074f8d0b1f0fc071e35655d1c"}, + {file = "httptools-0.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:0781fedc610293a2716bc7fa142d4c85e6776bc59d617a807ff91246a95dea35"}, + {file = "httptools-0.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:721e503245d591527cddd0f6fd771d156c509e831caa7a57929b55ac91ee2b51"}, + {file = "httptools-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:274bf20eeb41b0956e34f6a81f84d26ed57c84dd9253f13dcb7174b27ccd8aaf"}, + {file = "httptools-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:259920bbae18740a40236807915def554132ad70af5067e562f4660b62c59b90"}, + {file = "httptools-0.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03bfd2ae8a2d532952ac54445a2fb2504c804135ed28b53fefaf03d3a93eb1fd"}, + {file = "httptools-0.6.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f959e4770b3fc8ee4dbc3578fd910fab9003e093f20ac8c621452c4d62e517cb"}, + {file = "httptools-0.6.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6e22896b42b95b3237eccc42278cd72c0df6f23247d886b7ded3163452481e38"}, + {file = "httptools-0.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:38f3cafedd6aa20ae05f81f2e616ea6f92116c8a0f8dcb79dc798df3356836e2"}, + {file = "httptools-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:47043a6e0ea753f006a9d0dd076a8f8c99bc0ecae86a0888448eb3076c43d717"}, + {file = "httptools-0.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a541579bed0270d1ac10245a3e71e5beeb1903b5fbbc8d8b4d4e728d48ff1d"}, + {file = "httptools-0.6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65d802e7b2538a9756df5acc062300c160907b02e15ed15ba035b02bce43e89c"}, + {file = "httptools-0.6.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:26326e0a8fe56829f3af483200d914a7cd16d8d398d14e36888b56de30bec81a"}, + {file = "httptools-0.6.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e41ccac9e77cd045f3e4ee0fc62cbf3d54d7d4b375431eb855561f26ee7a9ec4"}, + {file = "httptools-0.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4e748fc0d5c4a629988ef50ac1aef99dfb5e8996583a73a717fc2cac4ab89932"}, + {file = "httptools-0.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cf8169e839a0d740f3d3c9c4fa630ac1a5aaf81641a34575ca6773ed7ce041a1"}, + {file = "httptools-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5dcc14c090ab57b35908d4a4585ec5c0715439df07be2913405991dbb37e049d"}, + {file = "httptools-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d0b0571806a5168013b8c3d180d9f9d6997365a4212cb18ea20df18b938aa0b"}, + {file = "httptools-0.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fb4a608c631f7dcbdf986f40af7a030521a10ba6bc3d36b28c1dc9e9035a3c0"}, + {file = "httptools-0.6.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:93f89975465133619aea8b1952bc6fa0e6bad22a447c6d982fc338fbb4c89649"}, + {file = "httptools-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:73e9d66a5a28b2d5d9fbd9e197a31edd02be310186db423b28e6052472dc8201"}, + {file = "httptools-0.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:22c01fcd53648162730a71c42842f73b50f989daae36534c818b3f5050b54589"}, + {file = "httptools-0.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f96d2a351b5625a9fd9133c95744e8ca06f7a4f8f0b8231e4bbaae2c485046a"}, + {file = "httptools-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72ec7c70bd9f95ef1083d14a755f321d181f046ca685b6358676737a5fecd26a"}, + {file = "httptools-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b703d15dbe082cc23266bf5d9448e764c7cb3fcfe7cb358d79d3fd8248673ef9"}, + {file = "httptools-0.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82c723ed5982f8ead00f8e7605c53e55ffe47c47465d878305ebe0082b6a1755"}, + {file = "httptools-0.6.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b0a816bb425c116a160fbc6f34cece097fd22ece15059d68932af686520966bd"}, + {file = "httptools-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:dea66d94e5a3f68c5e9d86e0894653b87d952e624845e0b0e3ad1c733c6cc75d"}, + {file = "httptools-0.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:23b09537086a5a611fad5696fc8963d67c7e7f98cb329d38ee114d588b0b74cd"}, + {file = "httptools-0.6.0.tar.gz", hash = "sha256:9fc6e409ad38cbd68b177cd5158fc4042c796b82ca88d99ec78f07bed6c6b796"}, +] + +[package.extras] +test = ["Cython (>=0.29.24,<0.30.0)"] + +[[package]] +name = "huggingface-hub" +version = "0.16.4" +description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "huggingface_hub-0.16.4-py3-none-any.whl", hash = "sha256:0d3df29932f334fead024afc7cb4cc5149d955238b8b5e42dcf9740d6995a349"}, + {file = "huggingface_hub-0.16.4.tar.gz", hash = "sha256:608c7d4f3d368b326d1747f91523dbd1f692871e8e2e7a4750314a2dd8b63e14"}, +] + +[package.dependencies] +filelock = "*" +fsspec = "*" +packaging = ">=20.9" +pyyaml = ">=5.1" +requests = "*" +tqdm = ">=4.42.1" +typing-extensions = ">=3.7.4.3" + +[package.extras] +all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "black (>=23.1,<24.0)", "gradio", "jedi", "mypy (==0.982)", "numpy", "pydantic", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "ruff (>=0.0.241)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "urllib3 (<2.0)"] +cli = ["InquirerPy (==0.3.4)"] +dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "black (>=23.1,<24.0)", "gradio", "jedi", "mypy (==0.982)", "numpy", "pydantic", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "ruff (>=0.0.241)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "urllib3 (<2.0)"] +fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"] +inference = ["aiohttp", "pydantic"] +quality = ["black (>=23.1,<24.0)", "mypy (==0.982)", "ruff (>=0.0.241)"] +tensorflow = ["graphviz", "pydot", "tensorflow"] +testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "numpy", "pydantic", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] +torch = ["torch"] +typing = ["pydantic", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3"] + +[[package]] +name = "humanfriendly" +version = "10.0" +description = "Human friendly output for text interfaces using Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"}, + {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"}, +] + +[package.dependencies] +pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_version >= \"3.8\""} + +[[package]] +name = "hydra-core" +version = "1.3.2" +description = "A framework for elegantly configuring complex applications" +optional = false +python-versions = "*" +files = [ + {file = "hydra-core-1.3.2.tar.gz", hash = "sha256:8a878ed67216997c3e9d88a8e72e7b4767e81af37afb4ea3334b269a4390a824"}, + {file = "hydra_core-1.3.2-py3-none-any.whl", hash = "sha256:fa0238a9e31df3373b35b0bfb672c34cc92718d21f81311d8996a16de1141d8b"}, +] + +[package.dependencies] +antlr4-python3-runtime = "==4.9.*" +omegaconf = ">=2.2,<2.4" +packaging = "*" + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] + +[[package]] +name = "importlib-metadata" +version = "6.8.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "langchain" +version = "0.0.229" +description = "Building applications with LLMs through composability" +optional = false +python-versions = ">=3.8.1,<4.0" +files = [ + {file = "langchain-0.0.229-py3-none-any.whl", hash = "sha256:a7ca79e4ab892756ede95d212bd42243303f91b172535cefd02b0b8965e4e7b7"}, + {file = "langchain-0.0.229.tar.gz", hash = "sha256:ab1beac7f3fc1f06ab1a0b545ef0d47a3d5efef3b2b4c646aafaefc2eb3151d3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.3,<4.0.0" +dataclasses-json = ">=0.5.7,<0.6.0" +langchainplus-sdk = ">=0.0.20,<0.0.21" +numexpr = ">=2.8.4,<3.0.0" +numpy = ">=1,<2" +openapi-schema-pydantic = ">=1.2,<2.0" +pydantic = ">=1,<2" +PyYAML = ">=5.4.1" +requests = ">=2,<3" +SQLAlchemy = ">=1.4,<3" +tenacity = ">=8.1.0,<9.0.0" + +[package.extras] +all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.3,<0.4)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "awadb (>=0.3.3,<0.4.0)", "azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clarifai (>=9.1.0)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.6.2,<4.0.0)", "docarray[hnswlib] (>=0.32.0,<0.33.0)", "duckduckgo-search (>=3.8.3,<4.0.0)", "elasticsearch (>=8,<9)", "esprima (>=4.0.1,<5.0.0)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-auth (>=2.18.1,<3.0.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "langkit (>=0.0.1.dev3,<0.1.0)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "marqo (>=0.11.0,<0.12.0)", "momento (>=1.5.0,<2.0.0)", "nebula3-python (>=3.4.0,<4.0.0)", "neo4j (>=5.8.1,<6.0.0)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "octoai-sdk (>=0.1.1,<0.2.0)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pymongo (>=4.3.3,<5.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "rdflib (>=6.3.2,<7.0.0)", "redis (>=4,<5)", "requests-toolbelt (>=1.0.0,<2.0.0)", "sentence-transformers (>=2,<3)", "singlestoredb (>=0.7.1,<0.8.0)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tigrisdb (>=1.0.0b6,<2.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] +azure = ["azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "azure-search-documents (==11.4.0a20230509004)", "openai (>=0,<1)"] +clarifai = ["clarifai (>=9.1.0)"] +cohere = ["cohere (>=3,<4)"] +docarray = ["docarray[hnswlib] (>=0.32.0,<0.33.0)"] +embeddings = ["sentence-transformers (>=2,<3)"] +extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "bibtexparser (>=1.4.0,<2.0.0)", "cassio (>=0.0.7,<0.0.8)", "chardet (>=5.1.0,<6.0.0)", "esprima (>=4.0.1,<5.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "openai (>=0,<1)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pgvector (>=0.1.6,<0.2.0)", "psychicapi (>=0.8.0,<0.9.0)", "py-trello (>=0.19.0,<0.20.0)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "pyspark (>=3.4.0,<4.0.0)", "rapidfuzz (>=3.1.1,<4.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "scikit-learn (>=1.2.2,<2.0.0)", "streamlit (>=1.18.0,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.32)"] +javascript = ["esprima (>=4.0.1,<5.0.0)"] +llms = ["anthropic (>=0.3,<0.4)", "clarifai (>=9.1.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "openllm (>=0.1.19)", "openlm (>=0.0.5,<0.0.6)", "torch (>=1,<3)", "transformers (>=4,<5)"] +openai = ["openai (>=0,<1)", "tiktoken (>=0.3.2,<0.4.0)"] +qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] +text-helpers = ["chardet (>=5.1.0,<6.0.0)"] + +[[package]] +name = "langchainplus-sdk" +version = "0.0.20" +description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." +optional = false +python-versions = ">=3.8.1,<4.0" +files = [ + {file = "langchainplus_sdk-0.0.20-py3-none-any.whl", hash = "sha256:07a869d476755803aa04c4986ce78d00c2fe4ff584c0eaa57d7570c9664188db"}, + {file = "langchainplus_sdk-0.0.20.tar.gz", hash = "sha256:3d300e2e3290f68cc9d842c059f9458deba60e776c9e790309688cad1bfbb219"}, +] + +[package.dependencies] +pydantic = ">=1,<2" +requests = ">=2,<3" +tenacity = ">=8.1.0,<9.0.0" + +[[package]] +name = "lark" +version = "1.1.7" +description = "a modern parsing library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "lark-1.1.7-py3-none-any.whl", hash = "sha256:9e5dc5bbf93fa1840083707285262514a0ef8a6613874af7ea1cec60468d6e92"}, + {file = "lark-1.1.7.tar.gz", hash = "sha256:be7437bf1f37ab08b355f29ff2571d77d777113d0a8c4352b0c513dced6c5a1e"}, +] + +[package.extras] +atomic-cache = ["atomicwrites"] +interegular = ["interegular (>=0.3.1,<0.4.0)"] +nearley = ["js2py"] +regex = ["regex"] + +[[package]] +name = "lz4" +version = "4.3.2" +description = "LZ4 Bindings for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "lz4-4.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1c4c100d99eed7c08d4e8852dd11e7d1ec47a3340f49e3a96f8dfbba17ffb300"}, + {file = "lz4-4.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:edd8987d8415b5dad25e797043936d91535017237f72fa456601be1479386c92"}, + {file = "lz4-4.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7c50542b4ddceb74ab4f8b3435327a0861f06257ca501d59067a6a482535a77"}, + {file = "lz4-4.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f5614d8229b33d4a97cb527db2a1ac81308c6e796e7bdb5d1309127289f69d5"}, + {file = "lz4-4.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f00a9ba98f6364cadda366ae6469b7b3568c0cced27e16a47ddf6b774169270"}, + {file = "lz4-4.3.2-cp310-cp310-win32.whl", hash = "sha256:b10b77dc2e6b1daa2f11e241141ab8285c42b4ed13a8642495620416279cc5b2"}, + {file = "lz4-4.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:86480f14a188c37cb1416cdabacfb4e42f7a5eab20a737dac9c4b1c227f3b822"}, + {file = "lz4-4.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7c2df117def1589fba1327dceee51c5c2176a2b5a7040b45e84185ce0c08b6a3"}, + {file = "lz4-4.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1f25eb322eeb24068bb7647cae2b0732b71e5c639e4e4026db57618dcd8279f0"}, + {file = "lz4-4.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8df16c9a2377bdc01e01e6de5a6e4bbc66ddf007a6b045688e285d7d9d61d1c9"}, + {file = "lz4-4.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f571eab7fec554d3b1db0d666bdc2ad85c81f4b8cb08906c4c59a8cad75e6e22"}, + {file = "lz4-4.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7211dc8f636ca625abc3d4fb9ab74e5444b92df4f8d58ec83c8868a2b0ff643d"}, + {file = "lz4-4.3.2-cp311-cp311-win32.whl", hash = "sha256:867664d9ca9bdfce840ac96d46cd8838c9ae891e859eb98ce82fcdf0e103a947"}, + {file = "lz4-4.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:a6a46889325fd60b8a6b62ffc61588ec500a1883db32cddee9903edfba0b7584"}, + {file = "lz4-4.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a85b430138882f82f354135b98c320dafb96fc8fe4656573d95ab05de9eb092"}, + {file = "lz4-4.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65d5c93f8badacfa0456b660285e394e65023ef8071142e0dcbd4762166e1be0"}, + {file = "lz4-4.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b50f096a6a25f3b2edca05aa626ce39979d63c3b160687c8c6d50ac3943d0ba"}, + {file = "lz4-4.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:200d05777d61ba1ff8d29cb51c534a162ea0b4fe6d3c28be3571a0a48ff36080"}, + {file = "lz4-4.3.2-cp37-cp37m-win32.whl", hash = "sha256:edc2fb3463d5d9338ccf13eb512aab61937be50aa70734bcf873f2f493801d3b"}, + {file = "lz4-4.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:83acfacab3a1a7ab9694333bcb7950fbeb0be21660d236fd09c8337a50817897"}, + {file = "lz4-4.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7a9eec24ec7d8c99aab54de91b4a5a149559ed5b3097cf30249b665689b3d402"}, + {file = "lz4-4.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:31d72731c4ac6ebdce57cd9a5cabe0aecba229c4f31ba3e2c64ae52eee3fdb1c"}, + {file = "lz4-4.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83903fe6db92db0be101acedc677aa41a490b561567fe1b3fe68695b2110326c"}, + {file = "lz4-4.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926b26db87ec8822cf1870efc3d04d06062730ec3279bbbd33ba47a6c0a5c673"}, + {file = "lz4-4.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e05afefc4529e97c08e65ef92432e5f5225c0bb21ad89dee1e06a882f91d7f5e"}, + {file = "lz4-4.3.2-cp38-cp38-win32.whl", hash = "sha256:ad38dc6a7eea6f6b8b642aaa0683253288b0460b70cab3216838747163fb774d"}, + {file = "lz4-4.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:7e2dc1bd88b60fa09b9b37f08553f45dc2b770c52a5996ea52b2b40f25445676"}, + {file = "lz4-4.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:edda4fb109439b7f3f58ed6bede59694bc631c4b69c041112b1b7dc727fffb23"}, + {file = "lz4-4.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ca83a623c449295bafad745dcd399cea4c55b16b13ed8cfea30963b004016c9"}, + {file = "lz4-4.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5ea0e788dc7e2311989b78cae7accf75a580827b4d96bbaf06c7e5a03989bd5"}, + {file = "lz4-4.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a98b61e504fb69f99117b188e60b71e3c94469295571492a6468c1acd63c37ba"}, + {file = "lz4-4.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4931ab28a0d1c133104613e74eec1b8bb1f52403faabe4f47f93008785c0b929"}, + {file = "lz4-4.3.2-cp39-cp39-win32.whl", hash = "sha256:ec6755cacf83f0c5588d28abb40a1ac1643f2ff2115481089264c7630236618a"}, + {file = "lz4-4.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:4caedeb19e3ede6c7a178968b800f910db6503cb4cb1e9cc9221157572139b49"}, + {file = "lz4-4.3.2.tar.gz", hash = "sha256:e1431d84a9cfb23e6773e72078ce8e65cad6745816d4cbf9ae67da5ea419acda"}, +] + +[package.extras] +docs = ["sphinx (>=1.6.0)", "sphinx-bootstrap-theme"] +flake8 = ["flake8"] +tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "marshmallow" +version = "3.20.1" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.8" +files = [ + {file = "marshmallow-3.20.1-py3-none-any.whl", hash = "sha256:684939db93e80ad3561392f47be0230743131560a41c5110684c16e21ade0a5c"}, + {file = "marshmallow-3.20.1.tar.gz", hash = "sha256:5d2371bbe42000f2b3fb5eaa065224df7d8f8597bc19a1bbfa5bfe7fba8da889"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["flake8 (==6.0.0)", "flake8-bugbear (==23.7.10)", "mypy (==1.4.1)", "pre-commit (>=2.4,<4.0)", "pytest", "pytz", "simplejson", "tox"] +docs = ["alabaster (==0.7.13)", "autodocsumm (==0.2.11)", "sphinx (==7.0.1)", "sphinx-issues (==3.0.1)", "sphinx-version-warning (==1.1.2)"] +lint = ["flake8 (==6.0.0)", "flake8-bugbear (==23.7.10)", "mypy (==1.4.1)", "pre-commit (>=2.4,<4.0)"] +tests = ["pytest", "pytz", "simplejson"] + +[[package]] +name = "marshmallow-enum" +version = "1.5.1" +description = "Enum field for Marshmallow" +optional = false +python-versions = "*" +files = [ + {file = "marshmallow-enum-1.5.1.tar.gz", hash = "sha256:38e697e11f45a8e64b4a1e664000897c659b60aa57bfa18d44e226a9920b6e58"}, + {file = "marshmallow_enum-1.5.1-py2.py3-none-any.whl", hash = "sha256:57161ab3dbfde4f57adeb12090f39592e992b9c86d206d02f6bd03ebec60f072"}, +] + +[package.dependencies] +marshmallow = ">=2.0.0" + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mdutils" +version = "1.6.0" +description = "Useful package for creating Markdown files while executing python code." +optional = false +python-versions = "^3.6" +files = [ + {file = "mdutils-1.6.0.tar.gz", hash = "sha256:647f3cf00df39fee6c57fa6738dc1160fce1788276b5530c87d43a70cdefdaf1"}, +] + +[[package]] +name = "monotonic" +version = "1.6" +description = "An implementation of time.monotonic() for Python 2 & < 3.3" +optional = false +python-versions = "*" +files = [ + {file = "monotonic-1.6-py2.py3-none-any.whl", hash = "sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c"}, + {file = "monotonic-1.6.tar.gz", hash = "sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7"}, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +description = "Python library for arbitrary-precision floating-point arithmetic" +optional = false +python-versions = "*" +files = [ + {file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"}, + {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, +] + +[package.extras] +develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] +docs = ["sphinx"] +gmpy = ["gmpy2 (>=2.1.0a4)"] +tests = ["pytest (>=4.6)"] + +[[package]] +name = "multidict" +version = "6.0.4" +description = "multidict implementation" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, + {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, + {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, + {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, + {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, + {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, + {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, +] + +[[package]] +name = "mutagen" +version = "1.46.0" +description = "read and write audio tags for many formats" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mutagen-1.46.0-py3-none-any.whl", hash = "sha256:8af0728aa2d5c3ee5a727e28d0627966641fddfe804c23eabb5926a4d770aed5"}, + {file = "mutagen-1.46.0.tar.gz", hash = "sha256:6e5f8ba84836b99fe60be5fb27f84be4ad919bbb6b49caa6ae81e70584b55e58"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "numexpr" +version = "2.8.4" +description = "Fast numerical expression evaluator for NumPy" +optional = false +python-versions = ">=3.7" +files = [ + {file = "numexpr-2.8.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a75967d46b6bd56455dd32da6285e5ffabe155d0ee61eef685bbfb8dafb2e484"}, + {file = "numexpr-2.8.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db93cf1842f068247de631bfc8af20118bf1f9447cd929b531595a5e0efc9346"}, + {file = "numexpr-2.8.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bca95f4473b444428061d4cda8e59ac564dc7dc6a1dea3015af9805c6bc2946"}, + {file = "numexpr-2.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e34931089a6bafc77aaae21f37ad6594b98aa1085bb8b45d5b3cd038c3c17d9"}, + {file = "numexpr-2.8.4-cp310-cp310-win32.whl", hash = "sha256:f3a920bfac2645017110b87ddbe364c9c7a742870a4d2f6120b8786c25dc6db3"}, + {file = "numexpr-2.8.4-cp310-cp310-win_amd64.whl", hash = "sha256:6931b1e9d4f629f43c14b21d44f3f77997298bea43790cfcdb4dd98804f90783"}, + {file = "numexpr-2.8.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9400781553541f414f82eac056f2b4c965373650df9694286b9bd7e8d413f8d8"}, + {file = "numexpr-2.8.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ee9db7598dd4001138b482342b96d78110dd77cefc051ec75af3295604dde6a"}, + {file = "numexpr-2.8.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff5835e8af9a212e8480003d731aad1727aaea909926fd009e8ae6a1cba7f141"}, + {file = "numexpr-2.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:655d84eb09adfee3c09ecf4a89a512225da153fdb7de13c447404b7d0523a9a7"}, + {file = "numexpr-2.8.4-cp311-cp311-win32.whl", hash = "sha256:5538b30199bfc68886d2be18fcef3abd11d9271767a7a69ff3688defe782800a"}, + {file = "numexpr-2.8.4-cp311-cp311-win_amd64.whl", hash = "sha256:3f039321d1c17962c33079987b675fb251b273dbec0f51aac0934e932446ccc3"}, + {file = "numexpr-2.8.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c867cc36cf815a3ec9122029874e00d8fbcef65035c4a5901e9b120dd5d626a2"}, + {file = "numexpr-2.8.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:059546e8f6283ccdb47c683101a890844f667fa6d56258d48ae2ecf1b3875957"}, + {file = "numexpr-2.8.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:845a6aa0ed3e2a53239b89c1ebfa8cf052d3cc6e053c72805e8153300078c0b1"}, + {file = "numexpr-2.8.4-cp37-cp37m-win32.whl", hash = "sha256:a38664e699526cb1687aefd9069e2b5b9387da7feac4545de446141f1ef86f46"}, + {file = "numexpr-2.8.4-cp37-cp37m-win_amd64.whl", hash = "sha256:eaec59e9bf70ff05615c34a8b8d6c7bd042bd9f55465d7b495ea5436f45319d0"}, + {file = "numexpr-2.8.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b318541bf3d8326682ebada087ba0050549a16d8b3fa260dd2585d73a83d20a7"}, + {file = "numexpr-2.8.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b076db98ca65eeaf9bd224576e3ac84c05e451c0bd85b13664b7e5f7b62e2c70"}, + {file = "numexpr-2.8.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90f12cc851240f7911a47c91aaf223dba753e98e46dff3017282e633602e76a7"}, + {file = "numexpr-2.8.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c368aa35ae9b18840e78b05f929d3a7b3abccdba9630a878c7db74ca2368339"}, + {file = "numexpr-2.8.4-cp38-cp38-win32.whl", hash = "sha256:b96334fc1748e9ec4f93d5fadb1044089d73fb08208fdb8382ed77c893f0be01"}, + {file = "numexpr-2.8.4-cp38-cp38-win_amd64.whl", hash = "sha256:a6d2d7740ae83ba5f3531e83afc4b626daa71df1ef903970947903345c37bd03"}, + {file = "numexpr-2.8.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:77898fdf3da6bb96aa8a4759a8231d763a75d848b2f2e5c5279dad0b243c8dfe"}, + {file = "numexpr-2.8.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df35324666b693f13a016bc7957de7cc4d8801b746b81060b671bf78a52b9037"}, + {file = "numexpr-2.8.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17ac9cfe6d0078c5fc06ba1c1bbd20b8783f28c6f475bbabd3cad53683075cab"}, + {file = "numexpr-2.8.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df3a1f6b24214a1ab826e9c1c99edf1686c8e307547a9aef33910d586f626d01"}, + {file = "numexpr-2.8.4-cp39-cp39-win32.whl", hash = "sha256:7d71add384adc9119568d7e9ffa8a35b195decae81e0abf54a2b7779852f0637"}, + {file = "numexpr-2.8.4-cp39-cp39-win_amd64.whl", hash = "sha256:9f096d707290a6a00b6ffdaf581ee37331109fb7b6c8744e9ded7c779a48e517"}, + {file = "numexpr-2.8.4.tar.gz", hash = "sha256:d5432537418d18691b9115d615d6daa17ee8275baef3edf1afbbf8bc69806147"}, +] + +[package.dependencies] +numpy = ">=1.13.3" + +[[package]] +name = "numpy" +version = "1.25.1" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa"}, + {file = "numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b"}, + {file = "numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf"}, + {file = "numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588"}, + {file = "numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19"}, + {file = "numpy-1.25.1-cp310-cp310-win32.whl", hash = "sha256:fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503"}, + {file = "numpy-1.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57"}, + {file = "numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e"}, + {file = "numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800"}, + {file = "numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09"}, + {file = "numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6"}, + {file = "numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d"}, + {file = "numpy-1.25.1-cp311-cp311-win32.whl", hash = "sha256:791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb"}, + {file = "numpy-1.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171"}, + {file = "numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105"}, + {file = "numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f"}, + {file = "numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625"}, + {file = "numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd"}, + {file = "numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7"}, + {file = "numpy-1.25.1-cp39-cp39-win32.whl", hash = "sha256:247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c"}, + {file = "numpy-1.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631"}, + {file = "numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009"}, + {file = "numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004"}, + {file = "numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe"}, + {file = "numpy-1.25.1.tar.gz", hash = "sha256:9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf"}, +] + +[[package]] +name = "omegaconf" +version = "2.3.0" +description = "A flexible configuration library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b"}, + {file = "omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7"}, +] + +[package.dependencies] +antlr4-python3-runtime = "==4.9.*" +PyYAML = ">=5.1.0" + +[[package]] +name = "onnxruntime" +version = "1.15.1" +description = "ONNX Runtime is a runtime accelerator for Machine Learning models" +optional = false +python-versions = "*" +files = [ + {file = "onnxruntime-1.15.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:baad59e6a763237fa39545325d29c16f98b8a45d2dfc524c67631e2e3ba44d16"}, + {file = "onnxruntime-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:568c2db848f619a0a93e843c028e9fb4879929d40b04bd60f9ba6eb8d2e93421"}, + {file = "onnxruntime-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69088d7784bb04dedfd9e883e2c96e4adf8ae0451acdd0abb78d68f59ecc6d9d"}, + {file = "onnxruntime-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cef43737b2cd886d5d718d100f56ec78c9c476c5db5f8f946e95024978fe754"}, + {file = "onnxruntime-1.15.1-cp310-cp310-win32.whl", hash = "sha256:79d7e65abb44a47c633ede8e53fe7b9756c272efaf169758c482c983cca98d7e"}, + {file = "onnxruntime-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:8bc4c47682933a7a2c79808688aad5f12581305e182be552de50783b5438e6bd"}, + {file = "onnxruntime-1.15.1-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:652b2cb777f76446e3cc41072dd3d1585a6388aeff92b9de656724bc22e241e4"}, + {file = "onnxruntime-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89b86dbed15740abc385055a29c9673a212600248d702737ce856515bdeddc88"}, + {file = "onnxruntime-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed5cdd9ee748149a57f4cdfa67187a0d68f75240645a3c688299dcd08742cc98"}, + {file = "onnxruntime-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f748cce6a70ed38c19658615c55f4eedb9192765a4e9c4bd2682adfe980698d"}, + {file = "onnxruntime-1.15.1-cp311-cp311-win32.whl", hash = "sha256:e0312046e814c40066e7823da58075992d51364cbe739eeeb2345ec440c3ac59"}, + {file = "onnxruntime-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:f0980969689cb956c22bd1318b271e1be260060b37f3ddd82c7d63bd7f2d9a79"}, + {file = "onnxruntime-1.15.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:345986cfdbd6f4b20a89b6a6cd9abd3e2ced2926ae0b6e91fefa8149f95c0f09"}, + {file = "onnxruntime-1.15.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a4d7b3ad75e040f1e95757f69826a11051737b31584938a26d466a0234c6de98"}, + {file = "onnxruntime-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3603d07b829bcc1c14963a76103e257aade8861eb208173b300cc26e118ec2f8"}, + {file = "onnxruntime-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3df0625b9295daf1f7409ea55f72e1eeb38d54f5769add53372e79ddc3cf98d"}, + {file = "onnxruntime-1.15.1-cp38-cp38-win32.whl", hash = "sha256:f68b47fdf1a0406c0292f81ac993e2a2ae3e8b166b436d590eb221f64e8e187a"}, + {file = "onnxruntime-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:52d762d297cc3f731f54fa65a3e329b813164970671547bef6414d0ed52765c9"}, + {file = "onnxruntime-1.15.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:99228f9f03dc1fc8af89a28c9f942e8bd3e97e894e263abe1a32e4ddb1f6363b"}, + {file = "onnxruntime-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:45db7f96febb0cf23e3af147f35c4f8de1a37dd252d1cef853c242c2780250cd"}, + {file = "onnxruntime-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bafc112a36db25c821b90ab747644041cb4218f6575889775a2c12dd958b8c3"}, + {file = "onnxruntime-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:985693d18f2d46aa34fd44d7f65ff620660b2c8fa4b8ec365c2ca353f0fbdb27"}, + {file = "onnxruntime-1.15.1-cp39-cp39-win32.whl", hash = "sha256:708eb31b0c04724bf0f01c1309a9e69bbc09b85beb750e5662c8aed29f1ff9fd"}, + {file = "onnxruntime-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:73d6de4c42dfde1e9dbea04773e6dc23346c8cda9c7e08c6554fafc97ac60138"}, +] + +[package.dependencies] +coloredlogs = "*" +flatbuffers = "*" +numpy = ">=1.21.6" +packaging = "*" +protobuf = "*" +sympy = "*" + +[[package]] +name = "openai" +version = "0.27.8" +description = "Python client library for the OpenAI API" +optional = false +python-versions = ">=3.7.1" +files = [ + {file = "openai-0.27.8-py3-none-any.whl", hash = "sha256:e0a7c2f7da26bdbe5354b03c6d4b82a2f34bd4458c7a17ae1a7092c3e397e03c"}, + {file = "openai-0.27.8.tar.gz", hash = "sha256:2483095c7db1eee274cebac79e315a986c4e55207bb4fa7b82d185b3a2ed9536"}, +] + +[package.dependencies] +aiohttp = "*" +requests = ">=2.20" +tqdm = "*" + +[package.extras] +datalib = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +dev = ["black (>=21.6b0,<22.0)", "pytest (==6.*)", "pytest-asyncio", "pytest-mock"] +embeddings = ["matplotlib", "numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "plotly", "scikit-learn (>=1.0.2)", "scipy", "tenacity (>=8.0.1)"] +wandb = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "wandb"] + +[[package]] +name = "openapi-schema-pydantic" +version = "1.2.4" +description = "OpenAPI (v3) specification schema as pydantic class" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "openapi-schema-pydantic-1.2.4.tar.gz", hash = "sha256:3e22cf58b74a69f752cc7e5f1537f6e44164282db2700cbbcd3bb99ddd065196"}, + {file = "openapi_schema_pydantic-1.2.4-py3-none-any.whl", hash = "sha256:a932ecc5dcbb308950282088956e94dea069c9823c84e507d64f6b622222098c"}, +] + +[package.dependencies] +pydantic = ">=1.8.2" + +[[package]] +name = "overrides" +version = "7.3.1" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.3.1-py3-none-any.whl", hash = "sha256:6187d8710a935d09b0bcef8238301d6ee2569d2ac1ae0ec39a8c7924e27f58ca"}, + {file = "overrides-7.3.1.tar.gz", hash = "sha256:8b97c6c1e1681b78cbc9424b138d880f0803c2254c5ebaabdde57bb6c62093f2"}, +] + +[[package]] +name = "packaging" +version = "23.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, +] + +[[package]] +name = "pandas" +version = "2.0.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"}, + {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"}, + {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"}, + {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"}, + {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"}, + {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"}, + {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"}, + {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"}, + {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"}, + {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"}, + {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"}, + {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"}, + {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"}, + {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"}, + {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"}, + {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"}, + {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"}, + {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"}, + {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"}, + {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"}, + {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"}, + {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"}, + {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"}, + {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"}, + {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.1" + +[package.extras] +all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] +aws = ["s3fs (>=2021.08.0)"] +clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"] +compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"] +computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"] +feather = ["pyarrow (>=7.0.0)"] +fss = ["fsspec (>=2021.07.0)"] +gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"] +hdf5 = ["tables (>=3.6.1)"] +html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"] +mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"] +parquet = ["pyarrow (>=7.0.0)"] +performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"] +plot = ["matplotlib (>=3.6.1)"] +postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"] +spss = ["pyreadstat (>=1.1.2)"] +sql-other = ["SQLAlchemy (>=1.4.16)"] +test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.6.3)"] + +[[package]] +name = "pluggy" +version = "1.2.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, + {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "posthog" +version = "3.0.1" +description = "Integrate PostHog into any python application." +optional = false +python-versions = "*" +files = [ + {file = "posthog-3.0.1-py2.py3-none-any.whl", hash = "sha256:9c7f92fecc713257d4b2710d05b456569c9156fbdd3e85655ba7ba5ba6c7b3ae"}, + {file = "posthog-3.0.1.tar.gz", hash = "sha256:57d2791ff5752ce56ba0f9bb8876faf3ca9208f1c2c6ceaeb5a2504c34493767"}, +] + +[package.dependencies] +backoff = ">=1.10.0" +monotonic = ">=1.5" +python-dateutil = ">2.1" +requests = ">=2.7,<3.0" +six = ">=1.5" + +[package.extras] +dev = ["black", "flake8", "flake8-print", "isort", "pre-commit"] +sentry = ["django", "sentry-sdk"] +test = ["coverage", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint", "pytest"] + +[[package]] +name = "protobuf" +version = "4.23.4" +description = "" +optional = false +python-versions = ">=3.7" +files = [ + {file = "protobuf-4.23.4-cp310-abi3-win32.whl", hash = "sha256:5fea3c64d41ea5ecf5697b83e41d09b9589e6f20b677ab3c48e5f242d9b7897b"}, + {file = "protobuf-4.23.4-cp310-abi3-win_amd64.whl", hash = "sha256:7b19b6266d92ca6a2a87effa88ecc4af73ebc5cfde194dc737cf8ef23a9a3b12"}, + {file = "protobuf-4.23.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8547bf44fe8cec3c69e3042f5c4fb3e36eb2a7a013bb0a44c018fc1e427aafbd"}, + {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:fee88269a090ada09ca63551bf2f573eb2424035bcf2cb1b121895b01a46594a"}, + {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:effeac51ab79332d44fba74660d40ae79985901ac21bca408f8dc335a81aa597"}, + {file = "protobuf-4.23.4-cp37-cp37m-win32.whl", hash = "sha256:c3e0939433c40796ca4cfc0fac08af50b00eb66a40bbbc5dee711998fb0bbc1e"}, + {file = "protobuf-4.23.4-cp37-cp37m-win_amd64.whl", hash = "sha256:9053df6df8e5a76c84339ee4a9f5a2661ceee4a0dab019e8663c50ba324208b0"}, + {file = "protobuf-4.23.4-cp38-cp38-win32.whl", hash = "sha256:e1c915778d8ced71e26fcf43c0866d7499891bca14c4368448a82edc61fdbc70"}, + {file = "protobuf-4.23.4-cp38-cp38-win_amd64.whl", hash = "sha256:351cc90f7d10839c480aeb9b870a211e322bf05f6ab3f55fcb2f51331f80a7d2"}, + {file = "protobuf-4.23.4-cp39-cp39-win32.whl", hash = "sha256:6dd9b9940e3f17077e820b75851126615ee38643c2c5332aa7a359988820c720"}, + {file = "protobuf-4.23.4-cp39-cp39-win_amd64.whl", hash = "sha256:0a5759f5696895de8cc913f084e27fd4125e8fb0914bb729a17816a33819f474"}, + {file = "protobuf-4.23.4-py3-none-any.whl", hash = "sha256:e9d0be5bf34b275b9f87ba7407796556abeeba635455d036c7351f7c183ef8ff"}, + {file = "protobuf-4.23.4.tar.gz", hash = "sha256:ccd9430c0719dce806b93f89c91de7977304729e55377f872a92465d548329a9"}, +] + +[[package]] +name = "pulsar-client" +version = "3.2.0" +description = "Apache Pulsar Python client library" +optional = false +python-versions = "*" +files = [ + {file = "pulsar_client-3.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:da53bbe1903026ca1253d36a67bde0ae88513497091658aee8c5514c3e567483"}, + {file = "pulsar_client-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec595a71b7a25f1a72a1350efd6680a511b53253c3cac1911ba3d6c4d71fa64c"}, + {file = "pulsar_client-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3557c65463d74ec8d2864752389beb06761ab591dd134a164e0b1303c66719b"}, + {file = "pulsar_client-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d51dc76fec48217489bde95754ad58288c9389361de42f5a27d64e19840d27fb"}, + {file = "pulsar_client-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9ef2baf85311e0fe1b98342fdafbb93a1818a08ef999eaa524234fedf6f3b941"}, + {file = "pulsar_client-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:0928b02beda0c98e77178f4e30e962ddb8ee8c3320e4c7304a78b0796e976523"}, + {file = "pulsar_client-3.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:584f44b03474a69906be711a597a4d516263a55be31e49fc07be503dc8406821"}, + {file = "pulsar_client-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a637b9a3b30860c61e68a7b8ea650e0987d89e82f73b6a3df1ab662a6438fdda"}, + {file = "pulsar_client-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4a187fdc5febcf16f725179dcf2c476f31eeebd8353794d91754a3202dd5072"}, + {file = "pulsar_client-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5ff879f868cf1fd29db99f39fdb22b3ec3e749c648aca28526689756d922d1c5"}, + {file = "pulsar_client-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4a5f85d0cc414f739a5b51d843f213b54b2cd768c3a34f7c27cca410712b1f81"}, + {file = "pulsar_client-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:4fe748283848d829a80c0323558faeebea4c240d69fa58314ac90344f6999d17"}, + {file = "pulsar_client-3.2.0-cp37-cp37m-macosx_10_15_universal2.whl", hash = "sha256:06b91c26def86dbbc35be15257999fd8a2afbadf32983916ea3eef44f4d4cab4"}, + {file = "pulsar_client-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39ec897bc8d232e6b118793378fc662a844334b829a28a1b4ad1c5fe8d019135"}, + {file = "pulsar_client-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa37c96c25c1b5aff3bad0fd0194b385ec190b2c67a2f439ac91577f81ae18d3"}, + {file = "pulsar_client-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d49cdd4d1b7fc2e80d100acf14e6fd3898f6e099e403fc56ed22a690245b2fec"}, + {file = "pulsar_client-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0058ca3191fd24528ccf94dba6f12e4093831454a2597166f96900d0717271bf"}, + {file = "pulsar_client-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:cb69b0411008e0b56df51de0aab20aa1c1a12aef3019b9ceba89afbae1f07fe2"}, + {file = "pulsar_client-3.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:f7d33e99602352df7a30707eab4e5781654602212fb618928bffb5523f2bcf35"}, + {file = "pulsar_client-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad1ac15a175ca90555c681a4d0134568771c6346b97a172f3ef14006556a50ae"}, + {file = "pulsar_client-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369e08ef1d5cb196dd9271039928800f90b4701a9c9df90bc068b44260d2fb11"}, + {file = "pulsar_client-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a52ba2b6736a2ebeed31b590e75d417dda149e333461655860efa84d898a3eb4"}, + {file = "pulsar_client-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c801334b3b569b23976481a2922bcea0c6dd990fc26544658dd9e9c8f78ca36"}, + {file = "pulsar_client-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:cd01fd419280e9013d1655bc53662248be2656b623b1506480e1a985aa7dadd2"}, + {file = "pulsar_client-3.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:0abe54d84db76435a6cd88ce27610352cabc7efae9fa3e7f874e032ec2ca0b3f"}, + {file = "pulsar_client-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a1b6a806eb4819d8cbab1c4ae44ebf2110a94204a46c365f5757e1455252f2"}, + {file = "pulsar_client-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34ea2a6b75ae0e303d522e5b57c75a4ff03dc18b9bfc14151fb14dfaf5866f17"}, + {file = "pulsar_client-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:be6d3a9b2e1db3b6d1a7db5e13f7b4ed420674cf072cdb520fb004c4cd54c0af"}, + {file = "pulsar_client-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b6b733e6239ffb505f7084df0175baf9d0215f14d0a02e9bbd1fdf71a2d6ea17"}, + {file = "pulsar_client-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:edc2135d02b4793efb086edca0ffaa6e8ac9133961c2cdc17ae487e0a53da481"}, +] + +[package.dependencies] +certifi = "*" + +[package.extras] +all = ["apache-bookkeeper-client (>=4.16.1)", "fastavro (==1.7.3)", "grpcio (>=1.8.2)", "prometheus-client", "protobuf (>=3.6.1,<=3.20.3)", "ratelimit"] +avro = ["fastavro (==1.7.3)"] +functions = ["apache-bookkeeper-client (>=4.16.1)", "grpcio (>=1.8.2)", "prometheus-client", "protobuf (>=3.6.1,<=3.20.3)", "ratelimit"] + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] + +[[package]] +name = "pycryptodomex" +version = "3.18.0" +description = "Cryptographic library for Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pycryptodomex-3.18.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:160a39a708c36fa0b168ab79386dede588e62aec06eb505add870739329aecc6"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c2953afebf282a444c51bf4effe751706b4d0d63d7ca2cc51db21f902aa5b84e"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:ba95abd563b0d1b88401658665a260852a8e6c647026ee6a0a65589287681df8"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:192306cf881fe3467dda0e174a4f47bb3a8bb24b90c9cdfbdc248eec5fc0578c"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:f9ab5ef0718f6a8716695dea16d83b671b22c45e9c0c78fd807c32c0192e54b5"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-win32.whl", hash = "sha256:50308fcdbf8345e5ec224a5502b4215178bdb5e95456ead8ab1a69ffd94779cb"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-win_amd64.whl", hash = "sha256:4d9379c684efea80fdab02a3eb0169372bca7db13f9332cb67483b8dc8b67c37"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5594a125dae30d60e94f37797fc67ce3c744522de7992c7c360d02fdb34918f8"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:8ff129a5a0eb5ff16e45ca4fa70a6051da7f3de303c33b259063c19be0c43d35"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:3d9314ac785a5b75d5aaf924c5f21d6ca7e8df442e5cf4f0fefad4f6e284d422"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:f237278836dda412a325e9340ba2e6a84cb0f56b9244781e5b61f10b3905de88"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac614363a86cc53d8ba44b6c469831d1555947e69ab3276ae8d6edc219f570f7"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:302a8f37c224e7b5d72017d462a2be058e28f7be627bdd854066e16722d0fc0c"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:6421d23d6a648e83ba2670a352bcd978542dad86829209f59d17a3f087f4afef"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84e105787f5e5d36ec6a581ff37a1048d12e638688074b2a00bcf402f9aa1c2"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6875eb8666f68ddbd39097867325bd22771f595b4e2b0149739b5623c8bf899b"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:27072a494ce621cc7a9096bbf60ed66826bb94db24b49b7359509e7951033e74"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:1949e09ea49b09c36d11a951b16ff2a05a0ffe969dda1846e4686ee342fe8646"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6ed3606832987018615f68e8ed716a7065c09a0fe94afd7c9ca1b6777f0ac6eb"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-win32.whl", hash = "sha256:d56c9ec41258fd3734db9f5e4d2faeabe48644ba9ca23b18e1839b3bdf093222"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-win_amd64.whl", hash = "sha256:e00a4bacb83a2627e8210cb353a2e31f04befc1155db2976e5e239dd66482278"}, + {file = "pycryptodomex-3.18.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:2dc4eab20f4f04a2d00220fdc9258717b82d31913552e766d5f00282c031b70a"}, + {file = "pycryptodomex-3.18.0-pp27-pypy_73-win32.whl", hash = "sha256:75672205148bdea34669173366df005dbd52be05115e919551ee97171083423d"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bec6c80994d4e7a38312072f89458903b65ec99bed2d65aa4de96d997a53ea7a"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d35a8ffdc8b05e4b353ba281217c8437f02c57d7233363824e9d794cf753c419"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f0a46bee539dae4b3dfe37216f678769349576b0080fdbe431d19a02da42ff"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:71687eed47df7e965f6e0bf3cadef98f368d5221f0fb89d2132effe1a3e6a194"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:73d64b32d84cf48d9ec62106aa277dbe99ab5fbfd38c5100bc7bddd3beb569f7"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbdcce0a226d9205560a5936b05208c709b01d493ed8307792075dedfaaffa5f"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58fc0aceb9c961b9897facec9da24c6a94c5db04597ec832060f53d4d6a07196"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:215be2980a6b70704c10796dd7003eb4390e7be138ac6fb8344bf47e71a8d470"}, + {file = "pycryptodomex-3.18.0.tar.gz", hash = "sha256:3e3ecb5fe979e7c1bb0027e518340acf7ee60415d79295e5251d13c68dde576e"}, +] + +[[package]] +name = "pydantic" +version = "1.10.11" +description = "Data validation and settings management using python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ff44c5e89315b15ff1f7fdaf9853770b810936d6b01a7bcecaa227d2f8fe444f"}, + {file = "pydantic-1.10.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6c098d4ab5e2d5b3984d3cb2527e2d6099d3de85630c8934efcfdc348a9760e"}, + {file = "pydantic-1.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16928fdc9cb273c6af00d9d5045434c39afba5f42325fb990add2c241402d151"}, + {file = "pydantic-1.10.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0588788a9a85f3e5e9ebca14211a496409cb3deca5b6971ff37c556d581854e7"}, + {file = "pydantic-1.10.11-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e9baf78b31da2dc3d3f346ef18e58ec5f12f5aaa17ac517e2ffd026a92a87588"}, + {file = "pydantic-1.10.11-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:373c0840f5c2b5b1ccadd9286782852b901055998136287828731868027a724f"}, + {file = "pydantic-1.10.11-cp310-cp310-win_amd64.whl", hash = "sha256:c3339a46bbe6013ef7bdd2844679bfe500347ac5742cd4019a88312aa58a9847"}, + {file = "pydantic-1.10.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:08a6c32e1c3809fbc49debb96bf833164f3438b3696abf0fbeceb417d123e6eb"}, + {file = "pydantic-1.10.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a451ccab49971af043ec4e0d207cbc8cbe53dbf148ef9f19599024076fe9c25b"}, + {file = "pydantic-1.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b02d24f7b2b365fed586ed73582c20f353a4c50e4be9ba2c57ab96f8091ddae"}, + {file = "pydantic-1.10.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f34739a89260dfa420aa3cbd069fbcc794b25bbe5c0a214f8fb29e363484b66"}, + {file = "pydantic-1.10.11-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e297897eb4bebde985f72a46a7552a7556a3dd11e7f76acda0c1093e3dbcf216"}, + {file = "pydantic-1.10.11-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d185819a7a059550ecb85d5134e7d40f2565f3dd94cfd870132c5f91a89cf58c"}, + {file = "pydantic-1.10.11-cp311-cp311-win_amd64.whl", hash = "sha256:4400015f15c9b464c9db2d5d951b6a780102cfa5870f2c036d37c23b56f7fc1b"}, + {file = "pydantic-1.10.11-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2417de68290434461a266271fc57274a138510dca19982336639484c73a07af6"}, + {file = "pydantic-1.10.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:331c031ba1554b974c98679bd0780d89670d6fd6f53f5d70b10bdc9addee1713"}, + {file = "pydantic-1.10.11-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8268a735a14c308923e8958363e3a3404f6834bb98c11f5ab43251a4e410170c"}, + {file = "pydantic-1.10.11-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:44e51ba599c3ef227e168424e220cd3e544288c57829520dc90ea9cb190c3248"}, + {file = "pydantic-1.10.11-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d7781f1d13b19700b7949c5a639c764a077cbbdd4322ed505b449d3ca8edcb36"}, + {file = "pydantic-1.10.11-cp37-cp37m-win_amd64.whl", hash = "sha256:7522a7666157aa22b812ce14c827574ddccc94f361237ca6ea8bb0d5c38f1629"}, + {file = "pydantic-1.10.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc64eab9b19cd794a380179ac0e6752335e9555d214cfcb755820333c0784cb3"}, + {file = "pydantic-1.10.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8dc77064471780262b6a68fe67e013298d130414d5aaf9b562c33987dbd2cf4f"}, + {file = "pydantic-1.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe429898f2c9dd209bd0632a606bddc06f8bce081bbd03d1c775a45886e2c1cb"}, + {file = "pydantic-1.10.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:192c608ad002a748e4a0bed2ddbcd98f9b56df50a7c24d9a931a8c5dd053bd3d"}, + {file = "pydantic-1.10.11-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ef55392ec4bb5721f4ded1096241e4b7151ba6d50a50a80a2526c854f42e6a2f"}, + {file = "pydantic-1.10.11-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:41e0bb6efe86281623abbeeb0be64eab740c865388ee934cd3e6a358784aca6e"}, + {file = "pydantic-1.10.11-cp38-cp38-win_amd64.whl", hash = "sha256:265a60da42f9f27e0b1014eab8acd3e53bd0bad5c5b4884e98a55f8f596b2c19"}, + {file = "pydantic-1.10.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:469adf96c8e2c2bbfa655fc7735a2a82f4c543d9fee97bd113a7fb509bf5e622"}, + {file = "pydantic-1.10.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e6cbfbd010b14c8a905a7b10f9fe090068d1744d46f9e0c021db28daeb8b6de1"}, + {file = "pydantic-1.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abade85268cc92dff86d6effcd917893130f0ff516f3d637f50dadc22ae93999"}, + {file = "pydantic-1.10.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9738b0f2e6c70f44ee0de53f2089d6002b10c33264abee07bdb5c7f03038303"}, + {file = "pydantic-1.10.11-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:787cf23e5a0cde753f2eabac1b2e73ae3844eb873fd1f5bdbff3048d8dbb7604"}, + {file = "pydantic-1.10.11-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:174899023337b9fc685ac8adaa7b047050616136ccd30e9070627c1aaab53a13"}, + {file = "pydantic-1.10.11-cp39-cp39-win_amd64.whl", hash = "sha256:1954f8778489a04b245a1e7b8b22a9d3ea8ef49337285693cf6959e4b757535e"}, + {file = "pydantic-1.10.11-py3-none-any.whl", hash = "sha256:008c5e266c8aada206d0627a011504e14268a62091450210eda7c07fabe6963e"}, + {file = "pydantic-1.10.11.tar.gz", hash = "sha256:f66d479cf7eb331372c470614be6511eae96f1f120344c25f3f9bb59fb1b5528"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "pydub" +version = "0.25.1" +description = "Manipulate audio with an simple and easy high level interface" +optional = false +python-versions = "*" +files = [ + {file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"}, + {file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"}, +] + +[[package]] +name = "pygments" +version = "2.16.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, +] + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pymupdf" +version = "1.22.5" +description = "Python bindings for the PDF toolkit and renderer MuPDF" +optional = false +python-versions = ">=3.7" +files = [ + {file = "PyMuPDF-1.22.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:640b8e4cb116dd87a3c854e49808a4f63625e663a7bc5b1efc971db5b4775367"}, + {file = "PyMuPDF-1.22.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:17efbbf0e2d99d24cfc302fac512928eb294f10b7b67d597d04dafd012812e4e"}, + {file = "PyMuPDF-1.22.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bc9b9bf0f2beea3911750d2d66247608be8cbad33b7a050cacec9e4c105a1ca"}, + {file = "PyMuPDF-1.22.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7734a32a91eea4b502b8f9d2915cdba0a372226e14fb983876d763110dcefef"}, + {file = "PyMuPDF-1.22.5-cp310-cp310-win32.whl", hash = "sha256:c2fd70ca9961f7871810dce1b7d0a42a69eb8ff2d786621123952bd505a6867e"}, + {file = "PyMuPDF-1.22.5-cp310-cp310-win_amd64.whl", hash = "sha256:add310c96df6933cfb4ce3821c9c7b5c133e8aa609a4c9416e1c7af546163488"}, + {file = "PyMuPDF-1.22.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:017aaba511526facfc928e9d95d2c10d28a2821b05b9039bf422031a7da8584e"}, + {file = "PyMuPDF-1.22.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6fe5e44a14864d921fb96669a82f9635846806176f77f1d73c61feb84ebf4d84"}, + {file = "PyMuPDF-1.22.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e74d766f79e41e10c51865233042ab2cc4612ca7942812dca0603f4d0f8f73d"}, + {file = "PyMuPDF-1.22.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe8175452fcc99a0af6429d8acd87682a3a70c5879d73532c7327f71ce508a35"}, + {file = "PyMuPDF-1.22.5-cp311-cp311-win32.whl", hash = "sha256:42f59f4999d7f8b35c850050bd965e98c081a7d9b92d5f9dcf30203b30d06876"}, + {file = "PyMuPDF-1.22.5-cp311-cp311-win_amd64.whl", hash = "sha256:3d71c47aa14b73f2df7d03be8c547a05df6c6898d8c63a0f752b26f206eefd3c"}, + {file = "PyMuPDF-1.22.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4bcad7ea4b3ab82c46fe8da27ec738d38c213ed9935ef67d98ed09574d9a234e"}, + {file = "PyMuPDF-1.22.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b04a83ddcb3f7c935c75a1f7f6050c85fe4062a2ea64c47ee6bda788d037761"}, + {file = "PyMuPDF-1.22.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d02ee28663077f15d529b04d27588b174fa937daf73a294df279bbf70c468f5c"}, + {file = "PyMuPDF-1.22.5-cp37-cp37m-win32.whl", hash = "sha256:411fc35f6dae16ec940b6b0406e84be6ff29f93b30908ea1427e2a4bd594d4ba"}, + {file = "PyMuPDF-1.22.5-cp37-cp37m-win_amd64.whl", hash = "sha256:7c8c0f686865e330de90b93d53b100f7f07c2f10f5449ceb721121f459f7cc4a"}, + {file = "PyMuPDF-1.22.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:64ae9f81b8fe0a3e6386a24887a92736793479c5918ecac3b7deac2d02abf1f2"}, + {file = "PyMuPDF-1.22.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7562436dadf8382e59ac3739fbbf9d5b2d807fafc7f28cb884863430e0de6505"}, + {file = "PyMuPDF-1.22.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c22046e5f2cf0d72f9809a967340db1b238fefe58322896bc7c3f3d1d10b42"}, + {file = "PyMuPDF-1.22.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa601dc4116c17a6b09255b031b5a1891e3ac18b50ec536452a725a6b75db8d"}, + {file = "PyMuPDF-1.22.5-cp38-cp38-win32.whl", hash = "sha256:3d0fe749e648f5245059d5f771fb50c1a988a1d2e82268b56377b2176a9fee5d"}, + {file = "PyMuPDF-1.22.5-cp38-cp38-win_amd64.whl", hash = "sha256:4fbc5bfe6ecc53929e3fd0db9846fb7da084ddb4b1fc1063857245fa783974d9"}, + {file = "PyMuPDF-1.22.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:87b36e0797ab7fbb7ef594c7a6e0febc7ffb4101a42ea796726a8288391a3769"}, + {file = "PyMuPDF-1.22.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:01119edb7e4c3dd8c154d237b8ac927bd359eea8d31468f9a89aa308b5bca04e"}, + {file = "PyMuPDF-1.22.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fde02fcb387863873b56730f4b9f65515d87c92c12299f0f0a74b3ccdfe35062"}, + {file = "PyMuPDF-1.22.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30c55814bbf6461aef9b34cb524d1d14857d5ec6ccfbb78ecfb1d07dfc40eeb8"}, + {file = "PyMuPDF-1.22.5-cp39-cp39-win32.whl", hash = "sha256:0542178c3a399282903705a8cc298e7f33f4770605e0a9db344aff5d375bcf0b"}, + {file = "PyMuPDF-1.22.5-cp39-cp39-win_amd64.whl", hash = "sha256:f8ca46a6987e14f58ec8dfda2d2376bacd113c1fec5f58bebf90838bb4408ab9"}, + {file = "PyMuPDF-1.22.5.tar.gz", hash = "sha256:5ec8d5106752297529d0d68d46cfc4ce99914aabd99be843f1599a1842d63fe9"}, +] + +[[package]] +name = "pypdf" +version = "3.12.2" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pypdf-3.12.2-py3-none-any.whl", hash = "sha256:75c56b5e8ac8c61f6d8189d6bc839c1c2d1fe64626f4bab5d954e82c38652162"}, + {file = "pypdf-3.12.2.tar.gz", hash = "sha256:8657d56fd4f64540b9a1e5285845543534321484f1276af893eead7bd00598e6"}, +] + +[package.extras] +crypto = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow", "PyCryptodome"] +image = ["Pillow"] + +[[package]] +name = "pyreadline3" +version = "3.4.1" +description = "A python implementation of GNU readline." +optional = false +python-versions = "*" +files = [ + {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, + {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, +] + +[[package]] +name = "pytest" +version = "7.4.0" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, + {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +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.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, + {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "pytz" +version = "2023.3" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, + {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "regex" +version = "2023.6.3" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.6" +files = [ + {file = "regex-2023.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:824bf3ac11001849aec3fa1d69abcb67aac3e150a933963fb12bda5151fe1bfd"}, + {file = "regex-2023.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:05ed27acdf4465c95826962528f9e8d41dbf9b1aa8531a387dee6ed215a3e9ef"}, + {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b49c764f88a79160fa64f9a7b425620e87c9f46095ef9c9920542ab2495c8bc"}, + {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8e3f1316c2293e5469f8f09dc2d76efb6c3982d3da91ba95061a7e69489a14ef"}, + {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43e1dd9d12df9004246bacb79a0e5886b3b6071b32e41f83b0acbf293f820ee8"}, + {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4959e8bcbfda5146477d21c3a8ad81b185cd252f3d0d6e4724a5ef11c012fb06"}, + {file = "regex-2023.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af4dd387354dc83a3bff67127a124c21116feb0d2ef536805c454721c5d7993d"}, + {file = "regex-2023.6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2239d95d8e243658b8dbb36b12bd10c33ad6e6933a54d36ff053713f129aa536"}, + {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:890e5a11c97cf0d0c550eb661b937a1e45431ffa79803b942a057c4fb12a2da2"}, + {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a8105e9af3b029f243ab11ad47c19b566482c150c754e4c717900a798806b222"}, + {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:25be746a8ec7bc7b082783216de8e9473803706723b3f6bef34b3d0ed03d57e2"}, + {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:3676f1dd082be28b1266c93f618ee07741b704ab7b68501a173ce7d8d0d0ca18"}, + {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:10cb847aeb1728412c666ab2e2000ba6f174f25b2bdc7292e7dd71b16db07568"}, + {file = "regex-2023.6.3-cp310-cp310-win32.whl", hash = "sha256:dbbbfce33cd98f97f6bffb17801b0576e653f4fdb1d399b2ea89638bc8d08ae1"}, + {file = "regex-2023.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:c5f8037000eb21e4823aa485149f2299eb589f8d1fe4b448036d230c3f4e68e0"}, + {file = "regex-2023.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c123f662be8ec5ab4ea72ea300359023a5d1df095b7ead76fedcd8babbedf969"}, + {file = "regex-2023.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9edcbad1f8a407e450fbac88d89e04e0b99a08473f666a3f3de0fd292badb6aa"}, + {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcba6dae7de533c876255317c11f3abe4907ba7d9aa15d13e3d9710d4315ec0e"}, + {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29cdd471ebf9e0f2fb3cac165efedc3c58db841d83a518b082077e612d3ee5df"}, + {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12b74fbbf6cbbf9dbce20eb9b5879469e97aeeaa874145517563cca4029db65c"}, + {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c29ca1bd61b16b67be247be87390ef1d1ef702800f91fbd1991f5c4421ebae8"}, + {file = "regex-2023.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77f09bc4b55d4bf7cc5eba785d87001d6757b7c9eec237fe2af57aba1a071d9"}, + {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ea353ecb6ab5f7e7d2f4372b1e779796ebd7b37352d290096978fea83c4dba0c"}, + {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:10590510780b7541969287512d1b43f19f965c2ece6c9b1c00fc367b29d8dce7"}, + {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e2fbd6236aae3b7f9d514312cdb58e6494ee1c76a9948adde6eba33eb1c4264f"}, + {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:6b2675068c8b56f6bfd5a2bda55b8accbb96c02fd563704732fd1c95e2083461"}, + {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74419d2b50ecb98360cfaa2974da8689cb3b45b9deff0dcf489c0d333bcc1477"}, + {file = "regex-2023.6.3-cp311-cp311-win32.whl", hash = "sha256:fb5ec16523dc573a4b277663a2b5a364e2099902d3944c9419a40ebd56a118f9"}, + {file = "regex-2023.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:09e4a1a6acc39294a36b7338819b10baceb227f7f7dbbea0506d419b5a1dd8af"}, + {file = "regex-2023.6.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0654bca0cdf28a5956c83839162692725159f4cda8d63e0911a2c0dc76166525"}, + {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:463b6a3ceb5ca952e66550a4532cef94c9a0c80dc156c4cc343041951aec1697"}, + {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87b2a5bb5e78ee0ad1de71c664d6eb536dc3947a46a69182a90f4410f5e3f7dd"}, + {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6343c6928282c1f6a9db41f5fd551662310e8774c0e5ebccb767002fcf663ca9"}, + {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6192d5af2ccd2a38877bfef086d35e6659566a335b1492786ff254c168b1693"}, + {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74390d18c75054947e4194019077e243c06fbb62e541d8817a0fa822ea310c14"}, + {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:742e19a90d9bb2f4a6cf2862b8b06dea5e09b96c9f2df1779e53432d7275331f"}, + {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8abbc5d54ea0ee80e37fef009e3cec5dafd722ed3c829126253d3e22f3846f1e"}, + {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:c2b867c17a7a7ae44c43ebbeb1b5ff406b3e8d5b3e14662683e5e66e6cc868d3"}, + {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:d831c2f8ff278179705ca59f7e8524069c1a989e716a1874d6d1aab6119d91d1"}, + {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:ee2d1a9a253b1729bb2de27d41f696ae893507c7db224436abe83ee25356f5c1"}, + {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:61474f0b41fe1a80e8dfa70f70ea1e047387b7cd01c85ec88fa44f5d7561d787"}, + {file = "regex-2023.6.3-cp36-cp36m-win32.whl", hash = "sha256:0b71e63226e393b534105fcbdd8740410dc6b0854c2bfa39bbda6b0d40e59a54"}, + {file = "regex-2023.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bbb02fd4462f37060122e5acacec78e49c0fbb303c30dd49c7f493cf21fc5b27"}, + {file = "regex-2023.6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b862c2b9d5ae38a68b92e215b93f98d4c5e9454fa36aae4450f61dd33ff48487"}, + {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:976d7a304b59ede34ca2921305b57356694f9e6879db323fd90a80f865d355a3"}, + {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:83320a09188e0e6c39088355d423aa9d056ad57a0b6c6381b300ec1a04ec3d16"}, + {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9427a399501818a7564f8c90eced1e9e20709ece36be701f394ada99890ea4b3"}, + {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178bbc1b2ec40eaca599d13c092079bf529679bf0371c602edaa555e10b41c3"}, + {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:837328d14cde912af625d5f303ec29f7e28cdab588674897baafaf505341f2fc"}, + {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d44dc13229905ae96dd2ae2dd7cebf824ee92bc52e8cf03dcead37d926da019"}, + {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d54af539295392611e7efbe94e827311eb8b29668e2b3f4cadcfe6f46df9c777"}, + {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7117d10690c38a622e54c432dfbbd3cbd92f09401d622902c32f6d377e2300ee"}, + {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bb60b503ec8a6e4e3e03a681072fa3a5adcbfa5479fa2d898ae2b4a8e24c4591"}, + {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:65ba8603753cec91c71de423a943ba506363b0e5c3fdb913ef8f9caa14b2c7e0"}, + {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:271f0bdba3c70b58e6f500b205d10a36fb4b58bd06ac61381b68de66442efddb"}, + {file = "regex-2023.6.3-cp37-cp37m-win32.whl", hash = "sha256:9beb322958aaca059f34975b0df135181f2e5d7a13b84d3e0e45434749cb20f7"}, + {file = "regex-2023.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fea75c3710d4f31389eed3c02f62d0b66a9da282521075061ce875eb5300cf23"}, + {file = "regex-2023.6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f56fcb7ff7bf7404becdfc60b1e81a6d0561807051fd2f1860b0d0348156a07"}, + {file = "regex-2023.6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d2da3abc88711bce7557412310dfa50327d5769a31d1c894b58eb256459dc289"}, + {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a99b50300df5add73d307cf66abea093304a07eb017bce94f01e795090dea87c"}, + {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5708089ed5b40a7b2dc561e0c8baa9535b77771b64a8330b684823cfd5116036"}, + {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:687ea9d78a4b1cf82f8479cab23678aff723108df3edeac098e5b2498879f4a7"}, + {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d3850beab9f527f06ccc94b446c864059c57651b3f911fddb8d9d3ec1d1b25d"}, + {file = "regex-2023.6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8915cc96abeb8983cea1df3c939e3c6e1ac778340c17732eb63bb96247b91d2"}, + {file = "regex-2023.6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:841d6e0e5663d4c7b4c8099c9997be748677d46cbf43f9f471150e560791f7ff"}, + {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9edce5281f965cf135e19840f4d93d55b3835122aa76ccacfd389e880ba4cf82"}, + {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b956231ebdc45f5b7a2e1f90f66a12be9610ce775fe1b1d50414aac1e9206c06"}, + {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:36efeba71c6539d23c4643be88295ce8c82c88bbd7c65e8a24081d2ca123da3f"}, + {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:cf67ca618b4fd34aee78740bea954d7c69fdda419eb208c2c0c7060bb822d747"}, + {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b4598b1897837067a57b08147a68ac026c1e73b31ef6e36deeeb1fa60b2933c9"}, + {file = "regex-2023.6.3-cp38-cp38-win32.whl", hash = "sha256:f415f802fbcafed5dcc694c13b1292f07fe0befdb94aa8a52905bd115ff41e88"}, + {file = "regex-2023.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:d4f03bb71d482f979bda92e1427f3ec9b220e62a7dd337af0aa6b47bf4498f72"}, + {file = "regex-2023.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ccf91346b7bd20c790310c4147eee6ed495a54ddb6737162a36ce9dbef3e4751"}, + {file = "regex-2023.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b28f5024a3a041009eb4c333863d7894d191215b39576535c6734cd88b0fcb68"}, + {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0bb18053dfcfed432cc3ac632b5e5e5c5b7e55fb3f8090e867bfd9b054dbcbf"}, + {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a5bfb3004f2144a084a16ce19ca56b8ac46e6fd0651f54269fc9e230edb5e4a"}, + {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c6b48d0fa50d8f4df3daf451be7f9689c2bde1a52b1225c5926e3f54b6a9ed1"}, + {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:051da80e6eeb6e239e394ae60704d2b566aa6a7aed6f2890a7967307267a5dc6"}, + {file = "regex-2023.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4c3b7fa4cdaa69268748665a1a6ff70c014d39bb69c50fda64b396c9116cf77"}, + {file = "regex-2023.6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:457b6cce21bee41ac292d6753d5e94dcbc5c9e3e3a834da285b0bde7aa4a11e9"}, + {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aad51907d74fc183033ad796dd4c2e080d1adcc4fd3c0fd4fd499f30c03011cd"}, + {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0385e73da22363778ef2324950e08b689abdf0b108a7d8decb403ad7f5191938"}, + {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c6a57b742133830eec44d9b2290daf5cbe0a2f1d6acee1b3c7b1c7b2f3606df7"}, + {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3e5219bf9e75993d73ab3d25985c857c77e614525fac9ae02b1bebd92f7cecac"}, + {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e5087a3c59eef624a4591ef9eaa6e9a8d8a94c779dade95d27c0bc24650261cd"}, + {file = "regex-2023.6.3-cp39-cp39-win32.whl", hash = "sha256:20326216cc2afe69b6e98528160b225d72f85ab080cbdf0b11528cbbaba2248f"}, + {file = "regex-2023.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:bdff5eab10e59cf26bc479f565e25ed71a7d041d1ded04ccf9aee1d9f208487a"}, + {file = "regex-2023.6.3.tar.gz", hash = "sha256:72d1a25bf36d2050ceb35b517afe13864865268dfb45910e2e17a84be6cbfeb0"}, +] + +[[package]] +name = "replicate" +version = "0.9.0" +description = "Python client for Replicate" +optional = false +python-versions = ">=3.8" +files = [ + {file = "replicate-0.9.0-py3-none-any.whl", hash = "sha256:2b9f4b6fa6582bfa1eeff595da7f6023ab9edd242c41877556d5dd8436253edc"}, + {file = "replicate-0.9.0.tar.gz", hash = "sha256:58b8bd208c1ef2b082eeb5647adff6786a093743f806a7ebd61feb6744fdfba2"}, +] + +[package.dependencies] +packaging = "*" +pydantic = ">1" +requests = ">2" + +[package.extras] +dev = ["black", "mypy", "pytest", "responses", "ruff"] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "requests-mock" +version = "1.11.0" +description = "Mock out responses from the requests package" +optional = false +python-versions = "*" +files = [ + {file = "requests-mock-1.11.0.tar.gz", hash = "sha256:ef10b572b489a5f28e09b708697208c4a3b2b89ef80a9f01584340ea357ec3c4"}, + {file = "requests_mock-1.11.0-py2.py3-none-any.whl", hash = "sha256:f7fae383f228633f6bececebdab236c478ace2284d6292c6e7e2867b9ab74d15"}, +] + +[package.dependencies] +requests = ">=2.3,<3" +six = "*" + +[package.extras] +fixture = ["fixtures"] +test = ["fixtures", "mock", "purl", "pytest", "requests-futures", "sphinx", "testtools"] + +[[package]] +name = "rich" +version = "13.5.2" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.5.2-py3-none-any.whl", hash = "sha256:146a90b3b6b47cac4a73c12866a499e9817426423f57c5a66949c086191a8808"}, + {file = "rich-13.5.2.tar.gz", hash = "sha256:fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "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.0" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "soupsieve" +version = "2.4.1" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "soupsieve-2.4.1-py3-none-any.whl", hash = "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8"}, + {file = "soupsieve-2.4.1.tar.gz", hash = "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.19" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.19-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9deaae357edc2091a9ed5d25e9ee8bba98bcfae454b3911adeaf159c2e9ca9e3"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0bf0fd65b50a330261ec7fe3d091dfc1c577483c96a9fa1e4323e932961aa1b5"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d90ccc15ba1baa345796a8fb1965223ca7ded2d235ccbef80a47b85cea2d71a"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb4e688f6784427e5f9479d1a13617f573de8f7d4aa713ba82813bcd16e259d1"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:584f66e5e1979a7a00f4935015840be627e31ca29ad13f49a6e51e97a3fb8cae"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c69ce70047b801d2aba3e5ff3cba32014558966109fecab0c39d16c18510f15"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-win32.whl", hash = "sha256:96f0463573469579d32ad0c91929548d78314ef95c210a8115346271beeeaaa2"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-win_amd64.whl", hash = "sha256:22bafb1da60c24514c141a7ff852b52f9f573fb933b1e6b5263f0daa28ce6db9"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d6894708eeb81f6d8193e996257223b6bb4041cb05a17cd5cf373ed836ef87a2"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8f2afd1aafded7362b397581772c670f20ea84d0a780b93a1a1529da7c3d369"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15afbf5aa76f2241184c1d3b61af1a72ba31ce4161013d7cb5c4c2fca04fd6e"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fc05b59142445a4efb9c1fd75c334b431d35c304b0e33f4fa0ff1ea4890f92e"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5831138f0cc06b43edf5f99541c64adf0ab0d41f9a4471fd63b54ae18399e4de"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3afa8a21a9046917b3a12ffe016ba7ebe7a55a6fc0c7d950beb303c735c3c3ad"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-win32.whl", hash = "sha256:c896d4e6ab2eba2afa1d56be3d0b936c56d4666e789bfc59d6ae76e9fcf46145"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-win_amd64.whl", hash = "sha256:024d2f67fb3ec697555e48caeb7147cfe2c08065a4f1a52d93c3d44fc8e6ad1c"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:89bc2b374ebee1a02fd2eae6fd0570b5ad897ee514e0f84c5c137c942772aa0c"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd4d410a76c3762511ae075d50f379ae09551d92525aa5bb307f8343bf7c2c12"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f469f15068cd8351826df4080ffe4cc6377c5bf7d29b5a07b0e717dddb4c7ea2"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cda283700c984e699e8ef0fcc5c61f00c9d14b6f65a4f2767c97242513fcdd84"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:43699eb3f80920cc39a380c159ae21c8a8924fe071bccb68fc509e099420b148"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-win32.whl", hash = "sha256:61ada5831db36d897e28eb95f0f81814525e0d7927fb51145526c4e63174920b"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-win_amd64.whl", hash = "sha256:57d100a421d9ab4874f51285c059003292433c648df6abe6c9c904e5bd5b0828"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:16a310f5bc75a5b2ce7cb656d0e76eb13440b8354f927ff15cbaddd2523ee2d1"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf7b5e3856cbf1876da4e9d9715546fa26b6e0ba1a682d5ed2fc3ca4c7c3ec5b"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e7b69d9ced4b53310a87117824b23c509c6fc1f692aa7272d47561347e133b6"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9eb4575bfa5afc4b066528302bf12083da3175f71b64a43a7c0badda2be365"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6b54d1ad7a162857bb7c8ef689049c7cd9eae2f38864fc096d62ae10bc100c7d"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5d6afc41ca0ecf373366fd8e10aee2797128d3ae45eb8467b19da4899bcd1ee0"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-win32.whl", hash = "sha256:430614f18443b58ceb9dedec323ecddc0abb2b34e79d03503b5a7579cd73a531"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-win_amd64.whl", hash = "sha256:eb60699de43ba1a1f77363f563bb2c652f7748127ba3a774f7cf2c7804aa0d3d"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a752b7a9aceb0ba173955d4f780c64ee15a1a991f1c52d307d6215c6c73b3a4c"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7351c05db355da112e056a7b731253cbeffab9dfdb3be1e895368513c7d70106"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa51ce4aea583b0c6b426f4b0563d3535c1c75986c4373a0987d84d22376585b"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae7473a67cd82a41decfea58c0eac581209a0aa30f8bc9190926fbf628bb17f7"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:851a37898a8a39783aab603c7348eb5b20d83c76a14766a43f56e6ad422d1ec8"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539010665c90e60c4a1650afe4ab49ca100c74e6aef882466f1de6471d414be7"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-win32.whl", hash = "sha256:f82c310ddf97b04e1392c33cf9a70909e0ae10a7e2ddc1d64495e3abdc5d19fb"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-win_amd64.whl", hash = "sha256:8e712cfd2e07b801bc6b60fdf64853bc2bd0af33ca8fa46166a23fe11ce0dbb0"}, + {file = "SQLAlchemy-2.0.19-py3-none-any.whl", hash = "sha256:314145c1389b021a9ad5aa3a18bac6f5d939f9087d7fc5443be28cba19d2c972"}, + {file = "SQLAlchemy-2.0.19.tar.gz", hash = "sha256:77a14fa20264af73ddcdb1e2b9c5a829b8cc6b8304d0f093271980e36c200a3f"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\""} +typing-extensions = ">=4.2.0" + +[package.extras] +aiomysql = ["aiomysql", "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 (>=7)"] +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" + +[package.extras] +full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"] + +[[package]] +name = "sympy" +version = "1.12" +description = "Computer algebra system (CAS) in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5"}, + {file = "sympy-1.12.tar.gz", hash = "sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"}, +] + +[package.dependencies] +mpmath = ">=0.19" + +[[package]] +name = "tenacity" +version = "8.2.2" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.6" +files = [ + {file = "tenacity-8.2.2-py3-none-any.whl", hash = "sha256:2f277afb21b851637e8f52e6a613ff08734c347dc19ade928e519d7d2d8569b0"}, + {file = "tenacity-8.2.2.tar.gz", hash = "sha256:43af037822bd0029025877f3b2d97cc4d7bb0c2991000a3d59d71517c5c969e0"}, +] + +[package.extras] +doc = ["reno", "sphinx", "tornado (>=4.5)"] + +[[package]] +name = "tiktoken" +version = "0.4.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tiktoken-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:176cad7f053d2cc82ce7e2a7c883ccc6971840a4b5276740d0b732a2b2011f8a"}, + {file = "tiktoken-0.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:450d504892b3ac80207700266ee87c932df8efea54e05cefe8613edc963c1285"}, + {file = "tiktoken-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00d662de1e7986d129139faf15e6a6ee7665ee103440769b8dedf3e7ba6ac37f"}, + {file = "tiktoken-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5727d852ead18b7927b8adf558a6f913a15c7766725b23dbe21d22e243041b28"}, + {file = "tiktoken-0.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c06cd92b09eb0404cedce3702fa866bf0d00e399439dad3f10288ddc31045422"}, + {file = "tiktoken-0.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9ec161e40ed44e4210d3b31e2ff426b4a55e8254f1023e5d2595cb60044f8ea6"}, + {file = "tiktoken-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:1e8fa13cf9889d2c928b9e258e9dbbbf88ab02016e4236aae76e3b4f82dd8288"}, + {file = "tiktoken-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bb2341836b725c60d0ab3c84970b9b5f68d4b733a7bcb80fb25967e5addb9920"}, + {file = "tiktoken-0.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ca30367ad750ee7d42fe80079d3092bd35bb266be7882b79c3bd159b39a17b0"}, + {file = "tiktoken-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dc3df19ddec79435bb2a94ee46f4b9560d0299c23520803d851008445671197"}, + {file = "tiktoken-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d980fa066e962ef0f4dad0222e63a484c0c993c7a47c7dafda844ca5aded1f3"}, + {file = "tiktoken-0.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:329f548a821a2f339adc9fbcfd9fc12602e4b3f8598df5593cfc09839e9ae5e4"}, + {file = "tiktoken-0.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b1a038cee487931a5caaef0a2e8520e645508cde21717eacc9af3fbda097d8bb"}, + {file = "tiktoken-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:08efa59468dbe23ed038c28893e2a7158d8c211c3dd07f2bbc9a30e012512f1d"}, + {file = "tiktoken-0.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f3020350685e009053829c1168703c346fb32c70c57d828ca3742558e94827a9"}, + {file = "tiktoken-0.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba16698c42aad8190e746cd82f6a06769ac7edd415d62ba027ea1d99d958ed93"}, + {file = "tiktoken-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c15d9955cc18d0d7ffcc9c03dc51167aedae98542238b54a2e659bd25fe77ed"}, + {file = "tiktoken-0.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64e1091c7103100d5e2c6ea706f0ec9cd6dc313e6fe7775ef777f40d8c20811e"}, + {file = "tiktoken-0.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e87751b54eb7bca580126353a9cf17a8a8eaadd44edaac0e01123e1513a33281"}, + {file = "tiktoken-0.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e063b988b8ba8b66d6cc2026d937557437e79258095f52eaecfafb18a0a10c03"}, + {file = "tiktoken-0.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:9c6dd439e878172dc163fced3bc7b19b9ab549c271b257599f55afc3a6a5edef"}, + {file = "tiktoken-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8d1d97f83697ff44466c6bef5d35b6bcdb51e0125829a9c0ed1e6e39fb9a08fb"}, + {file = "tiktoken-0.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b6bce7c68aa765f666474c7c11a7aebda3816b58ecafb209afa59c799b0dd2d"}, + {file = "tiktoken-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a73286c35899ca51d8d764bc0b4d60838627ce193acb60cc88aea60bddec4fd"}, + {file = "tiktoken-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0394967d2236a60fd0aacef26646b53636423cc9c70c32f7c5124ebe86f3093"}, + {file = "tiktoken-0.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:dae2af6f03ecba5f679449fa66ed96585b2fa6accb7fd57d9649e9e398a94f44"}, + {file = "tiktoken-0.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:55e251b1da3c293432179cf7c452cfa35562da286786be5a8b1ee3405c2b0dd2"}, + {file = "tiktoken-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:c835d0ee1f84a5aa04921717754eadbc0f0a56cf613f78dfc1cf9ad35f6c3fea"}, + {file = "tiktoken-0.4.0.tar.gz", hash = "sha256:59b20a819969735b48161ced9b92f05dc4519c17be4015cfb73b65270a243620"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tokenizers" +version = "0.13.3" +description = "Fast and Customizable Tokenizers" +optional = false +python-versions = "*" +files = [ + {file = "tokenizers-0.13.3-cp310-cp310-macosx_10_11_x86_64.whl", hash = "sha256:f3835c5be51de8c0a092058a4d4380cb9244fb34681fd0a295fbf0a52a5fdf33"}, + {file = "tokenizers-0.13.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4ef4c3e821730f2692489e926b184321e887f34fb8a6b80b8096b966ba663d07"}, + {file = "tokenizers-0.13.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5fd1a6a25353e9aa762e2aae5a1e63883cad9f4e997c447ec39d071020459bc"}, + {file = "tokenizers-0.13.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee0b1b311d65beab83d7a41c56a1e46ab732a9eed4460648e8eb0bd69fc2d059"}, + {file = "tokenizers-0.13.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ef4215284df1277dadbcc5e17d4882bda19f770d02348e73523f7e7d8b8d396"}, + {file = "tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4d53976079cff8a033f778fb9adca2d9d69d009c02fa2d71a878b5f3963ed30"}, + {file = "tokenizers-0.13.3-cp310-cp310-win32.whl", hash = "sha256:1f0e3b4c2ea2cd13238ce43548959c118069db7579e5d40ec270ad77da5833ce"}, + {file = "tokenizers-0.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:89649c00d0d7211e8186f7a75dfa1db6996f65edce4b84821817eadcc2d3c79e"}, + {file = "tokenizers-0.13.3-cp311-cp311-macosx_10_11_universal2.whl", hash = "sha256:56b726e0d2bbc9243872b0144515ba684af5b8d8cd112fb83ee1365e26ec74c8"}, + {file = "tokenizers-0.13.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:cc5c022ce692e1f499d745af293ab9ee6f5d92538ed2faf73f9708c89ee59ce6"}, + {file = "tokenizers-0.13.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f55c981ac44ba87c93e847c333e58c12abcbb377a0c2f2ef96e1a266e4184ff2"}, + {file = "tokenizers-0.13.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f247eae99800ef821a91f47c5280e9e9afaeed9980fc444208d5aa6ba69ff148"}, + {file = "tokenizers-0.13.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b3e3215d048e94f40f1c95802e45dcc37c5b05eb46280fc2ccc8cd351bff839"}, + {file = "tokenizers-0.13.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ba2b0bf01777c9b9bc94b53764d6684554ce98551fec496f71bc5be3a03e98b"}, + {file = "tokenizers-0.13.3-cp311-cp311-win32.whl", hash = "sha256:cc78d77f597d1c458bf0ea7c2a64b6aa06941c7a99cb135b5969b0278824d808"}, + {file = "tokenizers-0.13.3-cp311-cp311-win_amd64.whl", hash = "sha256:ecf182bf59bd541a8876deccf0360f5ae60496fd50b58510048020751cf1724c"}, + {file = "tokenizers-0.13.3-cp37-cp37m-macosx_10_11_x86_64.whl", hash = "sha256:0527dc5436a1f6bf2c0327da3145687d3bcfbeab91fed8458920093de3901b44"}, + {file = "tokenizers-0.13.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07cbb2c307627dc99b44b22ef05ff4473aa7c7cc1fec8f0a8b37d8a64b1a16d2"}, + {file = "tokenizers-0.13.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4560dbdeaae5b7ee0d4e493027e3de6d53c991b5002d7ff95083c99e11dd5ac0"}, + {file = "tokenizers-0.13.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64064bd0322405c9374305ab9b4c07152a1474370327499911937fd4a76d004b"}, + {file = "tokenizers-0.13.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8c6e2ab0f2e3d939ca66aa1d596602105fe33b505cd2854a4c1717f704c51de"}, + {file = "tokenizers-0.13.3-cp37-cp37m-win32.whl", hash = "sha256:6cc29d410768f960db8677221e497226e545eaaea01aa3613fa0fdf2cc96cff4"}, + {file = "tokenizers-0.13.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fc2a7fdf864554a0dacf09d32e17c0caa9afe72baf9dd7ddedc61973bae352d8"}, + {file = "tokenizers-0.13.3-cp38-cp38-macosx_10_11_x86_64.whl", hash = "sha256:8791dedba834c1fc55e5f1521be325ea3dafb381964be20684b92fdac95d79b7"}, + {file = "tokenizers-0.13.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:d607a6a13718aeb20507bdf2b96162ead5145bbbfa26788d6b833f98b31b26e1"}, + {file = "tokenizers-0.13.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3791338f809cd1bf8e4fee6b540b36822434d0c6c6bc47162448deee3f77d425"}, + {file = "tokenizers-0.13.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2f35f30e39e6aab8716f07790f646bdc6e4a853816cc49a95ef2a9016bf9ce6"}, + {file = "tokenizers-0.13.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310204dfed5aa797128b65d63538a9837cbdd15da2a29a77d67eefa489edda26"}, + {file = "tokenizers-0.13.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0f9b92ea052305166559f38498b3b0cae159caea712646648aaa272f7160963"}, + {file = "tokenizers-0.13.3-cp38-cp38-win32.whl", hash = "sha256:9a3fa134896c3c1f0da6e762d15141fbff30d094067c8f1157b9fdca593b5806"}, + {file = "tokenizers-0.13.3-cp38-cp38-win_amd64.whl", hash = "sha256:8e7b0cdeace87fa9e760e6a605e0ae8fc14b7d72e9fc19c578116f7287bb873d"}, + {file = "tokenizers-0.13.3-cp39-cp39-macosx_10_11_x86_64.whl", hash = "sha256:00cee1e0859d55507e693a48fa4aef07060c4bb6bd93d80120e18fea9371c66d"}, + {file = "tokenizers-0.13.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:a23ff602d0797cea1d0506ce69b27523b07e70f6dda982ab8cf82402de839088"}, + {file = "tokenizers-0.13.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ce07445050b537d2696022dafb115307abdffd2a5c106f029490f84501ef97"}, + {file = "tokenizers-0.13.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:280ffe95f50eaaf655b3a1dc7ff1d9cf4777029dbbc3e63a74e65a056594abc3"}, + {file = "tokenizers-0.13.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97acfcec592f7e9de8cadcdcda50a7134423ac8455c0166b28c9ff04d227b371"}, + {file = "tokenizers-0.13.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd7730c98a3010cd4f523465867ff95cd9d6430db46676ce79358f65ae39797b"}, + {file = "tokenizers-0.13.3-cp39-cp39-win32.whl", hash = "sha256:48625a108029cb1ddf42e17a81b5a3230ba6888a70c9dc14e81bc319e812652d"}, + {file = "tokenizers-0.13.3-cp39-cp39-win_amd64.whl", hash = "sha256:bc0a6f1ba036e482db6453571c9e3e60ecd5489980ffd95d11dc9f960483d783"}, + {file = "tokenizers-0.13.3.tar.gz", hash = "sha256:2e546dbb68b623008a5442353137fbb0123d311a6d7ba52f2667c8862a75af2e"}, +] + +[package.extras] +dev = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] +docs = ["setuptools-rust", "sphinx", "sphinx-rtd-theme"] +testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] + +[[package]] +name = "tqdm" +version = "4.65.0" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.65.0-py3-none-any.whl", hash = "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"}, + {file = "tqdm-4.65.0.tar.gz", hash = "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["py-make (>=0.1.0)", "twine", "wheel"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typing-extensions" +version = "4.7.1" +description = "Backported and Experimental Type Hints for Python 3.7+" +optional = false +python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2023.3" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, + {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, +] + +[[package]] +name = "urllib3" +version = "2.0.4" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.7" +files = [ + {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, + {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.23.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.23.1-py3-none-any.whl", hash = "sha256:1d55d46b83ee4ce82b4e82f621f2050adb3eb7b5481c13f9af1744951cae2f1f"}, + {file = "uvicorn-0.23.1.tar.gz", hash = "sha256:da9b0c8443b2d7ee9db00a345f1eee6db7317432c9d4400f5049cc8d358383be"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.17.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uvloop-0.17.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce9f61938d7155f79d3cb2ffa663147d4a76d16e08f65e2c66b77bd41b356718"}, + {file = "uvloop-0.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:68532f4349fd3900b839f588972b3392ee56042e440dd5873dfbbcd2cc67617c"}, + {file = "uvloop-0.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0949caf774b9fcefc7c5756bacbbbd3fc4c05a6b7eebc7c7ad6f825b23998d6d"}, + {file = "uvloop-0.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff3d00b70ce95adce264462c930fbaecb29718ba6563db354608f37e49e09024"}, + {file = "uvloop-0.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a5abddb3558d3f0a78949c750644a67be31e47936042d4f6c888dd6f3c95f4aa"}, + {file = "uvloop-0.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8efcadc5a0003d3a6e887ccc1fb44dec25594f117a94e3127954c05cf144d811"}, + {file = "uvloop-0.17.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3378eb62c63bf336ae2070599e49089005771cc651c8769aaad72d1bd9385a7c"}, + {file = "uvloop-0.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6aafa5a78b9e62493539456f8b646f85abc7093dd997f4976bb105537cf2635e"}, + {file = "uvloop-0.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c686a47d57ca910a2572fddfe9912819880b8765e2f01dc0dd12a9bf8573e539"}, + {file = "uvloop-0.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:864e1197139d651a76c81757db5eb199db8866e13acb0dfe96e6fc5d1cf45fc4"}, + {file = "uvloop-0.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2a6149e1defac0faf505406259561bc14b034cdf1d4711a3ddcdfbaa8d825a05"}, + {file = "uvloop-0.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6708f30db9117f115eadc4f125c2a10c1a50d711461699a0cbfaa45b9a78e376"}, + {file = "uvloop-0.17.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:23609ca361a7fc587031429fa25ad2ed7242941adec948f9d10c045bfecab06b"}, + {file = "uvloop-0.17.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2deae0b0fb00a6af41fe60a675cec079615b01d68beb4cc7b722424406b126a8"}, + {file = "uvloop-0.17.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45cea33b208971e87a31c17622e4b440cac231766ec11e5d22c76fab3bf9df62"}, + {file = "uvloop-0.17.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9b09e0f0ac29eee0451d71798878eae5a4e6a91aa275e114037b27f7db72702d"}, + {file = "uvloop-0.17.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dbbaf9da2ee98ee2531e0c780455f2841e4675ff580ecf93fe5c48fe733b5667"}, + {file = "uvloop-0.17.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a4aee22ece20958888eedbad20e4dbb03c37533e010fb824161b4f05e641f738"}, + {file = "uvloop-0.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:307958f9fc5c8bb01fad752d1345168c0abc5d62c1b72a4a8c6c06f042b45b20"}, + {file = "uvloop-0.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ebeeec6a6641d0adb2ea71dcfb76017602ee2bfd8213e3fcc18d8f699c5104f"}, + {file = "uvloop-0.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1436c8673c1563422213ac6907789ecb2b070f5939b9cbff9ef7113f2b531595"}, + {file = "uvloop-0.17.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8887d675a64cfc59f4ecd34382e5b4f0ef4ae1da37ed665adba0c2badf0d6578"}, + {file = "uvloop-0.17.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3db8de10ed684995a7f34a001f15b374c230f7655ae840964d51496e2f8a8474"}, + {file = "uvloop-0.17.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d37dccc7ae63e61f7b96ee2e19c40f153ba6ce730d8ba4d3b4e9738c1dccc1b"}, + {file = "uvloop-0.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cbbe908fda687e39afd6ea2a2f14c2c3e43f2ca88e3a11964b297822358d0e6c"}, + {file = "uvloop-0.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d97672dc709fa4447ab83276f344a165075fd9f366a97b712bdd3fee05efae8"}, + {file = "uvloop-0.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1e507c9ee39c61bfddd79714e4f85900656db1aec4d40c6de55648e85c2799c"}, + {file = "uvloop-0.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c092a2c1e736086d59ac8e41f9c98f26bbf9b9222a76f21af9dfe949b99b2eb9"}, + {file = "uvloop-0.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:30babd84706115626ea78ea5dbc7dd8d0d01a2e9f9b306d24ca4ed5796c66ded"}, + {file = "uvloop-0.17.0.tar.gz", hash = "sha256:0ddf6baf9cf11a1a22c71487f39f15b2cf78eb5bde7e5b45fbb99e8a9d91b9e1"}, +] + +[package.extras] +dev = ["Cython (>=0.29.32,<0.30.0)", "Sphinx (>=4.1.2,<4.2.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=22.0.0,<22.1.0)", "pycodestyle (>=2.7.0,<2.8.0)", "pytest (>=3.6.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=22.0.0,<22.1.0)", "pycodestyle (>=2.7.0,<2.8.0)"] + +[[package]] +name = "watchfiles" +version = "0.19.0" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "watchfiles-0.19.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:91633e64712df3051ca454ca7d1b976baf842d7a3640b87622b323c55f3345e7"}, + {file = "watchfiles-0.19.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:b6577b8c6c8701ba8642ea9335a129836347894b666dd1ec2226830e263909d3"}, + {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:18b28f6ad871b82df9542ff958d0c86bb0d8310bb09eb8e87d97318a3b5273af"}, + {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fac19dc9cbc34052394dbe81e149411a62e71999c0a19e1e09ce537867f95ae0"}, + {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:09ea3397aecbc81c19ed7f025e051a7387feefdb789cf768ff994c1228182fda"}, + {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c0376deac92377817e4fb8f347bf559b7d44ff556d9bc6f6208dd3f79f104aaf"}, + {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c75eff897786ee262c9f17a48886f4e98e6cfd335e011c591c305e5d083c056"}, + {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb5d45c4143c1dd60f98a16187fd123eda7248f84ef22244818c18d531a249d1"}, + {file = "watchfiles-0.19.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:79c533ff593db861ae23436541f481ec896ee3da4e5db8962429b441bbaae16e"}, + {file = "watchfiles-0.19.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3d7d267d27aceeeaa3de0dd161a0d64f0a282264d592e335fff7958cc0cbae7c"}, + {file = "watchfiles-0.19.0-cp37-abi3-win32.whl", hash = "sha256:176a9a7641ec2c97b24455135d58012a5be5c6217fc4d5fef0b2b9f75dbf5154"}, + {file = "watchfiles-0.19.0-cp37-abi3-win_amd64.whl", hash = "sha256:945be0baa3e2440151eb3718fd8846751e8b51d8de7b884c90b17d271d34cae8"}, + {file = "watchfiles-0.19.0-cp37-abi3-win_arm64.whl", hash = "sha256:0089c6dc24d436b373c3c57657bf4f9a453b13767150d17284fc6162b2791911"}, + {file = "watchfiles-0.19.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cae3dde0b4b2078f31527acff6f486e23abed307ba4d3932466ba7cdd5ecec79"}, + {file = "watchfiles-0.19.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f3920b1285a7d3ce898e303d84791b7bf40d57b7695ad549dc04e6a44c9f120"}, + {file = "watchfiles-0.19.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9afd0d69429172c796164fd7fe8e821ade9be983f51c659a38da3faaaaac44dc"}, + {file = "watchfiles-0.19.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68dce92b29575dda0f8d30c11742a8e2b9b8ec768ae414b54f7453f27bdf9545"}, + {file = "watchfiles-0.19.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:5569fc7f967429d4bc87e355cdfdcee6aabe4b620801e2cf5805ea245c06097c"}, + {file = "watchfiles-0.19.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5471582658ea56fca122c0f0d0116a36807c63fefd6fdc92c71ca9a4491b6b48"}, + {file = "watchfiles-0.19.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b538014a87f94d92f98f34d3e6d2635478e6be6423a9ea53e4dd96210065e193"}, + {file = "watchfiles-0.19.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20b44221764955b1e703f012c74015306fb7e79a00c15370785f309b1ed9aa8d"}, + {file = "watchfiles-0.19.0.tar.gz", hash = "sha256:d9b073073e048081e502b6c6b0b88714c026a1a4c890569238d04aca5f9ca74b"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "11.0.3" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac"}, + {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d"}, + {file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f"}, + {file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564"}, + {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11"}, + {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca"}, + {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54"}, + {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4"}, + {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526"}, + {file = "websockets-11.0.3-cp310-cp310-win32.whl", hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69"}, + {file = "websockets-11.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f"}, + {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb"}, + {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288"}, + {file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d"}, + {file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3"}, + {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b"}, + {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6"}, + {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97"}, + {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf"}, + {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd"}, + {file = "websockets-11.0.3-cp311-cp311-win32.whl", hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c"}, + {file = "websockets-11.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8"}, + {file = "websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152"}, + {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f"}, + {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b"}, + {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb"}, + {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007"}, + {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0"}, + {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af"}, + {file = "websockets-11.0.3-cp37-cp37m-win32.whl", hash = "sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f"}, + {file = "websockets-11.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de"}, + {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0"}, + {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae"}, + {file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99"}, + {file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa"}, + {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86"}, + {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c"}, + {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0"}, + {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e"}, + {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788"}, + {file = "websockets-11.0.3-cp38-cp38-win32.whl", hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74"}, + {file = "websockets-11.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f"}, + {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8"}, + {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd"}, + {file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016"}, + {file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61"}, + {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b"}, + {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd"}, + {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7"}, + {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1"}, + {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311"}, + {file = "websockets-11.0.3-cp39-cp39-win32.whl", hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128"}, + {file = "websockets-11.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e"}, + {file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf"}, + {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5"}, + {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998"}, + {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b"}, + {file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb"}, + {file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20"}, + {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931"}, + {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9"}, + {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280"}, + {file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b"}, + {file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82"}, + {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c"}, + {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d"}, + {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4"}, + {file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602"}, + {file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"}, + {file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"}, +] + +[[package]] +name = "yarl" +version = "1.9.2" +description = "Yet another URL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82"}, + {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8"}, + {file = "yarl-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528"}, + {file = "yarl-1.9.2-cp310-cp310-win32.whl", hash = "sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3"}, + {file = "yarl-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a"}, + {file = "yarl-1.9.2-cp311-cp311-win32.whl", hash = "sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8"}, + {file = "yarl-1.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051"}, + {file = "yarl-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582"}, + {file = "yarl-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b"}, + {file = "yarl-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b"}, + {file = "yarl-1.9.2-cp38-cp38-win32.whl", hash = "sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7"}, + {file = "yarl-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80"}, + {file = "yarl-1.9.2-cp39-cp39-win32.whl", hash = "sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623"}, + {file = "yarl-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18"}, + {file = "yarl-1.9.2.tar.gz", hash = "sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + +[[package]] +name = "yt-dlp" +version = "2023.7.6" +description = "A youtube-dl fork with additional features and patches" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yt-dlp-2023.7.6.tar.gz", hash = "sha256:cb58373869c8ccb5034746f91cfccd6d25ea697090dfd6f93e9034d51eb4aed2"}, + {file = "yt_dlp-2023.7.6-py2.py3-none-any.whl", hash = "sha256:b33b3f68751f33dd8290f1f61f7a011679b3b512aa223df3bff496688bc0bd19"}, +] + +[package.dependencies] +brotli = {version = "*", markers = "platform_python_implementation == \"CPython\""} +brotlicffi = {version = "*", markers = "platform_python_implementation != \"CPython\""} +certifi = "*" +mutagen = "*" +pycryptodomex = "*" +websockets = "*" + +[[package]] +name = "zipp" +version = "3.16.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, + {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + +[[package]] +name = "zstandard" +version = "0.21.0" +description = "Zstandard bindings for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "zstandard-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:649a67643257e3b2cff1c0a73130609679a5673bf389564bc6d4b164d822a7ce"}, + {file = "zstandard-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:144a4fe4be2e747bf9c646deab212666e39048faa4372abb6a250dab0f347a29"}, + {file = "zstandard-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b72060402524ab91e075881f6b6b3f37ab715663313030d0ce983da44960a86f"}, + {file = "zstandard-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8257752b97134477fb4e413529edaa04fc0457361d304c1319573de00ba796b1"}, + {file = "zstandard-0.21.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c053b7c4cbf71cc26808ed67ae955836232f7638444d709bfc302d3e499364fa"}, + {file = "zstandard-0.21.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2769730c13638e08b7a983b32cb67775650024632cd0476bf1ba0e6360f5ac7d"}, + {file = "zstandard-0.21.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7d3bc4de588b987f3934ca79140e226785d7b5e47e31756761e48644a45a6766"}, + {file = "zstandard-0.21.0-cp310-cp310-win32.whl", hash = "sha256:67829fdb82e7393ca68e543894cd0581a79243cc4ec74a836c305c70a5943f07"}, + {file = "zstandard-0.21.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6048a287f8d2d6e8bc67f6b42a766c61923641dd4022b7fd3f7439e17ba5a4d"}, + {file = "zstandard-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7f2afab2c727b6a3d466faee6974a7dad0d9991241c498e7317e5ccf53dbc766"}, + {file = "zstandard-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff0852da2abe86326b20abae912d0367878dd0854b8931897d44cfeb18985472"}, + {file = "zstandard-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d12fa383e315b62630bd407477d750ec96a0f438447d0e6e496ab67b8b451d39"}, + {file = "zstandard-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1b9703fe2e6b6811886c44052647df7c37478af1b4a1a9078585806f42e5b15"}, + {file = "zstandard-0.21.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df28aa5c241f59a7ab524f8ad8bb75d9a23f7ed9d501b0fed6d40ec3064784e8"}, + {file = "zstandard-0.21.0-cp311-cp311-win32.whl", hash = "sha256:0aad6090ac164a9d237d096c8af241b8dcd015524ac6dbec1330092dba151657"}, + {file = "zstandard-0.21.0-cp311-cp311-win_amd64.whl", hash = "sha256:48b6233b5c4cacb7afb0ee6b4f91820afbb6c0e3ae0fa10abbc20000acdf4f11"}, + {file = "zstandard-0.21.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e7d560ce14fd209db6adacce8908244503a009c6c39eee0c10f138996cd66d3e"}, + {file = "zstandard-0.21.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e6e131a4df2eb6f64961cea6f979cdff22d6e0d5516feb0d09492c8fd36f3bc"}, + {file = "zstandard-0.21.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e0c62a67ff425927898cf43da2cf6b852289ebcc2054514ea9bf121bec10a5"}, + {file = "zstandard-0.21.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1545fb9cb93e043351d0cb2ee73fa0ab32e61298968667bb924aac166278c3fc"}, + {file = "zstandard-0.21.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe6c821eb6870f81d73bf10e5deed80edcac1e63fbc40610e61f340723fd5f7c"}, + {file = "zstandard-0.21.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ddb086ea3b915e50f6604be93f4f64f168d3fc3cef3585bb9a375d5834392d4f"}, + {file = "zstandard-0.21.0-cp37-cp37m-win32.whl", hash = "sha256:57ac078ad7333c9db7a74804684099c4c77f98971c151cee18d17a12649bc25c"}, + {file = "zstandard-0.21.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1243b01fb7926a5a0417120c57d4c28b25a0200284af0525fddba812d575f605"}, + {file = "zstandard-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ea68b1ba4f9678ac3d3e370d96442a6332d431e5050223626bdce748692226ea"}, + {file = "zstandard-0.21.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8070c1cdb4587a8aa038638acda3bd97c43c59e1e31705f2766d5576b329e97c"}, + {file = "zstandard-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4af612c96599b17e4930fe58bffd6514e6c25509d120f4eae6031b7595912f85"}, + {file = "zstandard-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff891e37b167bc477f35562cda1248acc115dbafbea4f3af54ec70821090965"}, + {file = "zstandard-0.21.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9fec02ce2b38e8b2e86079ff0b912445495e8ab0b137f9c0505f88ad0d61296"}, + {file = "zstandard-0.21.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bdbe350691dec3078b187b8304e6a9c4d9db3eb2d50ab5b1d748533e746d099"}, + {file = "zstandard-0.21.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b69cccd06a4a0a1d9fb3ec9a97600055cf03030ed7048d4bcb88c574f7895773"}, + {file = "zstandard-0.21.0-cp38-cp38-win32.whl", hash = "sha256:9980489f066a391c5572bc7dc471e903fb134e0b0001ea9b1d3eff85af0a6f1b"}, + {file = "zstandard-0.21.0-cp38-cp38-win_amd64.whl", hash = "sha256:0e1e94a9d9e35dc04bf90055e914077c80b1e0c15454cc5419e82529d3e70728"}, + {file = "zstandard-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2d61675b2a73edcef5e327e38eb62bdfc89009960f0e3991eae5cc3d54718de"}, + {file = "zstandard-0.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:25fbfef672ad798afab12e8fd204d122fca3bc8e2dcb0a2ba73bf0a0ac0f5f07"}, + {file = "zstandard-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62957069a7c2626ae80023998757e27bd28d933b165c487ab6f83ad3337f773d"}, + {file = "zstandard-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14e10ed461e4807471075d4b7a2af51f5234c8f1e2a0c1d37d5ca49aaaad49e8"}, + {file = "zstandard-0.21.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cff89a036c639a6a9299bf19e16bfb9ac7def9a7634c52c257166db09d950e7"}, + {file = "zstandard-0.21.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52b2b5e3e7670bd25835e0e0730a236f2b0df87672d99d3bf4bf87248aa659fb"}, + {file = "zstandard-0.21.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b1367da0dde8ae5040ef0413fb57b5baeac39d8931c70536d5f013b11d3fc3a5"}, + {file = "zstandard-0.21.0-cp39-cp39-win32.whl", hash = "sha256:db62cbe7a965e68ad2217a056107cc43d41764c66c895be05cf9c8b19578ce9c"}, + {file = "zstandard-0.21.0-cp39-cp39-win_amd64.whl", hash = "sha256:a8d200617d5c876221304b0e3fe43307adde291b4a897e7b0617a61611dfff6a"}, + {file = "zstandard-0.21.0.tar.gz", hash = "sha256:f08e3a10d01a247877e4cb61a82a319ea746c356a3786558bed2481e6c405546"}, +] + +[package.dependencies] +cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\""} + +[package.extras] +cffi = ["cffi (>=1.11)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "9d35e1aac8dba36c9273f5d1556a086968e34fd53181913c2fb310b42edefebe" diff --git a/poetry.toml b/poetry.toml new file mode 100644 index 0000000..c0c340a --- /dev/null +++ b/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = false diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..c6125a4 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,105 @@ +[tool.poetry] +name = "quke" +version = "0.1.3" +description = "Compare the answering capabilities of different LLMs - for example LlaMa, ChatGPT, Cohere, Falcon - against user provided document(s) and questions." +authors = ["Erik Oosterop"] +maintainers = ["Erik Oosterop"] +license = "MIT" +readme = "README.md" +homepage = "" +repository = "https://github.com/EJOOSTEROP/quke" +documentation = "" +keywords = ["ML", "LLM", "compare", "chat", "semantic search"] + + +[tool.poetry.scripts] +quke = "quke.quke:quke" + +[tool.poetry.dependencies] +python = "^3.11" +langchain = "^0.0.229" +hydra-core = "^1.3.2" +python-dotenv = "^1.0.0" +pymupdf = "^1.22.5" +yt-dlp = "^2023.7.6" +pydub = "^0.25.1" +ffmpeg = "^1.4" +pypdf = "^3.12.1" +bs4 = "^0.0.1" +tiktoken = "^0.4.0" +chromadb = "^0.3.29" +lark = "^1.1.7" +huggingface-hub = "^0.16.4" +openai = "^0.27.8" +cohere = "^4.17.0" +replicate = "^0.9.0" +mdutils = "^1.6.0" +rich = "^13.5.2" + + +[tool.poetry.dev-dependencies] +pytest = "^7.4.0" +requests-mock = "^1.11.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +markers = [ + "expensive: uses API key and likely paid or at least limited resources (deselect with '-m \"not expensive\"')", + "serial", +] + +[tool.ruff] +include = ["*.py", "*.pyi", "**/pyproject.toml"] +fix = false +line-length = 119 +select = [ # https://beta.ruff.rs/docs/rules/ + "A", # prevent using keywords that clobber python builtins + "ANN", # type annotation + "B", # bugbear: security warnings + "C", + "C90", + "D", # pydocstyle + "DAR", # darglint, but does not seem to be implemented at the moment + "DTZ", # date timezone + "E", # pycodestyle + "F", # pyflakes + "I", # isort + "ISC", # implicit string concatenation + "PT", # pytest style + "PTH", # use pathlib + "Q", + "S", # Bandit + "SIM", # simplify + "UP", # alert you when better syntax is available in your python version + "RUF", # the ruff developer's own rules +] + +ignore = [ + "E203", # comments allowed + "E501", +] + +# fixing is off by default +fixable = [ + "F401", # Remove unused imports. + "NPY001", # Fix numpy types, which are removed in 1.24. + "RUF100", # Remove unused noqa comments. +] + +[tool.ruff.per-file-ignores] +"tests/**/*.py" = [ + # at least this three should be fine in tests: + "S101", # asserts allowed in tests... + "ARG", # Unused function args -> fixtures nevertheless are functionally relevant... + "FBT", # Don't care about booleans as positional arguments in tests, e.g. via @pytest.mark.parametrize() + # The below are debateable + "PLR2004", # Magic value used in comparison, ... + "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes + "D", # no pydocstyle +] + +[tool.ruff.pydocstyle] +convention = "google" \ No newline at end of file diff --git a/quke/__init__.py b/quke/__init__.py new file mode 100644 index 0000000..f71c3af --- /dev/null +++ b/quke/__init__.py @@ -0,0 +1,29 @@ +"""Compare Large Language Models' capabilities. + +Compare the answering capabilities of different LLMs - for example LlaMa, ChatGPT, +Cohere, Falcon - against user provided document(s) and questions. + +LLMs, embeddings and other settings can be specified in configuration files. +""" +from collections import namedtuple +from enum import Enum + + +class DatabaseAction(Enum): + """Enum for vectorstore write action. + + Value to be specified in config file. + + Action is performed at folder level. For example, if set to OVERWRITE the + existing folder will be completely deleted before creating a new vector store. + """ + + NO_OVERWRITE = 0 + APPEND = 1 + OVERWRITE = 2 + + +ClassImportDefinition = namedtuple( + "ClassImportDefinition", ["module_name", "class_name"] +) +ClassRateLimit = namedtuple("ClassRateLimit", ["count_limit", "delay"]) diff --git a/quke/conf/__init__.py b/quke/conf/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/quke/conf/config.yaml b/quke/conf/config.yaml new file mode 100644 index 0000000..05047ab --- /dev/null +++ b/quke/conf/config.yaml @@ -0,0 +1,15 @@ +internal_data_folder: idata +source_document_folder: "./docs/pdf/" +experiment_summary_file: 'chat_session.md' + +embed_only: False + +defaults: + - _self_ + - llm: falcon7b + - embedding: huggingface + - question: eps + +hydra: + job: + chdir: False \ No newline at end of file diff --git a/quke/conf/embedding/cohere.yaml b/quke/conf/embedding/cohere.yaml new file mode 100644 index 0000000..9540e22 --- /dev/null +++ b/quke/conf/embedding/cohere.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_cohere + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: no_overwrite + +embedding: + module_name: langchain.embeddings + class_name: CohereEmbeddings + kwargs: #optional +# repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 300 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 60 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: CharacterTextSplitter + args: + chunk_size: 1000 + chunk_overlap: 150 + separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) \ No newline at end of file diff --git a/quke/conf/embedding/hf_r.yaml b/quke/conf/embedding/hf_r.yaml new file mode 100644 index 0000000..165e567 --- /dev/null +++ b/quke/conf/embedding/hf_r.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_hf_recursive + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: overwrite + +embedding: + module_name: langchain.embeddings + class_name: HuggingFaceHubEmbeddings + kwargs: #optional + repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 201 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 306 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: RecursiveCharacterTextSplitter + args: + chunk_size: 800 + chunk_overlap: 200 +# separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) diff --git a/quke/conf/embedding/huggingface.yaml b/quke/conf/embedding/huggingface.yaml new file mode 100644 index 0000000..c9054e7 --- /dev/null +++ b/quke/conf/embedding/huggingface.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_hf_del + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: overwrite + +embedding: + module_name: langchain.embeddings + class_name: HuggingFaceHubEmbeddings + kwargs: #optional + repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 201 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 306 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: CharacterTextSplitter + args: + chunk_size: 1000 + chunk_overlap: 150 + separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) diff --git a/quke/conf/embedding/openai.yaml b/quke/conf/embedding/openai.yaml new file mode 100644 index 0000000..301a606 --- /dev/null +++ b/quke/conf/embedding/openai.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_openai + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: overwrite + +embedding: + module_name: langchain.embeddings + class_name: OpenAIEmbeddings + kwargs: #optional +# repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 200 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 60 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: CharacterTextSplitter + args: + chunk_size: 1000 + chunk_overlap: 150 + separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) diff --git a/quke/conf/experiment/llama2.yaml b/quke/conf/experiment/llama2.yaml new file mode 100644 index 0000000..d10c346 --- /dev/null +++ b/quke/conf/experiment/llama2.yaml @@ -0,0 +1,5 @@ +# @package _global_ +defaults: + - override /llm: llama2 + - override /embedding: openai + - override /question: eps \ No newline at end of file diff --git a/quke/conf/experiment/openai.yaml b/quke/conf/experiment/openai.yaml new file mode 100644 index 0000000..96502da --- /dev/null +++ b/quke/conf/experiment/openai.yaml @@ -0,0 +1,5 @@ +# @package _global_ +defaults: + - override /llm: gpt3-5 + - override /embedding: openai + - override /question: eps \ No newline at end of file diff --git a/quke/conf/experiment/openaihf.yaml b/quke/conf/experiment/openaihf.yaml new file mode 100644 index 0000000..b0999df --- /dev/null +++ b/quke/conf/experiment/openaihf.yaml @@ -0,0 +1,5 @@ +# @package _global_ +defaults: + - override /llm: gpt3-5 + - override /embedding: huggingface + - override /question: eps \ No newline at end of file diff --git a/quke/conf/llm/cohere.yaml b/quke/conf/llm/cohere.yaml new file mode 100644 index 0000000..7aad6ca --- /dev/null +++ b/quke/conf/llm/cohere.yaml @@ -0,0 +1,7 @@ +module_name_llm: langchain.llms +class_name_llm: Cohere +name: command-nightly + +llm_args: + model: ${llm.name} + temperature: 0 \ No newline at end of file diff --git a/quke/conf/llm/falcon7b.yaml b/quke/conf/llm/falcon7b.yaml new file mode 100644 index 0000000..8dcd1c2 --- /dev/null +++ b/quke/conf/llm/falcon7b.yaml @@ -0,0 +1,11 @@ +module_name_llm: langchain.llms +class_name_llm: HuggingFaceHub +name: tiiuae/falcon-7b-instruct + +llm_args: + repo_id: ${llm.name} + model_kwargs: + max_length: 2000 + temperature: 0.5 + max_new_tokens: 200 + num_return_sequences: 3 diff --git a/quke/conf/llm/gpt3-5.yaml b/quke/conf/llm/gpt3-5.yaml new file mode 100644 index 0000000..44e7271 --- /dev/null +++ b/quke/conf/llm/gpt3-5.yaml @@ -0,0 +1,8 @@ +#type: OpenAI #import OpenAI maybe needed to set the API key, though langchain may just take it from env? +module_name_llm: langchain.chat_models +class_name_llm: ChatOpenAI +name: gpt-3.5-turbo-0301 + +llm_args: + model_name: ${llm.name} + temperature: 0 \ No newline at end of file diff --git a/quke/conf/llm/llama2.yaml b/quke/conf/llm/llama2.yaml new file mode 100644 index 0000000..916f2bb --- /dev/null +++ b/quke/conf/llm/llama2.yaml @@ -0,0 +1,15 @@ +module_name_llm: langchain.llms +class_name_llm: Replicate +name: a16z-infra/llama-2-7b-chat:5ec5fdadd80ace49f5a2b2178cceeb9f2f77c493b85b1131002c26e6b2b13184 +#name: a16z-infra/llama13b-v2-chat:df7690f1994d94e96ad9d568eac121aecf50684a0b0963b25a41cc40061269e5 + +llm_args: + model: ${llm.name} + input: + temperature: 0.75 + max_length: 500 + max_new_tokens: 500 + min_new_tokens: -1 + top_p: 1 + +# NOTE: At present responses for the 13B version are too short to be useful. Not sure what is causing this. \ No newline at end of file diff --git a/quke/conf/question/eps.yaml b/quke/conf/question/eps.yaml new file mode 100644 index 0000000..fa64d14 --- /dev/null +++ b/quke/conf/question/eps.yaml @@ -0,0 +1,3 @@ +questions: +- What is EPS according to the AIF? +- What is CIBC? \ No newline at end of file diff --git a/quke/conf/question/growth.yaml b/quke/conf/question/growth.yaml new file mode 100644 index 0000000..241b969 --- /dev/null +++ b/quke/conf/question/growth.yaml @@ -0,0 +1,3 @@ +questions: +- What is CIBC's EPS growth target in 2022? +- What is it going forward? \ No newline at end of file diff --git a/quke/conf/question/tabulation.yaml b/quke/conf/question/tabulation.yaml new file mode 100644 index 0000000..8e637ae --- /dev/null +++ b/quke/conf/question/tabulation.yaml @@ -0,0 +1,3 @@ +questions: +- Please tabularize the EPS for each year. +- From the table, which year has the highest EPS? \ No newline at end of file diff --git a/quke/embed.py b/quke/embed.py new file mode 100644 index 0000000..15b619e --- /dev/null +++ b/quke/embed.py @@ -0,0 +1,200 @@ +"""Reads documents from a provided directory, performs embedding and captures the embeddings in a vector store.""" +import importlib +import logging # functionality managed by Hydra +import os +import shutil +import time +from collections import defaultdict +from dataclasses import dataclass, field +from glob import glob + +# [ ] TODO: PyMU is faster, PyPDF more accurate: https://github.com/py-pdf/benchmarks +from langchain.document_loaders import CSVLoader, PyMuPDFLoader, TextLoader + +from . import ClassImportDefinition, ClassRateLimit, DatabaseAction + + +@dataclass +class DocumentLoaderDef: + """Definition for LangChain document loaders.""" + + ext: str = "pdf" + loader: object = PyMuPDFLoader + kwargs: defaultdict[dict] = field(default_factory=dict) # empty dict + + +DOC_LOADERS = [ + DocumentLoaderDef(ext="pdf", loader=PyMuPDFLoader), + DocumentLoaderDef(ext="txt", loader=TextLoader, kwargs={"encoding": "utf8"}), + DocumentLoaderDef(ext="csv", loader=CSVLoader), +] +"""Defines the kind of source documents to be searched (specifically to be embedded into the vector store).""" + + +def get_loaders(src_doc_folder: str, loader: DocumentLoaderDef) -> list: + """Returns loaders for each relevant file in the provided folder. + + LangChain loaders are used to load various types of documents in preparation + of embedding and persisting in vector stores. + + Args: + src_doc_folder: The folder of the source files. + loader: Definition of the loader. Loaders exist for example for + pdf, text and csv files. + """ + ext = loader.ext + + # to make ext case insensitive + ext = "".join([f"[{ch}{ch.swapcase()}]" for ch in ext]) + src_file_names = glob( + os.path.join(src_doc_folder, "**", f"*.{ext}"), recursive=True + ) # also looks in subfolders + + # TODO: Problem with embedding more than 2 files at once, or some number of pages/chunks (using HF)? + # Error message does not really help. Appending in steps does work. + loaders = [loader.loader(pdf_name, **loader.kwargs) for pdf_name in src_file_names] + + return loaders + + +def get_pages_from_document(src_doc_folder: str) -> list: + """Reads documents from the directory/folder provided and returns a list of pages and metadata.""" + pages = [] + for docloader in DOC_LOADERS: + for loader in get_loaders(src_doc_folder, docloader): + pages.extend(loader.load()) + + try: + logging.info( + f"Document loaded: {len(pages)} pages, last one {pages[-1].metadata}" + ) + except Exception: + logging.warning( + f"No source documents loaded. No valid files found in {src_doc_folder}. " + "Must be .pdf, .txt or .csv." + ) + + return pages + + +def get_chunks_from_pages(pages: list, splitter_params) -> list: + """Splits pages into smaller chunks used for embedding.""" + # for splitter args containing 'func', the yaml value is converted into a Python function. + # TODO: Security risk? Hence a safe_list of functions is provided; severly limiting flexibility. + # TODO: The other limiting factor: any parameter containing 'func' is eval()-ed into a function reference; + # also no other parameter is. + safe_function_list = ["len"] + for key in splitter_params["splitter_args"]: + if ("func".lower() in key.lower()) and splitter_params["splitter_args"][ + key + ] in safe_function_list: + splitter_params["splitter_args"][key] = eval( + splitter_params["splitter_args"][key] + ) + + module = importlib.import_module(splitter_params["splitter_import"].module_name) + class_ = getattr(module, splitter_params["splitter_import"].class_name) + splitter = class_ + + text_splitter = splitter(**splitter_params["splitter_args"]) + + chunks = text_splitter.split_documents(pages) + + logging.info(f"Documents split. {len(chunks)} chunks from {len(pages)} pages.") + return chunks + + +def embed( + src_doc_folder: str, + vectordb_location: str, + embedding_import: ClassImportDefinition, + embedding_kwargs: dict, + vectordb_import: ClassImportDefinition, + rate_limit: ClassRateLimit, + splitter_params: dict, + write_mode: DatabaseAction = DatabaseAction.NO_OVERWRITE, +) -> int: + """Reads documents from a provided directory, performs embedding and captures the embeddings in a vector store.""" + logging.info(f"Starting to embed into VectorDB: {vectordb_location}") + + # if folder does not exist, or write_mode is APPEND no need to do anything here. + if os.path.exists(vectordb_location) and not os.path.isfile( # noqa: SIM102 + vectordb_location + ): + if os.listdir( + vectordb_location + ): # path exists and is not empty - assumed to contain vectordb + if write_mode == DatabaseAction.NO_OVERWRITE: # skip embedding + logging.info( + f"No new embeddings created. Embedding database already exists at " + f"{vectordb_location!r}. Remove database folder, or change embedding config " + "vectorstore_write_mode to OVERWRITE or APPEND." + ) + return + if ( + write_mode == DatabaseAction.OVERWRITE + ): # remove exising database before embedding + # TODO: Is this too harsh to delete the full folder? At least create a backup? + logging.warning( + f"The folder containing the embedding database ({vectordb_location}) and all its contents " + "about to be overwritten." + ) + shutil.rmtree(vectordb_location) + + # get bite sized chunks from source documents + chunks = get_chunks_from_pages( + get_pages_from_document(src_doc_folder), splitter_params + ) + + logging.warning( + "CAUTION: This function uses external compute services (like OpenAI or HuggingFace). " + "This is likely to cost money." + ) + + # Use chunker to embed in chunks with a wait time in between. As a basic way to deal with some rate limiting. + def chunker(seq, size): + return (seq[pos : pos + size] for pos in range(0, len(seq), size)) + + c = 0 + for fewer_chunks in chunker(chunks, rate_limit.count_limit): + if c > 0: + delay = rate_limit.delay + logging.info(f"Sleeping for {delay} seconds due to rate limiter.") + time.sleep(delay) + + c += embed_these_chunks( + fewer_chunks, + vectordb_location, + embedding_import, + embedding_kwargs, + vectordb_import, + ) + + return c + + +def embed_these_chunks( + chunks, + vectordb_location: str, + embedding_import: ClassImportDefinition, + embedding_kwargs: dict, + vectordb_import: ClassImportDefinition, +) -> int: + """Embed the provided chunks and capture into a vector store.""" + module = importlib.import_module(embedding_import.module_name) + class_ = getattr(module, embedding_import.class_name) + embedding = class_(**embedding_kwargs) + + module = importlib.import_module(vectordb_import.module_name) + class_ = getattr(module, vectordb_import.class_name) + vectordb_type = class_() + + vectordb = vectordb_type.from_documents( + documents=chunks, embedding=embedding, persist_directory=vectordb_location + ) + + vectordb.persist() + + logging.info(f"{len(chunks)} chunks persisted into database at {vectordb_location}") + + return len(chunks) diff --git a/quke/llm_chat.py b/quke/llm_chat.py new file mode 100644 index 0000000..db797af --- /dev/null +++ b/quke/llm_chat.py @@ -0,0 +1,134 @@ +"""Sets up all elements required for a chat session.""" +import importlib +import logging # functionality managed by Hydra +import os +from collections import defaultdict +from datetime import datetime + +from langchain.chains import ConversationalRetrievalChain +from langchain.memory import ConversationBufferMemory +from mdutils.fileutils import MarkDownFile +from mdutils.mdutils import MdUtils + +from . import ClassImportDefinition + + +def chat( + vectordb_location: str, + embedding_import: ClassImportDefinition, + vectordb_import: ClassImportDefinition, + llm_import: ClassImportDefinition, + llm_parameters, + prompt_parameters, + output_file, +) -> object: + """Initiates a chat with an LLM. + + Sets up all components required for the chat including the LLM, + embedding model, vector store, chat memory, retriever and actual + questions. + """ + module = importlib.import_module(embedding_import.module_name) + class_ = getattr(module, embedding_import.class_name) + embedding = class_() + + logging.warning( + "CAUTION: This function uses external compute services " + "(like OpenAI or HuggingFace). This is likely to cost money." + ) + module = importlib.import_module(vectordb_import.module_name) + class_ = getattr(module, vectordb_import.class_name) + vectordb = class_(embedding_function=embedding, persist_directory=vectordb_location) + + module = importlib.import_module(llm_import.module_name) + class_ = getattr(module, llm_import.class_name) + llm = class_(**llm_parameters) + + memory = ConversationBufferMemory( + memory_key="chat_history", + return_messages=True, + output_key="answer", + ) + + qa = ConversationalRetrievalChain.from_llm( + llm, + retriever=vectordb.as_retriever(), + memory=memory, + return_source_documents=True, + ) + + # NOTE: trial API keys may have very restrictive rules. It is plausible that you run into + # constraints after the 2nd question. + for question in prompt_parameters: + result = qa({"question": question}) + + # print(qa({"question": question})) + + # erik = source_documents + # print(f"==============={erik}") + + chat_output(question, result) + chat_output_to_file(result, output_file) + + logging.info("=======================") + + return qa + + +def chat_output(question: str, result: dict) -> None: + """Logs a chat question and anwer.""" + logging.info("=======================") + logging.info(f"Q: {question}") + logging.info(f"A: {result['answer']}") + + src_docs = [doc.metadata for doc in result["source_documents"]] + src_docs = dict_crosstab(src_docs, "source", "page") + for key, value in src_docs.items(): + logging.info(f"Source document: {key}, Pages used: {value}") + + +# TODO: Either I do not understand mdutils or it is an unfriendly package when trying to append. +def chat_output_to_file(result: dict, output_file) -> None: + """Populates a record of the chat with the LLM into a markdown file.""" + first_write = not os.path.isfile(output_file["path"]) + + mdFile = MdUtils(file_name="tmp.md") + + if first_write: + mdFile.new_header(1, "LLM Chat Session with quke") + mdFile.write( + datetime.now().astimezone().strftime("%a %d-%b-%Y %H:%M %Z"), align="center" + ) + mdFile.new_paragraph("") + mdFile.new_header(2, "Experiment settings", header_id="settings") + mdFile.insert_code(output_file["conf_yaml"], language="yaml") + mdFile.new_header(2, "Chat", header_id="chat") + else: + existing_text = MarkDownFile().read_file(file_name=output_file["path"]) + mdFile.new_paragraph(existing_text) + + mdFile.new_paragraph(f"Q: {result['question']}") + mdFile.new_paragraph(f"A: {result['answer']}") + + src_docs = [doc.metadata for doc in result["source_documents"]] + src_docs = dict_crosstab(src_docs, "source", "page") + for key, value in src_docs.items(): + mdFile.new_paragraph(f"Source document: {key}, Pages used: {value}") + + new = MarkDownFile(name=output_file["path"]) + + new.append_end((mdFile.get_md_text()).strip()) + + +def dict_crosstab(source, key, listed, missing="NA"): + """Limited and simple version of a crosstab query on a dict.""" + dict_subs = [] + for d in source: + dict_subs.append({key: d[key], listed: d.get(listed, missing)}.values()) + + d = defaultdict(list) + for k, v in dict_subs: + d[k].append(v) + d[k] = list(set(d[k])) + + return dict(d) # TODO: consider sorted(d.items()) diff --git a/quke/quke.py b/quke/quke.py new file mode 100644 index 0000000..0792ff6 --- /dev/null +++ b/quke/quke.py @@ -0,0 +1,193 @@ +"""Main module to initiate quke, to compare chat results. + +LLMs, embedding model, vector store and other components can be congfigured. +""" +import logging # functionality managed by Hydra +import os + +import hydra +from dotenv import find_dotenv, load_dotenv +from hydra.utils import to_absolute_path +from omegaconf import DictConfig, OmegaConf +from rich.console import Console + +from . import ClassImportDefinition, ClassRateLimit, DatabaseAction, embed, llm_chat + +_ = load_dotenv(find_dotenv()) + + +class ConfigParser: + """Turns config into a more programming friendly and consistent format. + + For core classes and functions groups configuration by + class/function arguments for convenience. + + Provides an abstraction layer on top of the structure of the + Hydra configuration files. + """ + + def __init__(self, cfg: DictConfig) -> None: + """Creates configuration abstraction.""" + self.cfg = cfg + + # TODO: Read from cfg + self.src_doc_folder = cfg.source_document_folder + + # TODO: Is this sufficiently robust? What if the user wants a folder not related to wcd/pwd? + # Consider using os.path.isabs(path) or os.path.abspath(path). Or just pass the string and + # 'Python will handle it'? + self.vectordb_location = os.path.join( + os.getcwd(), + cfg.internal_data_folder, + cfg.embedding.vectordb.vectorstore_location, + ) + self.embedding_import = ClassImportDefinition( + cfg.embedding.embedding.module_name, cfg.embedding.embedding.class_name + ) + self.vectordb_import = ClassImportDefinition( + cfg.embedding.vectordb.module_name, cfg.embedding.vectordb.class_name + ) + self.llm_import = ClassImportDefinition( + cfg.llm.module_name_llm, cfg.llm.class_name_llm + ) + self.embedding_rate_limit = ClassRateLimit( + cfg.embedding.embedding.rate_limit_chunks, + cfg.embedding.embedding.rate_limit_delay, + ) + self.embedding_kwargs = self.get_embedding_kwargs(cfg) + + self.splitter_import = ClassImportDefinition( + cfg.embedding.splitter.module_name, cfg.embedding.splitter.class_name + ) + self.splitter_args = self.get_args_dict(cfg.embedding.splitter.args) + + try: + self.write_mode = DatabaseAction[ + (cfg.embedding.vectordb.vectorstore_write_mode).upper() + ] + except Exception: + logging.warn( + f"Invalid value configured for cfg.embedding.vectorstore_write_mode: " + f"{cfg.embedding.vectordb.vectorstore_write_mode}. Using no_overwrite instead." + ) + self.write_mode = DatabaseAction.NO_OVERWRITE + + self.questions = cfg.question.questions + + try: + if not cfg.embed_only: + self.embed_only = False + else: + self.embed_only = True + except Exception: + self.embed_only = False + + # TODO: need something better for output folder + # https://hydra.cc/docs/tutorials/basic/running_your_app/working_directory/ + try: # try statement done for testing suite + self.output_file = os.path.join( + hydra.core.hydra_config.HydraConfig.get()["runtime"]["output_dir"], + cfg.experiment_summary_file, + ) + except Exception: + self.output_file = cfg.experiment_summary_file + + def get_embed_params(self): + """Based on the config files returns the set of parameters need to start embedding.""" + embed_parameters = { + "src_doc_folder": self.src_doc_folder, + "vectordb_location": self.vectordb_location, + "embedding_import": self.embedding_import, + "embedding_kwargs": self.embedding_kwargs, + "vectordb_import": self.vectordb_import, + "rate_limit": self.embedding_rate_limit, + "splitter_params": self.get_splitter_params(), + "write_mode": self.write_mode, + } + return embed_parameters + + def get_chat_params(self): + """Based on the config files returns the set of parameters need to start a chat.""" + chat_parameters = { + "vectordb_location": self.vectordb_location, + "embedding_import": self.embedding_import, + "vectordb_import": self.vectordb_import, + "llm_import": self.llm_import, + "llm_parameters": self.get_llm_parameters(), + "prompt_parameters": self.questions, + "output_file": self.get_chat_session_file_parameters(self.cfg), + } + return chat_parameters + + def get_splitter_params(self) -> dict: + """Based on the config files returns the set of parameters needed to split source documents.""" + return { + "splitter_import": self.splitter_import, + "splitter_args": self.splitter_args, + } + + def get_args_dict(self, cfg_sub): + """Takes a subset of the Hydra configs and returns the same as a dict.""" + return OmegaConf.to_container(cfg_sub, resolve=True) + + def get_llm_parameters(self): + """Based on the config files returns the set of parameters needed to setup an LLM.""" + return OmegaConf.to_container(self.cfg.llm.llm_args, resolve=True) + + def get_chat_session_file_parameters(self, cfg: DictConfig) -> dict: + """Returns the full configuration in a single yaml and file location for output.""" + chat_sesion_file_parameters = { + "path": self.output_file, + "conf_yaml": OmegaConf.to_yaml(cfg), + } + return chat_sesion_file_parameters + + def get_embedding_kwargs(self, cfg: DictConfig) -> dict: + """Based on the config files returns the set of parameters needed for embedding.""" + try: + embedding_kwargs = ( + cfg.embedding.embedding.kwargs if cfg.embedding.embedding.kwargs else {} + ) + """ + if cfg.embedding.embedding.kwargs: + embedding_kwargs = cfg.embedding.embedding.kwargs + else: + embedding_kwargs = {} + """ + except Exception: + embedding_kwargs = {} + return embedding_kwargs + + +@hydra.main(version_base=None, config_path="conf", config_name="config") +def quke(cfg: DictConfig) -> None: + """The main function to initiate a chat. + + Including the embedding of the provided source documents. + """ + console = Console() + config_parser = ConfigParser(cfg) + + embed_parameters = config_parser.get_embed_params() + + with console.status("Embedding...", spinner="aesthetic"): + # python -m rich.spinner to see options + embed.embed(**embed_parameters) + logging.info("\n" + OmegaConf.to_yaml(cfg)) + + if not config_parser.embed_only: + with console.status("Chatting...", spinner="aesthetic"): + chat_parameters = config_parser.get_chat_params() + llm_chat.chat(**chat_parameters) + + logging.info( + f"Source documents loaded from: {to_absolute_path(config_parser.src_doc_folder)}" + ) + logging.info( + f"Vector store created in: {to_absolute_path(config_parser.vectordb_location)}" + ) + logging.info(f"Results captured in: {to_absolute_path(config_parser.output_file)}") + + +if __name__ == "__main__": + quke() diff --git a/quke/trial questions.txt b/quke/trial questions.txt new file mode 100644 index 0000000..5a8441f --- /dev/null +++ b/quke/trial questions.txt @@ -0,0 +1,4 @@ +poetry run quke embedding=huggingface llm=llama2 ++question.questions=['Using only the document provided can you tell what is Lufthansa? End your answer with my pleasure.'] +==> Cohere, OpenAI say the document does not mention Lufthansa. +==> Falcon7b comes back with an answer, describing Lufthansa correctly but clearly not using the AIF. Not sure if this is Falcon or HuggingFace who is the problem. +==> Llama2 (using Replicate) does not return an answer at the moment. Somehow Lanchain is also not timing out... \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/conf/__init__.py b/tests/conf/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/conf/config.yaml b/tests/conf/config.yaml new file mode 100644 index 0000000..5f692f0 --- /dev/null +++ b/tests/conf/config.yaml @@ -0,0 +1,11 @@ +internal_data_folder: "./tests/data/idata" +source_document_folder: "./tests/data/src_doc/" +experiment_summary_file: 'chat_session.md' + +embed_only: False + +defaults: + - _self_ + - llm: falcon7b + - embedding: huggingface + - question: eps \ No newline at end of file diff --git a/tests/conf/embedding/cohere.yaml b/tests/conf/embedding/cohere.yaml new file mode 100644 index 0000000..9540e22 --- /dev/null +++ b/tests/conf/embedding/cohere.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_cohere + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: no_overwrite + +embedding: + module_name: langchain.embeddings + class_name: CohereEmbeddings + kwargs: #optional +# repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 300 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 60 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: CharacterTextSplitter + args: + chunk_size: 1000 + chunk_overlap: 150 + separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) \ No newline at end of file diff --git a/tests/conf/embedding/hf_r.yaml b/tests/conf/embedding/hf_r.yaml new file mode 100644 index 0000000..165e567 --- /dev/null +++ b/tests/conf/embedding/hf_r.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_hf_recursive + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: overwrite + +embedding: + module_name: langchain.embeddings + class_name: HuggingFaceHubEmbeddings + kwargs: #optional + repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 201 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 306 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: RecursiveCharacterTextSplitter + args: + chunk_size: 800 + chunk_overlap: 200 +# separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) diff --git a/tests/conf/embedding/huggingface.yaml b/tests/conf/embedding/huggingface.yaml new file mode 100644 index 0000000..c9054e7 --- /dev/null +++ b/tests/conf/embedding/huggingface.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_hf_del + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: overwrite + +embedding: + module_name: langchain.embeddings + class_name: HuggingFaceHubEmbeddings + kwargs: #optional + repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 201 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 306 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: CharacterTextSplitter + args: + chunk_size: 1000 + chunk_overlap: 150 + separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) diff --git a/tests/conf/embedding/openai.yaml b/tests/conf/embedding/openai.yaml new file mode 100644 index 0000000..301a606 --- /dev/null +++ b/tests/conf/embedding/openai.yaml @@ -0,0 +1,28 @@ +vectordb: + module_name: langchain.vectorstores + class_name: Chroma + vectorstore_location: vector_store/chromadb_openai + + # Possible values for vectorstore_write_mode: overwrite, no_overwrite, append + # This works at the vectorstore_location level. + # -If the folder exists and 'no_overwrite' is specified: document will not be embedded + # -If the folder exists and 'overwrite' is specified, all contents of the vectordb folder will be deleted and a new vectordb will be created. + # -If set to 'append' the new embeddings will be appended to any existing vectordb. If a source document is specified twice it will be embedded twice. + vectorstore_write_mode: overwrite + +embedding: + module_name: langchain.embeddings + class_name: OpenAIEmbeddings + kwargs: #optional +# repo_id: sentence-transformers/all-mpnet-base-v2 + rate_limit_chunks: 200 # max about 200 when I trialed (free account). Must depend on many considerations. + rate_limit_delay: 60 # in seconds + +splitter: + module_name: langchain.text_splitter + class_name: CharacterTextSplitter + args: + chunk_size: 1000 + chunk_overlap: 150 + separator: "\n" + length_function: len # this cannot be configured. Can only be len (or not present) diff --git a/tests/conf/experiment/llama2.yaml b/tests/conf/experiment/llama2.yaml new file mode 100644 index 0000000..d10c346 --- /dev/null +++ b/tests/conf/experiment/llama2.yaml @@ -0,0 +1,5 @@ +# @package _global_ +defaults: + - override /llm: llama2 + - override /embedding: openai + - override /question: eps \ No newline at end of file diff --git a/tests/conf/experiment/openai.yaml b/tests/conf/experiment/openai.yaml new file mode 100644 index 0000000..96502da --- /dev/null +++ b/tests/conf/experiment/openai.yaml @@ -0,0 +1,5 @@ +# @package _global_ +defaults: + - override /llm: gpt3-5 + - override /embedding: openai + - override /question: eps \ No newline at end of file diff --git a/tests/conf/experiment/openaihf.yaml b/tests/conf/experiment/openaihf.yaml new file mode 100644 index 0000000..b0999df --- /dev/null +++ b/tests/conf/experiment/openaihf.yaml @@ -0,0 +1,5 @@ +# @package _global_ +defaults: + - override /llm: gpt3-5 + - override /embedding: huggingface + - override /question: eps \ No newline at end of file diff --git a/tests/conf/llm/cohere.yaml b/tests/conf/llm/cohere.yaml new file mode 100644 index 0000000..7aad6ca --- /dev/null +++ b/tests/conf/llm/cohere.yaml @@ -0,0 +1,7 @@ +module_name_llm: langchain.llms +class_name_llm: Cohere +name: command-nightly + +llm_args: + model: ${llm.name} + temperature: 0 \ No newline at end of file diff --git a/tests/conf/llm/falcon7b.yaml b/tests/conf/llm/falcon7b.yaml new file mode 100644 index 0000000..8dcd1c2 --- /dev/null +++ b/tests/conf/llm/falcon7b.yaml @@ -0,0 +1,11 @@ +module_name_llm: langchain.llms +class_name_llm: HuggingFaceHub +name: tiiuae/falcon-7b-instruct + +llm_args: + repo_id: ${llm.name} + model_kwargs: + max_length: 2000 + temperature: 0.5 + max_new_tokens: 200 + num_return_sequences: 3 diff --git a/tests/conf/llm/gpt3-5.yaml b/tests/conf/llm/gpt3-5.yaml new file mode 100644 index 0000000..44e7271 --- /dev/null +++ b/tests/conf/llm/gpt3-5.yaml @@ -0,0 +1,8 @@ +#type: OpenAI #import OpenAI maybe needed to set the API key, though langchain may just take it from env? +module_name_llm: langchain.chat_models +class_name_llm: ChatOpenAI +name: gpt-3.5-turbo-0301 + +llm_args: + model_name: ${llm.name} + temperature: 0 \ No newline at end of file diff --git a/tests/conf/llm/llama2.yaml b/tests/conf/llm/llama2.yaml new file mode 100644 index 0000000..916f2bb --- /dev/null +++ b/tests/conf/llm/llama2.yaml @@ -0,0 +1,15 @@ +module_name_llm: langchain.llms +class_name_llm: Replicate +name: a16z-infra/llama-2-7b-chat:5ec5fdadd80ace49f5a2b2178cceeb9f2f77c493b85b1131002c26e6b2b13184 +#name: a16z-infra/llama13b-v2-chat:df7690f1994d94e96ad9d568eac121aecf50684a0b0963b25a41cc40061269e5 + +llm_args: + model: ${llm.name} + input: + temperature: 0.75 + max_length: 500 + max_new_tokens: 500 + min_new_tokens: -1 + top_p: 1 + +# NOTE: At present responses for the 13B version are too short to be useful. Not sure what is causing this. \ No newline at end of file diff --git a/tests/conf/question/eps.yaml b/tests/conf/question/eps.yaml new file mode 100644 index 0000000..fa64d14 --- /dev/null +++ b/tests/conf/question/eps.yaml @@ -0,0 +1,3 @@ +questions: +- What is EPS according to the AIF? +- What is CIBC? \ No newline at end of file diff --git a/tests/conf/question/tabulation.yaml b/tests/conf/question/tabulation.yaml new file mode 100644 index 0000000..8e637ae --- /dev/null +++ b/tests/conf/question/tabulation.yaml @@ -0,0 +1,3 @@ +questions: +- Please tabularize the EPS for each year. +- From the table, which year has the highest EPS? \ No newline at end of file diff --git a/tests/data/src_doc/test.txt b/tests/data/src_doc/test.txt new file mode 100644 index 0000000..d3a8df1 --- /dev/null +++ b/tests/data/src_doc/test.txt @@ -0,0 +1 @@ +Francis de Groot is a non-existent actor that has not played in any Hollywood production. \ No newline at end of file diff --git a/tests/test_001.py b/tests/test_001.py new file mode 100644 index 0000000..c131ddc --- /dev/null +++ b/tests/test_001.py @@ -0,0 +1,100 @@ +import os + +import pytest +from hydra import compose, initialize + +from quke.embed import embed, get_chunks_from_pages, get_pages_from_document +from quke.llm_chat import chat +from quke.quke import ConfigParser + +OUTPUT_FILE = "chat_session.md" +INTERNAL_DATA_FOLDER = "./tests/data/idata/" +SRC_DATA_FOLDER = "./tests/data/src_doc/" +TEXT_FILE = "test.txt" + + +@pytest.fixture(scope="session") +def GetConfigEmbedOnly(): + with initialize(version_base=None, config_path="./conf"): + cfg = compose( + config_name="config", + overrides=[ + "embed_only=True", + f"experiment_summary_file={OUTPUT_FILE}", + f"internal_data_folder={INTERNAL_DATA_FOLDER}", + "embedding.vectordb.vectorstore_write_mode=overwrite", + ], + ) + return cfg + + +@pytest.fixture(scope="session") +def GetConfigLLMOnly(tmp_path_factory): + folder = tmp_path_factory.mktemp("output") + output_file = os.path.join(folder, OUTPUT_FILE) + with initialize(version_base=None, config_path="./conf"): + cfg = compose( + config_name="config", + overrides=[ + "embed_only=False", + f"experiment_summary_file={output_file}", + f"internal_data_folder={INTERNAL_DATA_FOLDER}", + "embedding.vectordb.vectorstore_write_mode=no_overwrite", + ], + ) + return cfg + + +@pytest.fixture(scope="session") +def GetPages() -> list: + return get_pages_from_document(SRC_DATA_FOLDER) + + +@pytest.fixture(scope="session") +def GetChunks(GetPages: list, GetConfigEmbedOnly) -> list: + return get_chunks_from_pages( + GetPages, ConfigParser(GetConfigEmbedOnly).get_splitter_params() + ) + + +def test_documentloader(GetPages: list): + assert len(GetPages) > 0 + + text_file_found = False + for item in GetPages: + if TEXT_FILE in item.metadata["source"]: + text_file_found = True + assert text_file_found + + +def test_getchunks(GetChunks): + assert len(GetChunks) == 1 # with current basic test just equals 1 + + +def test_config(): + with initialize(version_base=None, config_path="./conf"): + cfg = compose(config_name="config", overrides=["embed_only=True"]) + assert cfg.source_document_folder == "./tests/data/src_doc/" + assert cfg.embed_only is True + assert ( + len(os.listdir(cfg.source_document_folder)) == 1 + ) # only 1 file for the moment + + +@pytest.mark.expensive() +# Do the following to exlude this +# poetry run pytest -m 'not expensive' +def test_embed(GetConfigEmbedOnly): + chunks_embedded = embed(**ConfigParser(GetConfigEmbedOnly).get_embed_params()) + assert chunks_embedded == 1 + + +@pytest.mark.expensive() +# @pytest.mark.skipif(not os.path.exists(os.path.dirname(OUTPUT_FILE)), +# reason=f"Output folder {os.path.dirname(OUTPUT_FILE)} should exist before running test.") +def test_chat(GetConfigLLMOnly): + from langchain.chains import ConversationalRetrievalChain + + chat_result = chat(**ConfigParser(GetConfigLLMOnly).get_chat_params()) + assert isinstance(chat_result, ConversationalRetrievalChain) + assert os.path.isfile(ConfigParser(GetConfigLLMOnly).output_file)