diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml new file mode 100644 index 0000000..e31d81c --- /dev/null +++ b/.github/workflows/jekyll-gh-pages.yml @@ -0,0 +1,51 @@ +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll with GitHub Pages dependencies preinstalled + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md index df589e2..3feb1f9 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,67 @@ - This repo contains all the Python and ML Tutorials I share on twitter and YouTube. - Star this repo, if you don't want to miss any update. ⭐️ +## Python Basics +- [`OOP In Python`](basics/OOP_In_Python.ipynb) +- [`Async Example`](basics/async_example.py) +- [`Closures`](basics/closures.ipynb) +- [`Connect with DB`](basics/db.ipynb) +- [`List Notes`](basics/list.md) +- [`Merge Lists`](basics/merge_lists.py) +- [`Sets`](basics/sets.ipynb) ## Advanced Python -- [`deque`](advanced/02_deque.ipynb) +- [`Deque`](advanced/02_deque.ipynb) +- [`Ordered Dictionary`](advanced/03_ordered_dictionary.ipynb) +- [`Default Dict`](advanced/04_default_dict.ipynb) +- [`Chained Map`](advanced/05_chained_map.ipynb) +- [`Pydantic`](advanced/06_pydantic.ipynb) + +## AI Apps & Agents +- [`LangChain Fast Agent`](langchain/my_L1_fast_agent.ipynb) +- [`Human in the loop (LangGraph)`](agents/langgraph/human_in_the_loop.ipynb) +- [`Gradio Chat Bot`](ai-apps/gradio/chat_bot.ipynb) +- [`Mini ChatGPT` with `GitHub Models` and `Azure AI`](ai-apps/mini-chatgpt/) +- [`Agentic RAG with HayStack`](agents/haystack/agentic_rag.ipynb) +- [`Haystack Tonic`](ai-apps/haystack_tonic.ipynb) +- [`OneAI HTML to Summary`](ml-apps/oneai/htmltosummary.py) +- [`OneAI HTML to Text`](ml-apps/oneai/htmltotext.py) + +## Data Structures and Algorithms (DSA) +- [`Binary Search`](dsa/binary_search.ipynb) +- [`Binary Search Tree`](dsa/binary_search_tree.ipynb) ## Image Processing in Python +- [`Blur Faces`](image-processing/blur_faces.ipynb) - [`Edge Detection`](image-processing/edge_detection.ipynb) +- [`Image Intro`](image-processing/image.ipynb) - [`Face Detection`](image-processing/image_processing.ipynb) -- [`Blur Faces`](image-processing/blur_faces.ipynb) ## Interesting Libraries -- [`Access datasets from Python`](interesting/pydata.ipynb) - [`Animations for Python Charts(ipyvizzu)`](interesting/ipyvizzu.ipynb) +- [`MapLibre`](interesting/maplibre.ipynb) +- [`Access datasets from Python`](interesting/pydata.ipynb) +- [`TryLeap`](interesting/tryleap.ipynb) + +## Machine Learning & Web Apps +- [`Wordsearch`](ml-apps/AA_wordsearch.ipynb) +- [`Flip Image`](ml-apps/flip-image/) +- [`Monster`](ml-apps/monster.ipynb) +- [`TryLeap (ML)`](ml-apps/tryleap.ipynb) +- [`Streamlit 101`](streamlit_apps/101/) + +## Web Scrapping +- [`Quotes Scrapper`](webscrapping/quotes.ipynb) +- [`Basic Scrapper`](webscrapping/scrapper.ipynb) + +## Tips & Tricks +- [`Python Notes`](tips/py_notes.ipynb) +- [`100 Python Programs`](tips/python_100_programs.ipynb) +- [`Python Tips`](tips/python_tips.ipynb) +- [`Python Tricks`](tips/python_tricks.ipynb) + +## Other Resources +- [`Interview Questions`](interview-questions.md) +- [`Quizzes`](quizzes/) +- [`Books`](books/) +- [`Cheat Sheets`](resources/) diff --git a/advanced/06_pydantic.ipynb b/advanced/06_pydantic.ipynb new file mode 100644 index 0000000..709d82c --- /dev/null +++ b/advanced/06_pydantic.ipynb @@ -0,0 +1,18 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/agents/haystack/agentic_rag.ipynb b/agents/haystack/agentic_rag.ipynb new file mode 100644 index 0000000..3ea04f7 --- /dev/null +++ b/agents/haystack/agentic_rag.ipynb @@ -0,0 +1,522 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "843e3666", + "metadata": {}, + "source": [ + "# Agentic RAG with Fallback to Websearch" + ] + }, + { + "cell_type": "markdown", + "id": "f546074f", + "metadata": {}, + "source": [ + "1. Load the environment variables" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "2d6e56c4", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from dotenv import load_dotenv, find_dotenv\n", + "\n", + "load_dotenv(find_dotenv())\n", + "OPEN_AI_MODEL_5_NANO='gpt-5-nano'" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "df5acb90", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from haystack.dataclasses import Document\n", + "from typing import List, Any, Dict\n", + "from haystack.document_stores.in_memory import InMemoryDocumentStore\n", + "\n", + "\n", + "docs: List[Document] = [\n", + " Document(content=\"The Indian Premier League (IPL) is a men's Twenty20 (T20) cricket league held annually in India and founded by the BCCI in 2007.\"),\n", + " Document(content=\"The league features ten city-based franchise teams playing under a double round-robin and playoffs format.\"),\n", + " Document(content=\"The Chennai Super Kings (CSK) and the Mumbai Indians (MI) are the most successful franchises in IPL history, with both teams having won five titles each.\"),\n", + " Document(content=\"Virat Kohli is the all-time leading run-scorer in the IPL, while Yuzvendra Chahal is the all-time leading wicket-taker.\"),\n", + " Document(content=\"The IPL is the most-attended cricket league in the world and in 2014 was ranked sixth by average attendance among all sports leagues.\"),\n", + "]\n", + "\n", + "document_store = InMemoryDocumentStore()\n", + "document_store.write_documents(docs)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f387b60a", + "metadata": {}, + "outputs": [], + "source": [ + "from haystack.components.builders import ChatPromptBuilder\n", + "from haystack.dataclasses import ChatMessage\n", + "from haystack.components.generators.chat import OpenAIChatGenerator\n", + "from haystack.components.retrievers.in_memory import InMemoryBM25Retriever\n", + "\n", + "retriever = InMemoryBM25Retriever(document_store)\n", + "\n", + "prompt_template = [\n", + " ChatMessage.from_user(\n", + " \"\"\"\n", + "Answer the following query given the documents.\n", + "If the answer is not contained within the documents reply with 'no_answer'\n", + "\n", + "Documents:\n", + "{% for document in documents %}\n", + " {{document.content}}\n", + "{% endfor %}\n", + "Query: {{query}}\n", + "\"\"\"\n", + " )\n", + "]\n", + "\n", + "prompt_builder = ChatPromptBuilder(template=prompt_template, required_variables=\"*\")\n", + "llm = OpenAIChatGenerator(model=OPEN_AI_MODEL_5_NANO)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "fab1b74d", + "metadata": {}, + "outputs": [], + "source": [ + "from haystack.components.websearch.serper_dev import SerperDevWebSearch\n", + "\n", + "prompt_for_websearch = [\n", + " ChatMessage.from_user(\n", + " \"\"\"\n", + "Answer the following query given the documents retrieved from the web.\n", + "Your answer should indicate that your answer was generated from websearch.\n", + "\n", + "Documents:\n", + "{% for document in documents %}\n", + " {{document.content}}\n", + "{% endfor %}\n", + "\n", + "Query: {{query}}\n", + "\"\"\"\n", + " )\n", + "]\n", + "\n", + "websearch = SerperDevWebSearch()\n", + "prompt_builder_for_websearch = ChatPromptBuilder(template=prompt_for_websearch, required_variables=\"*\")\n", + "llm_for_websearch = OpenAIChatGenerator(model=OPEN_AI_MODEL_5_NANO)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "cb68d0e5", + "metadata": {}, + "outputs": [], + "source": [ + "from haystack.components.routers import ConditionalRouter\n", + "\n", + "routes = [\n", + " {\n", + " \"condition\": \"{{'no_answer' in replies[0].text}}\",\n", + " \"output\": \"{{query}}\",\n", + " \"output_name\": \"go_to_websearch\",\n", + " \"output_type\": str,\n", + " },\n", + " {\n", + " \"condition\": \"{{'no_answer' not in replies[0].text}}\",\n", + " \"output\": \"{{replies[0].text}}\",\n", + " \"output_name\": \"answer\",\n", + " \"output_type\": str,\n", + " },\n", + "]\n", + "\n", + "router = ConditionalRouter(routes)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "9b064f24", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "🚅 Components\n", + " - retriever: InMemoryBM25Retriever\n", + " - prompt_builder: ChatPromptBuilder\n", + " - llm: OpenAIChatGenerator\n", + " - router: ConditionalRouter\n", + " - websearch: SerperDevWebSearch\n", + " - prompt_builder_for_websearch: ChatPromptBuilder\n", + " - llm_for_websearch: OpenAIChatGenerator\n", + "🛤️ Connections\n", + " - retriever.documents -> prompt_builder.documents (list[Document])\n", + " - prompt_builder.prompt -> llm.messages (list[ChatMessage])\n", + " - llm.replies -> router.replies (list[ChatMessage])\n", + " - router.go_to_websearch -> websearch.query (str)\n", + " - router.go_to_websearch -> prompt_builder_for_websearch.query (str)\n", + " - websearch.documents -> prompt_builder_for_websearch.documents (list[Document])\n", + " - prompt_builder_for_websearch.prompt -> llm_for_websearch.messages (list[ChatMessage])" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from haystack import Pipeline\n", + "\n", + "agentic_rag_pipe = Pipeline()\n", + "agentic_rag_pipe.add_component(\"retriever\", retriever)\n", + "agentic_rag_pipe.add_component(\"prompt_builder\", prompt_builder)\n", + "agentic_rag_pipe.add_component(\"llm\", llm)\n", + "agentic_rag_pipe.add_component(\"router\", router)\n", + "agentic_rag_pipe.add_component(\"websearch\", websearch)\n", + "agentic_rag_pipe.add_component(\"prompt_builder_for_websearch\", prompt_builder_for_websearch)\n", + "agentic_rag_pipe.add_component(\"llm_for_websearch\", llm_for_websearch)\n", + "\n", + "agentic_rag_pipe.connect(\"retriever\", \"prompt_builder.documents\")\n", + "agentic_rag_pipe.connect(\"prompt_builder.prompt\", \"llm.messages\")\n", + "agentic_rag_pipe.connect(\"llm.replies\", \"router.replies\")\n", + "agentic_rag_pipe.connect(\"router.go_to_websearch\", \"websearch.query\")\n", + "agentic_rag_pipe.connect(\"router.go_to_websearch\", \"prompt_builder_for_websearch.query\")\n", + "agentic_rag_pipe.connect(\"websearch.documents\", \"prompt_builder_for_websearch.documents\")\n", + "agentic_rag_pipe.connect(\"prompt_builder_for_websearch\", \"llm_for_websearch\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce7e978f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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aKrmLsda4dXYXfZKUHah4Ah3pTFlp7mwXtaFhW2GIi8jI2OW++XgSsN2NJqL+zfxjbs87cLyhwYA2A5BGXGhQ4cOpSpWrKgKckMXkHu6gDDVEDeKFy/+a3p6eiPDDlxAbuuC8vvdu3dflZaW9q0BAELoUUaR535evsWF5OWZmZlfu1BwJCE5/rz88sur3A7SVhcGqxp24P5dnJuYmKhhEdsaACCEoIwiy4Widq5SNtdVkau5cFzGVcuGGuLZtKSkpEMMEbl/Ixe6q17u30xHAwB4BGUUOf369Ut0f+xHuArZ5S4YtXPVstsMMJvnflWg/WIXXFi+2FXeL3E7mecYAICgjKLFBeRO//7771YXkt93f/S7DhgwYL4B/2e2uzQw7JL7d3Oe+vjdv6XTDADiHAfzoUjo0qXLfsnJycPdzUWugsz3GjvIysr6zQVAwl8uuH9DZ/Ts2fNLV1nekpaW9rUBQJyiolyEjRw50ho1amQuHNgJJ5xgf/31l7/95ptv+uefeuopq1ChwnbvWbBggX/NJ598Enps4sSJduaZZ1rVqlWtSZMmdscdd9i6detCz19yySXWqVMnu+eee0LT13QfffTR7aadkZFh1apVs969e1exfOT+oN9YrFixn93Nx9wfeIYAQ0TuuznLheVNhlxxleX2bptd6v59HWkAEKcIykXUb7/9ZpdeeqldfPHFtmrVKuvbt6+q/NunJgAAEABJREFUrv654sWL53o6f/75p5166qm2efNm+/bbb+2tt96ymTNn2kknnWTp6emh6f3888/+ooB94okn+vm+8cYb201r7NixtmTJErVHrLZ84P6AN9AJE1z4qeH+qFd1IflLA3bCfUf+dsFPvbcJhlxx/6a6u39fI9zObS0DgDhEUC6iXnvtNV+9VZVX1d127dppFAj/nPvDl+vpKOyWKFHCV4nr169vDRs2tAEDBtiUKVPso48+8q9RFVmBesSIEXb66adb5cqVrXPnzjZt2jSbPn16aFrvvvuuHXvssdaiRYuttodcQH7Irce7rkrd3f0xv9mAXHDfmT969ep1sCHX3L+vOu7f2R86SNYAIM7wH18RpYDasmVLS0pKCj121FFH+eu8BOUJEybYEUccYfvuu2/osRo1aliDBg18hTlw6KGHWunSpbeblx5TeA7m+fbbb9tll11me6Jbt27Huor0fDe9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8l7y/vvv2wUXXGDNmjWzGjVqWJs2baxfv362bdu2XE9j5MiRtnbt//26O3bsWGvUqJFF06ZNm6xmzZr2+++/7/BcQczf/TG0QYMGGQAEEhMTq7iqcgkDgCggKO8FKSkp9uSTT9rFF19s7733nv388892yy232CeffGJ33HFHrqaxfPlyu/vuu61s2bL+/gknnGC//vqrRZOWUw4+eMez/RbE/D/99FP7+uuvDQACbgc6y4XlBAOAKCAoF7DJkydb//79fTW4Q4cOVqtWLStfvrydddZZNnDgQHv99ddt3bp1/rWnnnqq9enTx66++mo7+uij7YorrvBhdc6cOXbaaadZ8eLF7cILL/SvP+ecc2zYsGH+fX/++af17t3bTjzxRGvbtq317dtXR/b757755hs7/vjj7X//+5+1b9/eB9y0tLTQ8qky3L17dx+G9f4hQ4aEnlMQbtGihSo4O6xXMH9VnatUqWJDhw61du3a2THHHGO33Xabbd261b/u/vvvty5dutg999zjp3/yySfbZ5995p9bs2aNVapUyRYuXBia7vXXX28PPPCAr8DfeOONNm/ePP+YKunXXXedr3BrHTWvH374IfQ+Lb+CNYCizVWTlZUJygCigqBcwF566SU777zzrFq1ajs8d/jhh/tAqdaGzMxMmzVrlpUoUcK/Z9y4cZaRkeGr0fXq1fPBuWPHjvbuu+9auXLlbNq0aXbooYfaqlWrfHhWeBw9erR/XuH6ueee8/OYPXu2LVu2zAfeL7/80p599llfmVbLx8aNG61Xr14+3P7222/+8Ztvvtn+/vtv/94ff/zRmjdvHnG9gvlr2dPT0/1yfPXVV/btt9/aBx98YJMmTfKv0/MK9grKel6B/7777vPP/fTTT1a5cmU74IADQtP95ZdfrEmTJnbuuedahQoVfNDWuqSmpvrl/euvv3z4v/fee23MmDH+PVoXBXztBAAAAOwugnIBUo+tAu/ZZ58d8fmgkrzPPvvY3LlzLSkpybdkSLFixeywww6zFStW+PsKkAqmovCpSq7uK0jXrl3bLrroIl/5rVixoh133HH+9aLQrJYPVXJFwbxUqVJ+XqVLl/ZBumvXrv6++qZVtQ5MnTo1YlAOn//MmTPtiCOOsBtuuEGVHn9RoNW0Zfr06Xb77beH7iuwL126NLRsLVu2DE1XgVfTU1BWtVmV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fQRlAEXagw8+aF26dLH99tvPDjvsMPvxxx9Dz2VlZdn06dP95bPPPrPJkydbQkKCDR061Bo2bGjJyck2derU0OtvueUWu/POO61KlSoGACj6OJgPQJH122+/2SeffBIKu4cffrj98MMPlpmZaYmJifbnn3/ahg0bbMCAAVa+fHn/mi1btljp0qX986owT5s2zY488kh75513bPHixXbTTTcZACA+UFEGUGT17t3bZsyY4SvDqhQfdNBBtm7dOps5c6Z/XtXlZs2aWYUKFULvUWuGArWoVUPVZrVf3Hvvvda/f38rWbKkAQDiA0EZQJGk9omkpCTfXhF+Oemkk3xVWVQtDkKxLFq0yJYtW2ZHHHGEv6+gPHv2bEtLS/Nh+rLLLjMAQPwgKAMoclavXu17iXWQXnYNGjTYaVDW/bp164YqzHru119/tfvvv98effRRAwDEF4IygCLnnnvu8VXhoDIcLjwo6zp7UFYrRqBJkya2YsUKa926tb8AAOILB/MBKHJefPHFnT539dVX+4uozSLcXXfdtd19heSqVavaY489ZgCA+ENQBoAIdNBf9+7d7YEHHrBatWoZACD+0HoBANl07tzZn8lPJyHp2rWrAQDiE0F5D7300ktWqVIlO/vss23s2LHWqFEj//j48ePt0EMP9bd1pP2gQYOsIGgYq+uuu85uv/32iM8//PDD1qtXL3/7kUce8cNn5WTkyJG2du1af1vDatWsWdPOP/98e/fdd3P9vt2xfv163xfasmVLyw/qP9Vy16hRI+KyH3300bs8vbE+z9NPP32Hx/VzvbZrtGRkZPhTL48aNcpQMIYMGeIrytlbMVD4uP9fl7p/I1sMAKKAoLwH9If0vvvus++//94+/PBDO+GEE/wR8qITHOhAIPn000/t66+/tmhToOrWrZs/Za9CcCQKgjo7mWhUAJ1oYVeWL19ud999t5UtW9bfV9hUoFTQVOjM7ft2x+OPP+5P7qDtnL2XdHdoqK+3337b0tPTQ9sgtzRsmN7377//+rO3hfv555/zPL280BBn2g7RDONArEpISKji/o2UMACIgrgNyjob19NPP22XXnqpH/ZJ9/NClVVVF8uVK+erTgrG55xzjg0bNsw/r8DcvHlze//99+3GG2+0efPm2fXXX++f69Onjx133HF2yimn2IUXXrhdFfOss87yQ1GdfPLJ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teLFi9spp5zig+9PP/1kzZo1C00v/H6ZMmWsffv2vvparFgxe+WVV/zja9eutdtvv91atmzpL+5naps/f35oGqrSNmzY0EqUKGFnnHGGD+GigH7VVVeFXqf3qJK7ceNG27Rpk5+HgvmRRx5pderU8YF21KhRfpk1n2D+MmzYMDvqqKP85eijj7ZXX3019FyfPn2sW7dufr2POOIIa9Omjd8+cu+999rTTz9t77//vj333HPbbUMg4HYUT09OTv7UAADYTQTlvUxBc/HixT5YhgfcG264wTp27OhbDObMmWPHHHOMTZw40Q455BBfPVarhsKrqsrh79u2bZv98MMP1rRp0+3mU7ZsWd+eMGXKFH//8ssv98F23LhxvqKtSmyXLl38c999953dc8899vrrr9uWLVt8UL722mv9c9OnT99u2gqoqoarxWPWrFmWnp7ul2nSpEn24osvWt++fW3FihV+mgq1d911l3/fzz//bHfeeac9/vjjfr1SU1Ptpptusu+//94//+uvv/ppP/zww36ZzznnHHvkkUf8c927d/fXX3zxhV1//fX+dvadBcQ396vMke7q95dffnmVAQCwmwjKe5kCpQJeqVKltguhqsZ+/vnnPgCKQuQFF1zgb+t16jsWBeOpU6da8+bN/f0ZM/7vuKUWLVrsMC+1YojaO8aPH+9DqAJuYmKinXvuuX46omru1VdfHQqeV155pX355Zf+tl4THpTDl1nBVmE8aB1Zv3691a1b11erZcOGDT6wi6rZPXr08O0gcuihh/r5KUCL1vuBBx7w1XRRYNeyBvNp3Lhx6H7wWLANgMzMzJPdLx1vGwAAe4CgvJcp2AYtAwqHQeh84YUXfHDs3Lmzv9ZBeqJgrFAYvG7mzJk+fAYtG5qGQqSCd3YKuQrYCslq6wh6nEW9zPvtt5+vCKv6qwMDA2rfOOigg3zbh1oswgNpeFDW9NVeEdByqm0ioGXT/BXYFbzvv//+0EGHuijAV6hQwZYuXWrz5s3z7RqBX375xQ477LAd5ilaJgVsgjICbufvMvc9+8gAANgDBOW9TG0PCoAKewqDQdhLSkrybQsKhf379/cHrK1atcoHa1VS1YIhCp/hvbl6faTA+NFHH/mge+mll/rqbPYgrZYHtXds3rzZtm7dahUrVgw9p9CqgK55qfKrPmRRqJ4wYUJofgrGQaU7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AAAAIAKCMgAAABABQRkAAACIgKAMAAAAREBQBgAAACIgKAMAAAAREJQBAACACAjKAAAAQAQEZQAAACCCRAMQFSNGjLBKlSpZ+/btLT8cccQRfnqffvqpv//GG2/4+yeddNIu39e/f3//ut69exsAAMg9gjKQC0cffbR16dLF9qYWLVpYmzZtfOgFAADRR+sFkIOffvrJfvvtN2vQoIHtTQMGDDAA20tISFickZGx2QAgCqgoI2peffVVX/3s2LGjDR061I477jirUaOGbxWYMmVK6HU9e/b0r3vppZesT58+VqtWLZs4caJ/buHChda1a1dfTT3wwAN9Zfemm26ytWvX7vB+BUnN54QTTrDjjz/e38/KyrKHHnrIP9+8eXM/j7wsX79+/ezEE0/0tz/44AP/+i+++MLywv0h92G7c+fOVrt27R3W//zzz/fTHThwYOixr776yj926KGHhh7L3noRibaLKt/16tWzKlWq2NVXX22bN++YIVavXm033nij3556bffu3W3GjBmh52fPnu3ndfDBB9vkyZPtlFNOsQ4dOhhQ2Lh/49USExNLGgBEAUEZUVOsWDF//euvv9prr71mp59+uh1wwAH2448/2hVXXGEbN270zxcvXtxf6zWDBw+2pk2bWvny5W3NmjV25pln2vvvv29lypTxQVOhTwH38ssvD82nRIkS/vrDDz+0t956y8/jl19+sbvvvtuHbIVShd358+fbfffdZ3/88Ueul0+hu127dv51jRo1srvuusvq1KljeaHwqiCqaVerVm2H9c9Pt99+uw/0rsLm110BXb3M4dLT0+2cc87xOwcK7hdccIF9/fXXfltPmzbNvybYpuvXr7drr73Wr4PWHwCAeELrBaJGlVRRVfijjz7yoUwHlDVp0sSWLFlio0aN8tVUVw3yr1uwYIGNGzfO6tat6+8/+eSTPtyq5eHLL7/0gfqGG27wQXr8+PH+MR0oF8xn6dKl9v3331tSUpKvKM+aNcu/X69TZfnII4+0efPm+Wq1KqW5XT6FRwVJVV5vu+02y6s5c+bYJ5984qu3quSqShw+/fyyYsUKe++99/ztF154wQd/BVzNN9zYsWNt5syZPrgPGTLEb1ftSFx00UX2/PPP26BBg/w2lK1bt9oxxxxjzzzzjAEAEG+oKCPqGjZs6EOo6Of8Vq1a+dtB9TKgA9WCkCwKp6Kf/YOqs9oJguCnwBeubdu2vkqs4H3IIYf4x/Rahb7k5GQfdEWBcneWb3dp+sEyV6hQwbdQ5Of0A2qd2LZtm1/XoAquyryqx+EmTZrkrxXYg+2qthT57rvvdpiuKvkAAMQjKsqIOoW1cAqLop/1wx100EHb3V+5cqW/3m+//bZ7vHLlyv5a1dlwQbuABAGwdOnSocdKlSrlrzMzM213lm93ZZ/+Pvvsk6/TD6xbt85faz1Lliy50/kHOwrqtc4+goaq8uH936K+bQAA4hFBGVGXPXip91iCQBoIWiEC++67b8T3BwE6CMwFtXz5Nf0gqAbTD9ZbbQ6BIPTmRbly5ULvVS93EJaz71AEQf3YY4+1O+64Y4fphIdsCdowAACIN7ReIOrUK6yeWFm+fLkfRUGaNWu2y/cFo0189tlnvqVA/v3331B7QH6dyCO3y7dp0ybbHdmnr4P5wqcfBNzwUSc+//xzy6vDDjssdPubb77x1wr9GkEjXNBmoZ5w9XtrtA+1vGg5dRBgUI0HACDeUVFG1FWtWtXOO+88u+SSS3zfsUZ70M/5J5988i7fp5Eihg8f7kPmqaeeakcddZQf0UHV0rPPPttXRAti+TRShegAwkceecRat27tD3DLiQ4gFPVVa/oaXk2hVcsfPn0Ffo3Y8c477/jRPVQRVgtEXqkCr35kbaPrrrvOz0+BOfvwcOr5Vg+3xobW7TPOOMO3YSioX3PNNX6kDwAAQEUZBUC9xxqWLTU11Vct69ev74djC+8pjkSVVo0WofCn4d5efvllH/quv/56S0lJsfyS0/IplKvyqgD92GOP2bJly3I13aAK3rhxY7v33nvtlVde8UPTZZ/+pZdeat26dfOVXI3IoVE+FMjDp5FbGilEI36oPUXz085Ejx49tpuWDnjUDojCu0YFeeKJJ2zDhg3+VNcaxxoAAPyfBMNuGTBgwFmuUjisTZs2+xgiGjFihK9Q6qd+DdFW2BT25UPsWLRokVp2vu3SpUtrQ4FyO4Ij3NUHbkf3DQOAfEbrBZBHGutZJzbZFVWpIx0oBwAAYgdBGcgj9SjrAgAAijZ6lBE1OjhOvbKFta2hsC8fAADYu6goAwAAABEQlAEAAIAICMoAAABABARlAAAAIAKCMgAAABABQRkAAACIgKAMAAAAREBQBgAAACIgKAMAAAAREJQBADErKytraWZm5hYDgCggKAMAYlZCQkKVpKSkEgYAUZBoQAFJT0+39957zy699FJr3LixHXLIIf72119/HXrNo48+aldffbXtjokTJ9rPP/8cun/ooYdapUqV/KVKlSp20kkn2QsvvKAKlO1tu1rWAw44wM4880x7/vnnzVXKcjW9c845x1599VV/+/zzzw/dzu6bb77x2x4AAOSMoIwCsXnzZuvYsaMNGDDArrvuOvv+++/tt99+s7POOssuv/xye+ONN/zrpk+fbkcddZTtjrvvvtu2bPm/X2AXLVpkCxcutB9//NFWrlxpS5cu9SE5NTXVnn76advbwpdVyxm+rHPnzrWbb77ZHnzwQfvqq69yNb0PPvjArrzySh+sNZ1GjRpFfN3kyZOtWbNmBgAAckbrBQqEQp/C6hdffGGlS5cOPX7JJZfYfvvt5yupMm3aNDviiCOsXr16+knVV0f79+9vycnJtmnTJnvmmWf8NP755x875ZRT7KabbrKDDz7YV2Bnz55tDz30kA+Z69evt3Llylnt2rVD8woq2Aqfes3DDz/sp6OQWr16dXvxxRdt0KBBNnLkSF911nLecsstdtxxx/n3K9QfffTRNnbsWFu+fLm1aNHCbr/9drvzzjtt2bJl/nVaVi33/fffb/Pnz/fVYVWP3U/DfllPO+20HZZ1w4YNVqFCBatVq5afT8mSJa1du3b+MU1XgmD95JNP+vt///23NW3a1BYsWGBTpkyx66+/3u9k/PHHH/55Vaj1+kceecSvr6Z5wgkn2IwZM/z2FQVqLcOKFSv88rVv396vb4kSJSJuGwAA4g1BGVGnlothw4bZc889t11IDiigicLf4sWL/et///13+/XXX30YVluBAqpCrNo0XnvtNT+da6+91rcnPPvss3bZZZf597377rt+Wo8//njEqurq1at9MBeFyr/++ss+/PBDK1OmjK84f/bZZzZkyBCrVq2affLJJz5Yq0VCoVvXCt4fffSRbdu2zQ466CB/GTp0qBUvXtzq1q3rl0Pz1fIrqN5zzz1+WVXFvu+++3xQjrSshx12mA/Y8ssvv9iIESP8NLX+onlrpyEwc+ZMPx9NW7f1flH4VUguVaqUD+1jxoyxd955x/bdd1/r06ePfffdd9azZ09f4e/du7cP2NpZ0XZRRVrb4YYbbthh2wAAEI9ovUDUqcVCFd4T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//13O/vss+3QQw+1li1b+uktXLjQv0+BWvMGAAC7RlBGoZGRkeFDXNeuXS0xccevpqrLP//8s7/922+/2apVq+ySSy6xt99+21544QV74IEHfHg899xzrUKFCnb//ffbc8895wPsYYcd5t+n17377rs2ZMgQ+/zzz6179+526aWX2tq1a33lWtPX5a233rIvv/zSEhIS7I033vDv/fHHH/087rjjDps9e7a1aNHC3xbNd+nSpf6x7MLnr/ctW7bMv07Tf/bZZ30AViVd6yQNGjTwOwQK1dohUHVctFzaBuHTbdSokZUuXdoHennnnXesV69efpraDnrPDz/8YEcccYS/Fu0gaDsAAIBdo/UChYaC38qVK31VN5J169b5ACy//PKLD7k1atTw94OAqhC6zz772J9//umrqaKwqNuq2D7yyCM++FarVs0/d8YZZ9iWLVvsjz/+8NNWdfapp56y8uXL++f1nIJoMI85c+aElue4446zkSNH+tsK0QrDpUqV2mG5g/kHty+++GI7+eST/f2tW7f69yQlJdmvv/5qJ510kq+kS8WKFa1evXq2YsUKf3/69Ol23333bTfdIDhr2ylgB8tas2ZN33qiarKW6+qrrw69r27dugYAAHJGRRmFhqq6JUuWtDJlykR8fty4cXbsscf62wrKqpIGFi9e7K8rV67sA6Wug37dGTNm+ED5008/+R5nBdyAqtKq5qqFQe9TqFTQDug9jRs39rdHjRrlK9gKsnq9DjBURTdYnkhtF+HzF83jyCOPDD03a9YsP09V0LOvU7BempcC+qZNm7ZrIdHrg+lmrzY/9thj/v4111zj2ztURQcAAHlDUEahcfDBB/uK7vz583d4btq0ab4/WL3KCowKhqq4BiZOnOj7hlVJ1XNBhVnTU7uDAqaqt0HFNTB58mRfldb7VJUNQrEopC5fvtwH4O+//96uuuoqH0C/+uorX/nu2LFjqKVCB/KFvzcQPn/dVtU4PNCGB1zdDirmop5itWMo2GvZNAJIsWLF/HPp6el+2YP5KzSHz18VarWFfPvtt3bPPff4AyRXr15tAAAg9wjKKDQOOOAAP4yaDtpTCFSrhC6qJCvoadQLBUOFQgVeHSQnqgir51atGKKD+IKWDFVw9913XzvwwAN9kFT4VegWtWn069fP90SrF1lhNGiREAXX2rVr+wqzKroK0wcddFDoOfUQK9xrODu1XkSqKIfPX5VlVbqrV6++3Ty0XOrP1vwnTZoUek4HFao1ROuikK1lDOhgR/VEB0FZrSbBOqtPWTsVAS1ziRL/dz6GBQsW+GUCAAA5o0cZhYoC74MPPugPTlOQVavEMccc41sI1NsrCpTt2rXzIztoODb1LmtUh2AMY4XHG264wbdyNGvWLFRdVl+yeor1nKarFo/bbrvNj2IhCtDho0qEH4SnNosvvvjCB3mFTb1OI21o7GS1RkikirKmEcxft8NbJxSwFVpVpVYQV7W4devWPnCr+q0Wj2AkD81fPceavwKyhr1TiA96qVWVVuDXtlD7hnYA+vbt60O6qs8aw1nVah2MqNA9YMAAAwAAu5Zg2C0uaJxVpUqVYW3atNnHUKBuvfVWHwBVYS4qVAVWmP3www8NsWfRokX6FeRbt8PW2lCgevToMcJdfZCamvqGAUA+o/UCMUftCurXLUqK4joBABDrCMqIKWpXUK+vhkIrStR3XdTWCQCAWEePMmKKhlELzjBXlOgEJwAAoHAhKAMAAAAREJQBAACACAjKAAAAQAQEZQAAACACgjIAAAAQAUEZAAAAiICgDAAAAERAUAYAFJisrKya7mq45ZOlS5fWLlWq1OEpKSnXWv4YlZCQ0N8AwAjKAICCVdpdjrV8UqVKFV0dYPkny10IygA8gjIAAAAQAUEZAAAAiICgDAAAAERAUAYAAAAiICgDAAAAERCUAQAAgAgSDQCAAjZr1iw79thjrUSJEla7dm0bP368tWvXzq699v+GQ/7hhx8sISHBX4dr1KiR3XHHHaH7S5cutSuvvNLq1atnBx54oHXt2tXmzJkTev6ll16yGjVq2EcffWTFixe366+/3ipUqGCPPvrodtPNyMiwatWq2e23317aAOA/BGUAQIFSKD3rrLOsatWqNm/ePB9in376aZs9e7YPs3mZzsknn2zjxo3zgfinn36y/fbbzwdwTVcUxNesWWMDBw601157zQfliy++2N54443tpjV27FhbsmSJXXHFFVsMAP5DUAYAFKivv/7a/vzzT+vfv78dcMABduihh9ozzzzjg2pWVlaup/Pdd9/Z9OnTbfDgwXbSSSf5k4888sgjPiw///zz/jWqSq9du9ZuueUW69ixox188MHWuXNnmzZtmn9v4N133/UB2y1LhgHAfwjK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F2GGOBk4cGC9HDlyjKhZs2YmQ6KiMK7e59GjR7tp44BQ27Vrly1cuHB28+bN+QojgbVu3Xq078d4383yGAOAy4w/YY2rivqU27Zt66rVhGQAABAfBGVcNTQAUNPFtWzZ0lq0aGEAAADxQVDGVSNt2rQ2ceJEAwAAuBwIygAAAEAQBGUAAAAgCIIyAAAAEARBGQAAAAiCoAwAAAAEQVAGAAAAgiAoAwAAAEEQlAEAAIAgCMoAAABAEARlAAAMAC5EUAYAAACCCDcgRObPn2+rV6+2hDRnzhwrWbJkrD57JY4vJg0aNLDhw4fH+Ln333/fWrVqFXTZyZMnrUCBArZhwwYDAABxR1BGyHTt2tVOnTplCWnp0qVWqlSpWH32ShxfTMaPH2//+c9/YvzcihUrrHz58kGXeeG/cOHCBgAA4o6gjKBGjBhhjz32mAuTu3fvtktVt25dW79+vb311luuynvgwAFr2bKl3X777XbXXXdZ27ZtbefOne6zv/32m1WrVs3t684777Rbb73VZs6caf369bNatWrZAw88YIsWLXKfPXbsmGXNmtU++eQTa968uZUtW9aef/55O3z4sFu+du1af4DcsmWLde7c2b1Wlbl79+524sSJSz6+6AwePNjq1at33nvvvfee277oPFT5VWjVuQ0bNsz/Oa33xhtvWO3atW3AgAHus2XKlLHA30HDhg2tYMGC1qRJE3edPLohUMgvXry4FSpUyDp27GiHDh3yX4MKFSpYeHh4tOd15MgRa9eunas+33HHHe5aL1682AAAwP8QlHGBvn37WocOHWzSpEk2cOBA1w5wqRSyS5cubePGjbOqVatat27dLFu2bDZhwgS33QwZMtgLL7zgPqvAqkBXv359mzZtmt1///0u/Cq8TZ8+3WrWrOmOQ/744w/3s2jRovbFF1+48Dh16lT7+eef3ftLlizxB+VXX33V/v33X/v9999t4sSJrlr7448/XvLxRefmm2+2zZs3+1/v27fP+vfvb7169XKh/KmnnrLbbrvNHbduBLTNbdu2+c9FAf+XX36xZ555xlatWuWOyTuPnj172ssvv+yuj4KvnsuOHTtc2D19+rStXLnSZsyY4a7bTz/9dME1iO68FPJ1jH/99Ze7jrqR0LaApCQsLGxvZGTkaQOAEGAwHy7w66+/nvd648aNrt/1pptustjS1/9e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888/tzJlyti0adPc3MLTp093gVph+K+//rKRI0e6n+3btz9v23PnzrV58+a5cKYwNnv2bLvrrrvs3Llz9s8//7gA3KdPHxcIvXX0/pgxY2z9+vW2b98+e/jhh13gVMisWbOmTZ482X1269at54W9mNx55522ZcsW69q1qwt5Cto9evRw+4hOypQp7eDBg/bf//7XBVM9P336tAudw4cPt6VLl7prNmfOHPvwww/dOjo/hclZs2bZgAEDbNmyZXbdddfZ7bff7o5b9N59991nd9xxh61evdr9HhTGW7duHavlCvq6Efn3339dGP7hhx+saNGi7veikC6LFy92n2/cuLGtXbvW3cxoHfFV6tzPzZs3u4Ct7ej3880339iqVavcjZH+NyFt2rRxNwYff/yxO5ZKlSrZU0895X6nAAAkRQRlxIoCsEKkqoyVK1d2oUhBVWFQ9H62bNlc5blWrVqWPHlye+ONN1w1t127dpY1a1ZXWX7nnXfs+++/tyVLlvi3rfCl9fQZhbiyZcu6yvWrr77qAneNGjVctXXFihXnrfPMM8/4q9D6rKqYCnDxpSD+xBNP2KJFi+yrr75yITd//vwuTAZWaqM6ceKEde/e3VWHdVwKlgrHCo7ql1ZVWSFeQVZ+//13d066wVDg1PLevXu7sKx1RDcRqsareqtt6HO6CejUqVOslqtCruNXdVz71kOVelX8ta7oBkbV8Ndee839Du6//353oxJIv2tVyb/++mu76aabXNVYVXRdowkTJrjPzJw50wVwravf15tvvulugFT9BwAgKSIoI1YUXgPpa3wFQ1VfPeXLlz/vM6p2qv0gkPdaVUyPgqUqsh6FY7UBBMqYMeN5rR5R96egrmNShTm2tD3vEdhCEEihT0FQQfHLL790FdPoKEB6FGAVEhWAPTo37zwUVNOmTeuqwYHnUb16dVe1ldtuu819XgG0X79+rrKrMKubh9gsF52bqv+qjmv7CvHiVZRV/dXNj25uPA888MB556VjrVixorsZ8ujmQTc23rFWrVrVVcvVJqN2E91E6XekzwEAkBQRlBErCnSBVKmUwPCq9gvPkSNHXECLut7//3PP5wVT7+v9QMHeiypwf94xRg3T0VEl2ntEDfSeX3/91Ro0aOB6i9Xnq3aC6EQ97ujOQ8eqmw2F18CHKrW7du1ynylXrpxrOVHgVgDVzYAqvqrUxma5+sFVRVZoVdA/deqUnTlz5rzjUHVZoT6Q+tCjHqtabqIeq1o1vMCt1g611UydOtXq1KnjKtz6VsFrzQAAIKlhHmXEStQA6g1y86qTUSm0KiQeP378vPe9gKzBf/GlbQUGPIVOtS3ElvqFPWor8ChIanCh2h/UN60+W4XAS9l2bGjgnEK6WlGiCqzuqp1CD7VGqO9bx6WKr2b10OeiW67+bK8/2ftdBQ4mFP2uvBYaT9QWEx2rWmrU4hKVF6p1LmoBeemll1xQHz9+vPXs2dMyZcpkHTt2NAAAkhqCMmJFA84CLV++3FV0VcEMRgFOPclRB3J5rQuapSK+NHNDvXr13HOFQVU3VU2NLQ2ai0oDEVU5VqhUb7VmofCq55ebZo5QNVetCTfccIP/fc397IVPXXdVgRWEdXOhgZH6vNozNDBSYTi65RpUqHaJwBuacePGnXccmo1EbTKBvL7jwGNVv7a2G1glX7dunfvfgDe4UtdO10stIXqoBzuwtxwAgKSE1gvEir7CVw+sZmr4448/bPDgwfboo49e0P4QqG3btq6iqWnjFAg12EuDzDTITYMD40MD7jRATYPldEz6il/V6yZNmrjl6nsW7V8DzmJLlXJNP6cA+Oyzz4YsJIsqtPXr17enn37aVa4Vaj/77DN3g6GZMkSVWc1GMXToUFcJ1rlohgz1G2sKvJiWly5d2gVmVZRVKVdbxG+//eZCtfYpmvJNNz4aUKkp+HSzEFhtlw4dOlhERIT7/alyr9lFunXr5ra/Zs0ad2Ok6rGmENQxqR1Ds5Vo0KYCMwAASRFBGbGiqeFUHdagOw3g0qC1Dz74INp1VN3ULA4a4KWqpmaN0IAvVSbjS/2xzz//vJteTSFNfb0Kl15AVoVWM3OoHUGBLrYUGhs1auS2nxDUduFNx6bWDoV/3YAopItaFnQe+qnlCtca2KjAq/OOablmHXn99dfdDBT63ekmQL+Pxx9/3L2nqrnaNHQtdbOh2SoUtLVMvEGWaqvQ7BnqMa9SpYqb+ULVbgV0DfRUC4xmHNm5c6cLxppr+f3333eznGiKPAAAkqKESQNIsnwVxsO+6mNGDdLq0qWLJQYKcgqGUftqETcabKe2FVWHPZqVRLNcqG0i8P14SOa7+Ygw4DLz3YCP9v0Y7/uWa4wBwGVGRRm4xqnNQrNnqKqsP/2tPnK1Wmi2DPUmAwBwrSIoA9c4BWL1nGtAn3rH1fqhgKy2kIRqQQEAIDHiv4KIllovfD8yGhA/tF4gJGi9ABBKTA8HAAAABEFQBgAAAIIgKAMAAABBEJQBAACAIAjKAAAAQBAEZQAAACAIgjIAAAAQBEEZAAAACIKgDAAAAARBUAYAAACCICgDAAAAQYQbcAXcfffdNmjQIPe8Vq1a/ucXExkZaQMGDPC/7tevnxUsWNBtZ926de692bNnW4sWLezmm2+2TJkyWY0aNeyzzz6zc+fOueXTp09368RF1P1ru2FhYfbDDz9c8NkxY8a4ZW+88YYlJUuWLHHXM0OGDO4cAAC41hGUkeAiIiJswYIFVrp0afdaAbZNmzbRrjN+/HibMmWK/7VCXdu2bW3q1KlWrFgx69atmz3yyCNWp04dmzZtmh0+fNjef/9969Onj3/bWqdatWoWF1H3v2LFCitcuLD7Gejff/+1nj172vXXX2/ly5e3pKRChQruHM+ePZvkjh0AgFAgKCPBbdiwwf0sU6aMC7VelXf9+vV2xx13WN68ea1IkSL20EMP2Y4dO+ybb76x1q1b2+bNm61Vq1bus8uWLfOHue+//94+/PBDF7gffPBBt77ccsstruLboEED/zo5cuSwUqVKWZo0aaxRo0a2bds2/3ENHTrU7rrrLsucObML3ArhEmz/S5cutXr16rltBlI4r1ixov3zzz/+4xsxYoTdeuut7lGlShUbPny4//M///yzC9wlSpRw4fr111+348eP25EjR1x1XJVxBVidi24uYjpWmTNnjqsMV65c2YoWLeqOP1euXK4qvn//fndDoWtQqVIle+KJJ9w19qxcudJSpEhhN910kwFJxH7f45QBQAgQlJHgFPjKli3rwqqCZrly5dz7HTp0sIcffti2b99uGzdutNtuu83mz5/v3suSJYu98847NmTIEDt58qStWrUg8esdAAAQAElEQVTKBT0ZPHiwtWzZ0rVcRKWqdf369d3zxYsX25YtW+z333+3P//803bt2mVfffWVW7Zw4UJ75ZVXXFDdvXu3C5nPPfecWxZ1/2fOnHHV6ccee8xt06PtqSWkYcOGlj59esuTJ4+tXr3abffdd99156Jjff75523evHl2+vRpa9y4satWr1mzxv7++28XZHWMH3/8sZ04ccJVxrWvXr16+cNwdMe6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//339tdff9l///tf69u3rz3//PMxrh8REWFLliyx4sWLn/c8JitWrLDy5csHXbZ69Wr3s3DhwhaTZcuWudA9evRoAwAA1x6CMkLip59+sk8//dR++OEHq1+/vuXJk8e9X65cOfvqq6/svvvuc6+3bNlinTt3dsG2ZMmS1r17dztx4oRbtmnTJvdT7wc+lxEjRljDhg2tYMGC1qRJE/vtt9/8+166dKmdOnXKhepChQpZx44d7dChQ27Z2rVrrUKFChYeHm4HDhywli1b2u2332533XWXtW3b1nbu3Ok+t2/fPve8RIkSBgAArk0EZYTEl19+aY8//rgVKVLkgmUKn15QfvXVV+3ff/+133//3SZOnGjjx4+3H3/80S1TBVnBOE2aNBc879mzp7388su2fv16F3z1XHbs2OEC7unTp23lypU2Y8YMmzZtmgvu3ja9anO3bt0sW7ZsNmHCBJs0aZJlyJDBXnjhBbds+fLl7jjTpk1rAADg2sRgPoSE2h8u1iccaOTIkf7n6h2++eabLTIy0r1W64Mq0FGfKxhv3LjRv17VqlVt7Nix7rkCrirJXnDWNosWLWr79+93r1Vt7tq1qy1YsMAmT57swnTGjBndMvVPP/vss/7jL1WqlAEAgGsXQRkhobYGVWijc/jwYevdu7f98ccfLrAePHjQva8qs6xZs8YftgOfK+BqUN/evXtdgJZ69eq5nwrKNWvWPG8/+pwqxxrIp0F8CtqjRo2yI0eOuNaNQF5rx6pVq6xatWoGAACuXbReICTUtuD1FQfaunWrvfbaa65q3Lp1a9crPG7cOPdZVXlTpkzpKsIKtRp4p+0EPtcsGuolfuedd1xLhcL1ww8/bKVLl3bbV3DOnTu3f38K4wrZmr1CbRc5cuSwnDlzuh5mtYZo/cDHrFmz3HqqKHvbBAAA1yaCMkKiffv29tZbb7kZI7yp4KZMmWKNGze25MmTW1hYmK1bt84qV67slukzgwYNcq0XKVKkcME4ffr0bnaKwOdquVA7Rb58+dx6WqaBfFqm8K3WikWLFvnbNwYOHGh33HGHW0fLKlas6N5XO8bixYv9VWwtU3+yArQ3kM+rLqs6/u6779rRo0cNAABcO2i9QEg8+OCDtmfPHvvwww9d368G4akHuE+fPlarVi33mZdeesm++OILNzuGwrPC9bfffuumZMuePbur6KrirJkqvOfaxi+//GINGjSw7du324svvujmaFaQTZcundtu7dq13YA9hWX1L3/yySfufW3H63PWTBy7du1yx6L1NNOGpq1LlSqVq0qrqu0N5FOIHjx4sJudAwAAXDvCDHHiq1TW832NP6JmzZqZDFeV9957z7Zt22b9+vVzr1VRVt/0gAEDDAhGN10LFy6c3bx58+qGBNW6dWtNdD7edzM7xgDgMqP1AohCA/kCZ7zQAMAePXoYAAC4ttB6AUShGThUUd69e7erJFepUsUAAMC1h6AMROFNOQcAAK5tBGUAAAAgCIIyAAAAEARBGQAAAAiCoAwASMr2+x6nDABCgKAMAEjKsvseqQwAQoCgDAAAAARBUAYAAACCICgDAAAAQRCUAQAAgCAIygAAAEAQBGUAAAAgiHADQmz58uVWpEgRa9++vV1uJ0+etNy5c9uGDRssMjLShg4dGqv1zpw549Zbt25d0OWNGjWy4cOHx7idVatWWYECBdznx40bZ8OGDbOsWbPatGnTzvvckSNHLEeOHHbixAkLla+++srq1q3r9r97927r1q2bVatWzW6//fYLPrtjxw7Lnz//Rbd1Jc9fARqMAAAQAElEQVRDx1ayZEnbs2ePAQBwJRGUEVIKr6+99pr179/fli1bZpdbmjRpbOfOnXbTTTfZzz//bNOnT4/VemvWrLG0adPazTfffMGyiIgIW7JkiRUvXjzG7egmoEqVKi4kKyyvXr3aypYta4MGDTrvc9qewp/2GSqPP/64de3a1d0A5MqVy9566y174IEHrHTp0napruR55MmTxxo0aGB9+/Y1AACuJIIyQurzzz93QfLuu++2zZs3u4qkvP7669apUyf/51588UUrVaqU//Vvv/1mt912mwutM2fOtFatWlnhwoXtzjvvdNVOT+/eva1t27b2ww8/WMeOHW3r1q3+ynV0661cudLKlCljzzzzjKuc1q5d23766Se3bNOmTe6nAqG8+uqrVrVqVbvnnnuscePGtmjRIv92VFEODKLars5rxYoVtn79ev/7eu1tT9egR48eVqtWLfdo06aNbdu2zS1ThVwV2y+//NIt0zXo3LmznT592i0/cOCAtWzZ0lWJ77rrLnfuulEIPJ7y5cv7XyvwBl7X2IrNeYgq+Pfee6+7Ng0bNrQ5c+b4l9WrV88+/PBDt1zH2qxZM/95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BGUAQJIVGRl5yFdUPm0AEALhBlzDfP+RtaFDh/pf9+7d255++mkLpT59+oR8H8A1JGt4eDhFHwAhQVDGNe3nn3+26dOn+1+/8sorNnDgQAulFStWWPny5Q1A/NGjDCCUCMoIasSIEfbYY49Z165dbffu3Xap/v33X3vjjTesWrVqVrlyZXvttdesRYsWNnjwYLf866+/ttq1a/sfo0eP9q/bq1cva9++vTVv3tzuvPNOq1evns2cOdO/PLp19VntV+8PGDDAfy4NGza0ggULWpMmTey3335z7//www/WsWNH27p1q9vfmTNnLEeOHLZp0ya3XJXme++91+655x63/pw5c87bz4cffuiW33XXXdasWTPbtm2bxcbChQv9Qfmnn36yMmXK2OzZsy1r1qy2a9cu975+5sqVy7788kv/etrXd999ZydPnrS3337b7rjjDitcuLA9++yz/mPWuVWvXt2dj67BiRMnbP78+daoUSO7++673e9C5120aFFXTd+wYYPVr1/fSpYsabfccou75jt37jQgqWB6OAChRFDGBfr27WsdOnSwSZMmuepqgwYN7FIpRM6YMcPGjRtnv//+uwuh06ZNs3Llytm6deusZ8+eLtD+8ssvbn/dunWzRYsWuXX/+OMPW7VqlXXv3t2tc99997nPSGzWPXz4sFv2zDPP2JIlS9znX375ZVu/fr1VqFDBPZcHHnjAMmfO7LbVr18/W7lypaVJk8aFz/79+7tjHzZsmE2ZMsVatWpljz76qB05csQFzNWrV7vHN998Y7/++quqWjZmzJgYr8uff/7pwqvC8QcffGBvvfWWjR8/3t1QZMiQwY4fP+4+p/3fdtttbn+yYMECO3r0qAvsCvCqgn/11VfuvA8dOmQff/yx+5wC8549e9y56xpoe0888YQLw1OnTnXBu0ePHi6o65h1I6TroHNZvHixVaxY0f0EkgoqygBCiaCMCyj4Bdq4caOrPMaWguTIkSPt+eeft+uuu86SJ0/uKrCqhJYoUcIFNYW3KlWquM8XK1bMSpcu7UKwKLB26dLFbrzxRvf69OnTLsBKdOvu2LHD9u/f76qpHgVjHf+tt95qqVOntqpVq7rjEwXqzZs3u2qqKCwqQB47dsz1KusYVNWVOnXq2KlTp1wQVQVaYVdBN2PGjG65lqVNmzbGa7N8+XJ3TC+99JIL4LoZ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9tprrxkQC1SUASQYgjJCRuHn1KlTFl9Lly61UqVKWagMGDDANm/efNHlr7zyig0cONBiEt35njt3zlq2bGknT550wXvNmjWWNm1au/nmm+1yioiIsCVLlljx4sUvab1du3bZ2bNn3U3DwoULz1um8F+6dGkLpY4dO9qwYcNs715aTxE9XzU5p+9/5wRlAAmCoIygRowYYY899pgLf7t3X/q3nHXr1rX169fbW2+95SrCR44csR49elitWrXco02bNrZt2//N8DR06FC799577Z577rGGDRu6dTxr16618uXL6ytX69u3rxUqVMjuvPNOK1OmjH399dcxHkt06+n4Pv30U5s4caJ99tln9ttvv1n16tWtffv2Vrt2bTt8+LDlyJHDNm3a5D7/1Vdf2a233mq5cuWyJk2auM8HO9+o3nvvPXceH330kYWHh9vKlSvdcTzzzDOWNWtWt6+ffvrJ//kZM2ZY48aN7b777nPLFCI9CvWqcOtc7rjjDnddjx8/7pZ5x3mpFfgVK1ZY4cKFrVWrVufdFCjga5l3oxLdvnUtqlWrZm+//bbdddddVqNGDRsyZIh/W7rmOhfvMXr0aP8yXeNKlSrZlClTDIgBFWUACYagjAsoVHbo0MG1Iyg0NWjQwC6VQraqkOPGjbOqVau6cPXvv/+6MPjrr79azpw57bnnnnOf7d+/v/ucwqCCksLao48+6sK1qEKqoDxv3jwXVFXhnDZtmv3yyy82ffp0O3HiRLTHEt16zZo1c5/57rvv7KmnnnJBc8+ePS7A6nN6nSZNGhciFyxY4ILwoEGD3M2Dwt7LL78c9HwDHTp0yFWt+/TpY+nTp3fvLV++3FVxFch37tzptvXqq6+6Zaroav/du3d3vwOt+84777jw/M8//7gArZA6depUtz+dl9dSoWulkKxjvhSrVq1y6+l66Br99ddf7v0//vjDUqVKZQUKFIhx37pR2Ldvn1WoUMH9jvW/I91oqc1ELSY9e/a0N954w11XLevWrZstWrTIfwxFihSxjRs3GhCDHL6KMl89AEgQBGVcQCEnkMLLhg0b7FIoQHlVzVmzZrn+XQU/tRuoolqnTh1XqTx27JhrRVAfrKq0omVqYfBCq0Kbqq+qOh49etTGjx/vqpgK26oCa5vRiW49BcSiRYv6t6Gqr0Kr3vPOQyFd1KfbokULfxvCI488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iNxgUCYiIiIicoNBmYiIiIjIDQZlIkowh8NxNSoq6poQERF5EAZlIkowb2/vTOaIQZmIiDwKgzIRERERkRsMykREREREbjAoExERERG5waBMREREROQGgzIRERERkRveQhQPERERDmOfEBFRqlKzZk3JkyePzJs3TxLqm2++0Wk1btzYeVmtWrX0svnz59/2fosXL9bbVKxYUZLT1KlTpV69evrYn376qaRV//zzjz4HHM6dOydpXdeuXfW59O3bV9IaBmWKF19fX2+jhBARUZKYMWOGhoutW7dKSilQoIA0aNBAKlWqJKndnj17NJBt27ZNXnvtNalataoQJRRbL4goMZw2WxguChElmtmzZ0tKe+SRR/SQFpw6dUqPs2fPLsOGDROixMCKMhElhjxmC0NOIUoFsLkfldiffvpJWrduLeXKlZMyZcrIO++8I5GRkXqbnTt36m1Kliwpa9eulUcffVRatWrlnAY24Tdp0kSKFy8uZcuWlSeeeELbCSzX+x86dEg6duwo5cuXl/bt28u+fftkx44dUrt2bSlUqJA899xzepvYzt/Fixf1+rlz5+rt69evr/MXV5jW8OHDtSIc/fmvWLFCH6NUqVK33KdZs2Z6+aRJk/S8u9YLdz766COt4OK2Tz755C3P19WsWbPk6aeflhIlSujyHTFihHOeoEKFCjqNRYsWaVX4nnvukdgYOXKkPP7443r6woULOo0ePXro+cOHD+vrUr16dZ0eXpfu3bvL+fPnnfcPCgrS+4wZM0bef/99KVasmPz+++8xPm54eLjer1u3bs7L+vTpo5cVLFgQbYp6GarduAyPDWfPntX74Dxeg4CAANmyZYvbxzh58qT07NlT319oe7GvjfXjjz9Ky5Yt9TW+//775fXXX9fl7ArTbtOmjV5frVo16d27t5w5c+Y/zwXL8N5775UHHnhAevXq5Vz5iGkZ4TOEzw+mj8/Ms88+63ZFz2yNlh9++EFatGihn50XX3xRjhw5IqkZgzIREXmUTJky6TH6IfGj36hRIzlx4oSEhYXpjzxkzJhRjxFK33jjDQ1NCCKA22ATPsJF8+bNNTQgECAI2LBsHwOhDMEEVUwEPgQUhLB27dpJ3bp1JUuWLLJ06VIZOHBgrOcvQ4YM8t577+EfL/V2CFEI1HE1atQofWyEl+jPPzEhuCGQHzhwQJ5//nmd/w8//PA/t8OyQWDdvHmzhi68BgMGDJBOnTo5b2Nfl379+smqVaucwTImCJBt27bV01i+WH5NmzbV/l4Edzx21qxZ9XW5evWqzrPrMsU8A1aQxo8fL1WqVJEcOXLE+Lh2/lzbY9asWSN+fn5y/fp1Wb9+vV5mQzBuj/CMoDh58mQNlViRWrJkic7npk2b/vMYWD5XrlzRIIzAjffXunXr9DqEZKxQYMXsmWee0fcoVsCwnO1t9u7dK0899ZSueGGFr0aNGvpewGm8f+Hrr7+Wt99+W/7991/p3Lmzvp9DQkL0spiWEZaxv7+/fjZKly4tDRs2lOXLl+uy/uWXX255Ltu3b9fng5B++vRp+fnnn6V///6SmjEoExGRR/Hy8tLjhx9+WD755BP58ssv5c0339TLpk2bpsc+Pj56jDDz0EMPyerVqzW0Xbp0SYYOHarXIfyhUolQZcPcZ599psc2xN64cUOrZ7gPHgt+++03DWq4DIEPEPpiO38IJAgodh5RCcQhrnLmzKlBCoEZ4cr1+SemKVOm6DEC1rhx4+T777/XMBZdaGioHmPZoFqJQIcdD7/77jsNemCfM8Luhg0b9LrYePDBB7U6CXb5PfbYYxoI9+/fr1sFENqwvBcuXKjTR1XdBjn7eh48eFBDHoK1XXG6E9wGyxlBGWEWK16YbzsvqLTCxo0b9RgrXcuWLdPbY2vDxIkTZdCgQRIcHKz3xWsVHZ4H3iNYrnieMH369Fum36FDB53OBx98IN9++62+b/PmzavXYasAVgQRzgcPHqwBGCt3u3bt0tsCVl6w5QGV4nfffde5ooMdQm1V/HbLCKEZWxDwOcLrhfNY0YToK2ZYEcDzx/1txR8rCakZgzIREXkkVLain0Ygc93kDqh8Wagc21EGECwsVN8A1cLooxCgcgloobAQggEBDY4fPy7xnb/4eumll5yhHO0biT19QHXWVkHRSmG9/PLL/7mdrXC67mSHdghwXZEAtBKgApxQNoShdcVWRLGDoq0EI7S5Qli87777JC4wygbCJMKmfR54v+C1t8/ZVpQxfbyHAC04dp7QDgErV678z/TtssRraV9HPBaghQWwgoLWGrSyFC5cWKvl9jr7eKgAW/Y1sK0TCNAI4i+88IKeR4gHrEhGf79HX0ZYMQS85+37DYEdFWNM0xU+K6iMA1pwAO0dNoynRtyZj4iIPJLrpnP0Vlp2c7NVtGhR52n8uNv7uga1fPnyOU9js7GtrkHmzJn1GJvbLXtf22bhLgjcaf5is9k/Jq7TyJUr1y3TTyyowDscDj2dLVs25+WosrrCcrXLwF2/Ndo2XBUpUkQSg3098+fPf8vl9vVEr3BCHxdV4jlz5mh4tf22derU0ctR0cfywcoEenLvuusuZ98v2g5cX3fAClX0FRnX19EuV/savvLKK7rygzYOVM8BVXO0/WCLCFp70OMM2GKCgysMQweoDqM9CK0dMYm+jOxzRrtGTHLnzu08bVcSAG1L6F9OjRiUiYjII7kGDtdAhNBE3CyLAAAQAElEQVToupOS3dwPdnP15cuXtQpqg67rjk+4TfQdoRJ7/hKD6/Rdny+mbyt/165du+U+cQ3RrisTrpXH6MvHNTij6oneXFfY8c2V62uSEPb1jB4+bYB2XQECu1ziwlanEZT//vtvrdxipQFtJWjbQYjGcrUVVLssEKbR5hCdfc9ZmHf0urvOt32P4LZoB7LD4qG6i37jX3/9VXfOQwuFvS36wtEH7QoreWibwHVYkUELB3boxA6Q2EHVnejLyD6fxNxSkZqw9YKIiDwSemCjoqL0NEZRgMqVK99xkz6qgAhXCA121AlAZRDQIhGbyllizJ8NJAjsCZ2+bUGw07fPAX2xGMEDUE1E2IoLBDW7GR87DgIeM/qIB3hMu+kfKyGoeOKAAI+eVxsEE5sd2g5/joJ+ckAwtC0OMY3mERsYYxphES0O6E+2wdn2E6Nn1/W8bbPA88YywXJAKwMqw6isulZaAUEbsFwRgF2ngeWM/nbcB+0e+JMV9CeDrRbb2x49etS53LHTJEZnwTF29rPVfrRM4HrX95zdYnCn5w+YN/t+Q3Ub1XLsDJvWsaJM8XLzn/n+FSKiVAo76GFHOwy/ZTdLx7RTHAIddgTDzmao0iFQIWAsWLBAWyswrFZyzR82cSPEDBkyREPWW2+9Favp2rCCfllUMdGzih26XKePnbDQw4qwhMvQEzxz5kwNbu5GXrgT9LViZzXscIZKMoKou034qFZip0jsMIad2VB1RYhEVdPulJbYMGLIV199pY+HneKwHLHSgyCIkSBQ1U0oVL+xgoVWCsAIHIDli1YL28NrAzRaT9Cni53pcBoVXNwXfczYyQ59yPY1hM8//1yvw06Jf/zxh7b92L5lhHPsTInRJNAjjqBtV1Ls42EEDFSXcTneb9jREq0aaPPAssGKDt7bWJHATp+o9mOHR6xUoUqO91+XLl1u+/zxumKZ4jXE9NEDjvcSWikS8/OSUlhRpni5+c98idNERkSUBPAjjdYChFBU3DAMHIbSigk2Q2PnKIQcjEqAkIzN6BgBwO58lhzzh1EBEIow7JataMeGrQZiFARMHyE5+vQRYkaPHq2BDZvZEYjGjh2rfbSAnbhiC2EUw4Nhmtjsj0q4HR3EtTcbgRrzhMfA7bBs0QqAyjeWdVJA5RxbBrBjJsIkniOWD1aCMPpDYkFQtrBzn2XDKsZvxrjDgFCKgIrh3BB+sazQ6/3xxx/rSgTYlhgsU6xMoFqPlTZUafHexHjTgDGb8bpihQo75GFaaGPBc8P7GFCtxnsAO9uh6ovb4DKEZYybjNvjvYj3NkYBQfsIgjVWFnE79C/f6W+0cRt8NrCTH3aOxD9KooqN5xjb4f1Ss7g34xAZbdu2zWs2ue0yH8Z8Qume+UL+1BydM++HQULp3oQJE8LMD7m/DV3JDaEWwQHjvdrRKlKT1D5/ROkFtqiYav1kU3V/9Xa3YesFERFRKof2D1QcY4IqsadBtTOmHcWw+R9/rJKYUMlFz/Gd4M9i0G5AnotBmYiIKJXD5nFPDMGx4fqvhskJvb04UPrGoExERB7F/slDapXa54+I/h+DMhERERGRGwzKRERERERuMCgTEREREbnBoExERERE5AaDMhERERGRG/xnPoqXrFmzOqKios4Lkehf5l4xR9eEiIjIgzAoU7xcunTJ28vLK4cQGea9kNkcZRQiIiIPwtYLIiIiIiI3GJSJiIiIiNxgUCYiIiIicoNBmYiIiIjIDe7MR0RE5GFWr14tXbp0kVq1asm9994rTz75pEycOFEiIyP1+uXLl0vlypUlPqKioiQ8PNx5vmPHjpInTx7nAY/Zq1cvOXPmjKS0Q4cOyfz5853no89rvXr15IMPPpDjx4/HanqDBg3SacDQoUOdp6O7evWqFCxYUHbt2iWUtjEoExEReZCPP/5YAgICpEmTJvLDDz/IgQMH5KOPPpIRI0ZI9+7d9TabN2+W2rVrS3zMmzdPlixZ4jy/ZcsWGTlypJw+fVoPv/zyi/z1118SGBgoKW3MmDGyd+9e53k8bzuvJ0+elJCQEH0+Y8eOjdX0sAIwbtw4Pb1hwwYpX76829utXbtWMmbMKGXKlBFK2xiUiYiIPMRPP/2koW/WrFny1FNPyT333KOXV61aVaZOnSqPP/64nke4zZcvn9SpU0cKFSokbdu2lYMHDzqnM2XKFHnmmWekWLFi8sILL8jSpUv1cky3W7du8vfff0vXrl3lwoULsnPnTilXrpzzvjly5NDbIEyjsor7onKL2zdt2lQuX76s4RXV2EceeUQaNmwo/fr1w7Cjev+BAwdK586dpVWrVnod7oPKLKbZqFEjefXVV50V4EWLFsnDDz8sgwcPlpYtW2o1+4svvtDrPvnkE10Wc+fOleDgYDl//rxOp2LFinq9t7e3lC1bVqpUqSKnTp3Sy2bPnv2fFYiaNWtq+L9x44YUKFBA9uzZo5dv3bpVqlWrpqe//vprnc9mzZpJ69attaJfo0YNvQ7T9vf312XduHFj6dSpkxw+fFivc7dsKHVhUCYiIvIQkydP1qBWqlSp/1xXoUIFZ1DetGmTVprRloDTR48elenTp+t169evlw8//FDeffddDcHVq1fX0/D0009Lrly5ZMCAAVqZRYUWoldO0XaRN29eraoiWB47dkzD788//yzXrl3TUIsQjKD7/fffy7Zt23R6gDCL+4waNUqDpI+PjwZpzIMN3wi09rZ4rJdeekm+++47GT16tM77P//8I23atNHbzJw5Uzp06KArB35+fhqO4cSJEzJp0iSdB4Ry2L59u1SqVMn5PM6dO6ehHm0quH/mzJmlZMmSOn2EdSwbzFPfvn014COUP//88zrvCODQp08fXRZz5szR5Z09e3bp0aOHXhd92WTJkkUodeHOfBQvERERDmONEBFRqoHgiraLO0HLAcIfgiWqvzjcfffdkilTJr0e4W/37t3O29etW1dmzJihp21wtFVZhMfSpUtLtmzZnLdHX/Dnn3+uFWAvLy/5888/tVpqAyraHYoXL66VasidO7c+BgK6nSbujx5fQKUZQRfzCKi6IrACgi2eb9GiRZ3zDgjBCP94TBs+UQFGVRgVdAtVdfRboyoNCOwPPvjgLcuzSJEikj9/fm3RsBVkzCsCNeZjwoQJ8uKLLzoryKjkt2/fXq9fs2aNLFiwQJ8TljOgX/z111/X09GXDaU+rChTvPj6+pqtVt4PCBERpRrYzI+K5Z2gtxbBDDv5Wegptu0TCHao0KItAju8IdjZXlwER4RLG1oRLHFf1x3kEBR79+7tDIMIibaSDQiP6J92hfCOwIyAi0q3DaQIxXgMG4BNgUZDqg3qCMpojbAQjgHziPvdf//9zusQlFFtt73U+/fvl2HDhmkFGM/BzqvrfTANW2HG/VGVt49r53HlypW6rCysKGA+0e6yatUqbflAC4tdPqjK47m6WzaU+jAoExEReQgEOdtD6wo9xRjdASNWbNy48ZYRL2zvLoIfemvRQztkyBBZvHixBkoESRsWXUMrIDhjujZ84oAg++ijj+r1V65c0YDp2s6A1gtbEQbM07p167S/GNND20jOnDn1OgRShF5UdcFWuhHcMW3Mjw2d8Pvvv2soxUoA7muDLSCUus47KrzNmzfXvmM8f7RAIOTaEA6YL9fnbk9jZQPTRhvI2bNnndVvQCvHXXfdpVVuPFfXcG4PGHXE3bKh1IdBmYiIyENgpzDsxPbNN984h4JbuHCh9gSbLYHaCoEw6hrOEAbRCoFwiiCKkGmDKcIh+oTRlwsI3LbNAdXeHTt23FLRjQ5BED3NhQsXdl6Gx8Y0EZABrRjYkbBFixZ6e9eg6hpO7Xlcj15jBGG0VSxbtkyvQ1sFepRt6wlaROy8on0D/dao8roaP368BlbswGd3JkRPNKB3G/3HqDCjQoygjXmxVW2sWKAHG88PKx+AY8yDfRxU7v/44w8Nx4CAjf5kBGh3y4ZSH/YoExEReYjnnntOK6PDhw/X1gdUbtE6gVEhMGIEYOiyN954w3kf1+CM22KnMoRWhNe33npLK70YMxjVWNzuzTff1Co0dpbLkCHDLVXa6DDt6OM1v/fee/Lpp5/qtNAvjFCJKiwqvAiP0Vsfogdnex63xXNC2wSCLkbgeO2115xjG2M66BXG5Qj6CLgNGjRwTgshG88NI1agao0DVjReeeUVrRLb6SDsopcY0I9tK/aoKGPFA88nNDRU74u+azwvuzMl2lCOHDmi85k1a1ZducAwfQjY7pYNpT5eQhQPbdu2zZspU6ZdphKQTyjdCwoK+tQcnTPvh0FC6d6ECRPCTIjwt1VIoqTQs2dPHU0CQZUoPvbt24ctBZPNCtWrt7sNWy+IiIgozUF12XX8ZqKkwNYLIiIiSlNszzCHVaOkxqBMREREaQr+Vc/+ux1RUmJQJiIiIiJyg0GZiIiIiMgN7sxHRAkWGRl5Jioq6rwQERF5EFaUiSjBfHx88NdYXPEmIiKPwqBMREREROQGgzIRERERkRsMykREREREbjAoExERERG5waBMREREROQGgzIRERERkRsMykREREREbjAoExERERG5wT8IoHiJiIhwmKONQmRERUVdMUfXhIiIyIOwokzx4uvri5WsqkJkeHl5ZTZH14WIiMiDMCgTEREREbnBoExERERE5AaDMhERERGRGwzKRERERERuMCgTEREREbnBoExERERE5AaDMhERERGRGwzKRERERERuMCgTEREREbnBoEzxgr+wNtYIkehfWJ/y8vK6JERERB6EQZniBX9hbTwgRKJ/YZ1X+H1CREQehj9sRERERERuMCgTEREREbnBoExERERE5AaDMhERERGRGwzKRERERERuMCgTEREREbnBoExERERE5AaDMhERERGRGwzKRERERERuMChTvOAvrKOiojYKkeFwOE6b9wP/wpqIiDyKtxDFA/7C2svLq6oQGd7e3nl8fHxyCBGlKbNmzZLnnntOqlatKkWLFpUGDRpI//795caNG7GexowZM+T8+fN6etmyZVK+fHlJSitWrJCKFSu6vW7QoEHSsWNHSUqmKCDh4eFC6QODMhERUToUEhIiw4YNkxdffFF++OEH2bZtm7z11lsyd+5ceffdd2M1jZMnT0rv3r0lW7Zser5+/fry559/SlLasGGD3H///W6v69Wrl4wbN06S0rx582TJkiVC6QODMhERUTqzdu1a+fjjj7Ua3KpVKylWrJjkyJFDmjdvLsHBwfL111/LhQsX5OLFi5InTx758ssv5bXXXpMqVapI9+7d5dy5c7J79255/PHHJUOGDNKyZUu9fYsWLWTKlCn6GHv37tXq7iOPPCINGzaUfv36yaVL/+vQGjhwoHTt2lWnievxuKhGWzgdEBAgJUuW1OsnTpzovA5BvFq1av95TqiCFyhQQPbs2SNXrlzR05MnT5ZGjRrJQw89JG+/2ZtiIwAAEABJREFU/bZcv35dbztgwAB97D59+uj0mzZtKvPnz9frZs+eLbVr175l2jVr1pRffvlFK/DdunWTv//+W+cflfQuXbrIvffeq88Rj/XHH3/ofTZt2qTLzlbbKW1iUCYiIkpnxowZI88884wULFjwP9dVrlxZA+Vff/0lu3bt0svKli0rEyZMkKVLl8qi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6eHGG2/0ddKBTvHixS2zISgDAHCIVKl74okn7LrrrrNXXnnFdu/efVjPX7RokbVo0cJy5Mjhlc+tW7faBx98YM2aNQtf3nvvvfDjVYm8/fbb7eqrr7bGjRv79AULFti9995rTZo08cD177//+mPHjh1r5513nvXr18/nXbduXXvhhRfC81JVMgiQEyZMsI4dO1qFChWsadOmNmLEiIOu37Rp0zycNWrUyJepdTqU7e7QoYM/NtJVV13l66dQ2adPH98mrcMdd9xhixcv9sdoWtGiRe2ZZ56x5s2b2w8//OAB9LbbbgtPP9hztf7B9pUsWdJq1Khhzz77bHj5f/zxR3gfJLddqlxffvnlXn0+66yzrH379h7Uo9F6ar7a17Gxsf44Ve4bNmxoF1xwgX366ae+rJo1a/p6aZ1k165d9vjjj/s2lCtXLrwd0V4DvXZB0NbvoKrXqjBrH2jdp06dGvV5l112mT322GP+ezNw4EBLyfDhwz2QX3jhhbZkyZL9KtPjx4/33y/te22X9tvQoUPDz9P+iqT9oeVK5O9eZkNQBgDgEKk69vzzz9uYMWPskUce8UrZ4dBX2goi11xzjVcHV6xY4WFJYebbb7+1F1980bp37+4VSFEoVnh66aWXPKhky5bNevbsaQ8//LB9//33HrY+//zz8GM3btzoIf6jjz7yqqDmvXz5cr8oUNeuXdt27NjhbQDnnHOOP0fbcP/99/tjkq5f9uzZPfRdccUVNm7cOPvwww/t559/tkGDBqW4raeddpotXbo0fFv7TOFLIU+tEVp/fS2vbd20aZNvo/z5558WFxfnFUg95/zzz/egFVSCk3uuKq/aR+XLl7e///7bw9pTTz3l8xQFVgU27bfktkv7pFWrVjZnzhwPoXXq1PGfSWnZCqAK/0EVVwcgCsxaR7VB6MBHy1NQjgy8r776qv366682adIkX789e/b4a5b0NcibN6/NmjUrvP2vvfaav4bLli3z34kePXr4wUS05+n13bx5s/9u6YArOevXr/fAe8899/j6a3mRVeX58+fb2rVr/Xfou+++899V7Se1neixM2fOtISEBH+sfg+DfS+Rr19mQ1AGAOAQbNu2zYNNJAWGwzV37txwn6xCb7t27TzgSOXKlT1IzZs3z28rIHXJFt5jAAAQAElEQVTt2jX8lfX27dvt2muvtZNPPtlv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4QZ74410OYEOkOEQlAFEVbduXevevbsBQHKmTZtmh2vhwoX24osv2o4dOwzIyAjKAKJK2npRsmRJGzJkiLdW6P4iRYp4JWnNmjUHncfEiRMtV65cNnjwYL+9YMECf06pUqV8fq1bt7aff/7ZAJj/PVx//fX2xBNPWN68eS137tx2zjnn2KxZs8KPue6666xt27Z+EBsTE2OfffaZ36/gedFFF/nfpVqgLrzwQpswYUL4eYMGDfLTOGpeFSpUsBNOOMG/NZo0aZJ99dVXVrRoUStQoIBde+21tm7dOn/OjBkzwsvQY3W9XLly9tBDD4Xnq/v0d33TTTfZSSedZIcqT5489uabb1rp0qV9W1avXn1Iz/vjjz98mb/99ptvo66fdtpp/t6kfVCjRg1/fzr//PP3C/Dx8fG+nFq1almhQoWsZcuWNmbMmP3mndL7U0rTtW733Xefr4Nev/r169trr+1/lkvt77PPPtsKFizo66DtaNKkid19993hx/z777/2n//8xypWrOjL6dChgy1atGi/+Xz77bfWrFkzf82qVKliHTt2POR9iMNDUAZwSPTB+txzz1lsbKytXbvW5s6da7/88ot/qEczf/58u/LKK+2OO+6wW2+91Xbv3m0Xx6N3SwAAEABJREFUXHCBxcXF2ZdffmnffPONZc+e3R+zc+dOA453+nsYP368X9+yZYsHr+LFi3sg27dvn9+vEDhnzhy/jB492s4991z/ezzvvPM8dE6dOtV+/PFHD6033nijbdu2Lfy8DRs2+N/r119/7df37NljN998s7dNTJ8+3YPmTz/9ZM8//3x4fUQHxx9//LHt2rXLnnnmGXvllVdsxIgRPi3429VtrcehUgBUkP3www/9veTUU0/1ddE2Jyc4eO/SpYt169bNEhIS/GBC1++66y4bOnSoV6lz5szpoTWg63r/uv32223JkiX+vqP9+umnn/r0lN6fDuX9S+uk8P3CCy/YF1984QFXy1OoDfaVHq+DkpkzZ9pjjz3mBx0rVqzw91XR66wArCKDihU6WNFrqdd56dKl/hjd16JFC2vcuLH/Hmh5OgC65ZZbDOmPoIxUCR2dJ4R+zDUcV8qXL28PP/yw5c+f34oVK+Zv6PqATUpV5osvvtgaNmxo/fv39/v0IawPBAXnmjVrWrVq1eydd96xDz74wPbu3WsAzEPef//7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+edbt27dkn3eihUr7PPPP486bdq0aXbhhRda3rx57YMPPihqANLsiSeesLZt2/r1nj17hq8nJ/Lv+/fff7d8+fL53+b777/v9y1ZssS6du1qderU8b/Xs846yx555BHbsGFDeB4XXHCBDRs2zFLjnXfesc2bN/v1efPmWUxMjN1///0HPG758uWWJ08eX1ZmEh8fbxdddJGVLl3a7rjjDkPGRlAGjnOTJ0+2mjVr+vWmTZvaP//8k+Jz7r33Xtu9e7dfX7RokW3dutW+//576927d7LPe+6552zhwoVRp9WuXdvGjBnjHyI1atTYagDSTH/f1apV8+uPPfaYvfXWWyk+J/LvWwewDRs2tLFjx9q1115rX375pc+vSJEi9u6779qmTZts9OjR9ttvv9k555zjf78JCQm+3AYNGtjhWrt2rS9fAVwU1CtUqGCzZs064LEK68WKFbMzzzzTMpO4uDj75ptvrHLlyplu3Y9HBGXgODd79myrW7euX2/SpIkNHTrUEhMTrV+/flawYEGvGpUtWzb8AduoUSObO3eude/e3avR06dPt3r16llsbGyyz+vRo4c9//zz9umnn9qAAQO8AtWuXTtf5k033eSP0Ydh9uzZ7fTTT99pANJMQVN/33v37vW/LR2obtmyxTp06GD58+f3A1RVhCdNmuSPT/r3PWPGjHCYW7Zsmd144402cOBAe+CBB6xixYqWLVs2D6ujRo3ygLtnzx6vAp944oleGT7hhBP092yvvvpqeJ30zdV1113nYVvvE4MHD/b7FyxYYOeee67lyJHDmjdv7gfgen+57LLLbOrUqR7AAz///LNPO/XUU8Prp3CuyrduB1XuIPDPnz/fGjdubKVKlfL1vvrqq23lypXJvmclt67y999/e4VehYZy5crpmzArXrx4ONR36dLFqlev7gcQ2p5ff/11v9dG609QzvgIysBxTh+QQVBW9Uhv+j/++KN/bapWiSlTpni1SNXeHTt2+AdsrVq1vMKkdovID9LkntexY0d/zLfffmt33323f2DrA/WLL76wESNG+LQgdANIu7/++stWr17tf1P6O82dO7dVqlTJXnrpJf+bVHuD/ub1TZD+niW5v29VkMuUKRM+sI2kCnDnzp19GQq1mr+Wq58PP/yw3XPPPbZv3z6/fcMNN3iVes2aNfbkk0/687Sup512mt+v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+/TTT/d7jG5rH5x66qk+D23/vn379nvMsGHDrEWLFr6P6tWr5wcb69evD08PXruxY8da+/btrWTJkuFpb7/9tl1yySW+jlqHm2++2WbOnHnA9sTFxdknn3xiLVu2tAoVKti1115rq1atMhwZBGUAADKRnDlz+s+ePXva6tWrLV++fB6Ib731Vg9fCmKnn366h8P77rvvgDB3MAqlTZo08et6fteuXe2MM87wUHnppZfaxIkT/bYC5dKlS+2xxx6z3r17h5+fI0cO/6nAN3z4cKtZs6avW0rOPvts/xmE3I0bN3pAzJ49u02dOlVnWdpvuoKx7lNQfPPNNz1YXnXVVX6goPX8/fff95u/Dh4UokuUKGHFixe3adOmWbt27WzHjh0+XSFZ+23evHl+wHH11Vfbl19+aR06dAgHaoVk3dZ66YDghBNO8O2/7bbbwst599137cEHH7S///7bbr/9dsubN68NGTLE7wvoecFr98svv/i2iJaj0P/rr7/aZZdd5uuqMKztShqC586d68vVftqwYYN9++231qtXL8ORQesFAACZSGzs/2pcpUuX9urtypUrvQKpyqUqjP369bPFixf7wMC//vrLli1b5lXQlCggrlixwgNn+fLlwwFPwXjv3r1eqX755Zf9PlV8FTbVz3znnXd6IA7WS/NQqNY8DoUqrxJUTydNmuQ/27Rp46Fbwfess84KB2C1hejAYPbs2R4oR4wY4SFdFXQ956WXXvLKbmDRokU2evRoD6WqQletWtXWrFlj33zzjR8cTJ482R+nAw0NmJNmzZr5PixcuLDffu211/ynDh4UlKV58+b20Ucf+cFI5cqVff1Vadc66HLeeed5cFd1XsFeleBs2bL5c3WwM336dMuTJ4/f7t+/vyUkJHi1PBisd9FFF/m6qZL+0EMPhbdH+0Hbr+r3k08+ac8995y/ZjgyqCgDAJAJKcyJvr4/6aST/Pq5557rPxWYc+XK5dcjv/o/XNu3b/fQK6rgBhTiFE537txpP//8837PUVg81JAsakfInz+/B0eFRbVrKFQGoVXVVgV1BVFtV7FixcJhWqE3qGTXqlXLfyZdH4XYoHJboEABq1Onjl8PgndwEDFo0CAPpGqpKFWqlN14440+bdeuXeHK8plnnhmeb+3atf2nKsOiA5RRo0Z5SBaFeNGZRDZv3rzfOungIwjJmv7jjz/6dR0EBBTkVTGODMmi110hWdQKInqNtY+Q/qgoAwCQCQUtGKI2BQnCl+TOnduD7KG2XkSjCmzQ+lCkSJHw/Qqyuv3PP/94mIt0yimn2OFQJVrVV7U7qK1A7QfVq1f3UFypUiUPqaooaz2CNo0g/KvtQK0mkf79919vtwgkbf9QKJdt27b5zxtuuMHbLtTGMXToUL/vqaeesgYNGtjzzz/v+zbYB6oiJ6WKvag9Q60oqkSnJHIfaQClwrKoXSMlBQsWDF8PDhJEr3Pwe4D0Q1AGAABRKZQpFCsoRoZP3VaIFp1vOZIGzx0uBWAFZVWD1Vt9yy23+P1qH9HAt6BSfs455/jPIOzq/ocffviA+UUeRESutwQhW9Xl4LHPPPOMV7DnzJnj1V31G//www/ewhE5f1Wb1RMdSX3Pan9RS4b2i1o4NChPBxGdO3e2aIIWDIkM8knXFccerRcAACAqVaUbNWrk17/44ovw/er51WA4Bdagxzgtgkrx66+/7mEzaJVQUFY/8eeff+63g6ActFmoH1qDBlX9VbuHKsOqrEZWWnWf+plF1VsN5pOgjULzvueee/w5F198sfXp08cGDBjg05YvX+5Vei1DtM1ali4K3Fq+9tGSJUvCVedHH33Up6tlI6CWkoPROas1SFIUzgMaPKhqeeSASRx9VJQBAMBB6RRnqvTqTBY6y4YGuGkQWzDtUM5skRK1WigwauCdBBVktVyIqrzqxdYARlELhPp0FyxY4NdVwVUbhs6MoVO7KdwnJib6Y1XxDs5mMW7cOA+wmk/Q461+Zw2YU9uHTvumoB0E8yCwq0qsM03otHcK3VpX7Q/1gWvAnVpE1PagPmEN7lPVecyYMX7qPvVWa7DeXXfdddDtVx+ygrEq1grzGoSpfa7TzGnZOHaoKAMAgIPSoDVVkzUITmdwUKhUu4HOuJFeIU7tHUFVWYP7gj5cnaYuaJEIKtuiUPrOO+94AFaoVOuEBh7qLBAKsxIMbtP8dCYJVavVP6xQq7NpBKdq6969u5+5Q1VhDcjTvLR9OrVbcIYLDdDr27ev902rLUNn2tAZLdQuosGFeny3bt18X+nffuv0eWrb0IGEKt3qX046oC/S5Zdf7v+uXOum7VJ414DJDz/8MHzmDRwbh99IBIS0a9eucM6cOReE3kiKGI57oQ+TPqEfm0O/D30NSGeDBw9OaN26dUxqel8BZC0jR45MXLVqVVyvXr0S7Cig9QIAgCxO1c6UBoqpOqzzMWeF5QLphaAMAEAWd6wGhDEQDZkdQRkAAACIgqAMAAAAREFQBgAAAKIgKAMAAABREJQBAACAKAjKAAAAQBQEZQAAACAKgjIAAAAQBUEZAAAAiIKgDAAAAERBUAYAAACiICgDAAAAUcQakArx8fEJiYmJfxsQEvpd2B667DQAR8zGjRvtvvvus8aNG1vZsmWtatWq1qZNG5s0aZIdTdu2bbOGDRvaWWeddcC0J5980q677rrw7dBnhX3yySd2/fXXW5UqVey0007z699//334MRMnTrQaNWpYaqxcudK+/vrr/e6bN2+edevWzZo1a2ZlypTxn0888YQtX77cMprQ+6YNGzbMkHERlJEqcXFxsTExMacYEBL6XcgTuuQyAEfEP//8Y61bt7acOXNa//79bc6cOfbRRx9ZuXLl7JprrrElS5bY0fL00097YN+6dautXbt2v2lz5861WrVq+fVdu3b5ug0aNMjuuusu+/XXX23BggV22WWX2Y033mjvv/++P27mzJlWv359S42BAwfut+1PPfWUXX311Va3bl0bPny4/fXXX/bee+/Z/Pnz7ZZbbrGM5quvvtrvoAEZD60XAABkcPfee6+HSVVsA6effrr17dvXVqxY4WGwR48eNnbsWHv88cft0ksvtSlTpngVVRVcPV8++OCD/SqY7du3D1eAe/fubatXr/YArOflzp3bunTpYo0aNQo//o8//rDp06fbY48ejn0KAAAQAElEQVQ9Zu+++65NmzbNLrroovD02bNnW8eOHf26qrj//vuvffvttz6vgJZ30kknWaFChfz2rFmzrFixYnbuuefa0qVL7YILLvB1KVWqlO3cudNeeOEFn8fff/9tzZs395BeoUIFD8Wvvvqq1atXz7Jnz+7zGDx4sI0fP97Kly8fXl7hwoXtlVdese3bt4fvS8t+eOSRR3wZefLksbx589rDDz9sderU8Wk6CFCl/eeff7ZWrVrZ7bffbm+99ZaNGjXKZsyY4evauXNn/1bg008/tQcffND3xd13320DBgzwdRo5cqRXmrXcBx54wBo0aHDQeePIo6IMAEAGpiD53XffHbQiWq1aNW83EFVs1aKh0KeK88svv+zBWYFPj9F1hVwFzxdffNG6d+/u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MgAAABAFQRkAAACIgqAMAAAAREFQBgAAAKIgKAMAAABREJQBAACAKAjKAAAAQBQEZQAAACAKgjIAAAAQBUEZAAAAiIKgDAAAAERBUAYAAACiICgDAAAAURCUAQAAgChiDQAAZEm//fabzZkzx461li1b2htvvGEZ0dNPP22dO3c+4Pqzzz5rHTt2tPS0d+9eK1GihC1atMiQORCUAQDIorp162a7d++2Y+2zzz6z//znP5YRTZ8+3c4444wDrs+cOdNq1apl6UnzrmMAggAAEABJREFUzJ07t1WsWNGQORCUkSrx8fEJoR9TDAhJSEjYELpsNgCHRRXfW2+91S8//fSTHa4tW7bYXXfdZWXKlLHGjRtbkyZNbOrUqT7t0ksvtfnz59tTTz3l877sssvsscces2bNmtnAgQP9MY888og1aNDAmjdvbq1bt7YpU/7vbf3PP/+0Bx980MNi1apVrUePHrZjxw6fNn78eDvvvPM8iDdt2tTOPvtsmzBhgg0YMMDXoVWrVuF56f4aNWrs97w+ffrYBRdcYI0aNbKhQ4eGl/nOO+/4+mlbrrjiCp9fhw4dDmVX2Ntvv+3rUbx4cWvTpo0vS3bu3OnL0zwrVKhgd9xxhy1evDj8vNmzZ4cDceR1hWYdZCg4lytXzu69917btGlTivtm165d9vjjj/uy9LzI5f3+++9Wt27d8Gunfa4KtirNyJgIykiVuLg4/e7UMSAkNja2UOiS3wAcsgULFnh4HTlypF8UDBXODsdrr73mAW3ZsmUeDBXYfvjhB592ww03WPXq1W3UqFEehrW8zZs327fffmu33367vfnmm768t956y8aMGWPXXHONXXfddR70RCFa13/++WcbPXq0V4U///xzn6YAvn79erv88stt3LhxdvHFF9t9993nYfT777+3888/3wYNGuSPVfjUegTPW7t2rdWuXdu+++47e/HFFz1sKyhq/bXM3r17+/V27drZM888Y2eeeWaK+2HSpEl+QDBkyBBbvXq1h+2HH37Ypw0bNszXSUFa4V1h96WXXvJpy5cvt3///dfXJ/L6ypUr7Z9//rE9e/bYrFmzfJ9qO7/88ssU982rr75qv/76q6+TArXm8fLLL/s0VZQ1/7/++statGhh9erV8/2UPXt2Q8bEYD4AAI4Bhbd9+/aFb+v6xIkTD+vrflWSP/30Uw+dquQGF1FvsqqdouC3bt06u/vuu/32tm3bvOo5fPhwr3rKVVdd5dXNv//+21sDVN2NXM5pp51miYmJ4XnfeOONXsEVhXWF02rVqoVvq8Ug6Xro+rXXXuuPFYXIXLlyWbZs2ezdd9/1aWeddZZP04HDLbfcEn5uchSuVXkOArnmc9FFF/n1O++80y8B7V8dWMi0adP8OVqHyOuq/KqSHIRtbf/pp5/u+1AOtm+0XxXuP/jgAytcuLBPf/LJJ8P7QkG5cuXKXu1/4oknfBuRsVFRBgDgGFCLQFIFChSww6Gv7h944AF77rnnPKT269dPrVA+7Y8//giHTAU/BcSyZcv6bQXWDRs2eItEoUKF/HLSSSeF10GV565du9qVV17pLQSarmAf2b8bWelV1bhmzZr73Q4eq4psEKD1PFVRA/PmzfNwGvpGyttD1MYRUGVY2xI892Di4+O9eqsqdiBPnjxWsmRJD6+vvPKKHwQogGs7VHlWWJW5c+eGD0wir2t/Rc5PVG1W+E1u32hbQ9+42jnnnBN+XrFixSxv3ry2detWf03U9qLrkY9BxkVQBgDgGFDFU0ErcOqpp3pwPVx6zldffeVf/7///vse2kRtFVWqVPHrCqiRlVn13mp5CstJLwrMquQqvKptQ/21CqI5cuTwMKhqsQJfEGAVZmfMmLFfoFV1Vrf1WLVbqEc56fNEgT143Jo1a8JVWFGVXMG+SJEiyW6/WiBUmY48yFDFWO0cL7zwgrdGqAKs3m1VhEuXLh3umY7cR5HXtT06O0VA4VhBumHDhsnuG1WU8+XL59MDwRkuFL5PPvlkGzt2rFeUVXlGxkdQBgDgGNBX/JMnT/YAF1wOp6Ks6qV6ZYN2CAU7BTSFNlVjVbVUW4AkDcpqFVi1apVXfmXFihXWvXt3W7Jkid9WpTeo/KolRL2/eo56abVchddSpUr59IULF/rPoEqr+SqQqjqr5Sr8qrqb9HmioKxwqn2hyqwGN4qC6vPPP59iNVlOPPFEO+WUU3xfirZBvdMK5erLVqU7Z86cPu3jjz/2XuRKlSp5wFeg13pGXtf+VGhWP3Owb9VHrP5r7c/k9k358uU98Af7UQcvbdu2te3bt3tQ1vMUlh966CFvNYkcVIiMiaAMAMAxpMquLodLvcWqxCqEqk1AQbVTp05e9VToVDVW7REKjAp+kUFZbR8azKczMujMEzoThQKsgp4oyL3++us+4EwVa/UUK2Dq3MIK10FFVoKqcFBF1W0FR/Xl6rEavCZJn6dwqiCt1ouYmBgfdKeeaa2LfmoeQftGSvRcra8OFu655x7r27evL0vVXy1XvcAKqdpXwWOCkKqgHnk9OO+0tlnBWUFbfdtq4Uhp32j/6UwdOm+0XlMNlFQ1W60gCspBxVqBW6fLU58yMrYYA1KhXbt2hUNH6AtCR9JFDMe90Idzn9CPzaHfh74GpLPBgwcntG7dOkZhCscPBWz1EweD8gAZOXJkYuhbi7hevXol2FHAWS8AAMAxpdPB9e/f36uvqobrtHc6E4bO4KEWjINRxVnngAaOFIIyAAA4pnQGCLUjqFVEPbxqYVBriPqtdX5m4FghKAMAgGPqhBNOCP+DEiAjISgDAAAAURCUAQAAgCgIygAAAEAUBGUAAAAgCoIyAAAAEAVBGQAAAIiCoAwAAABEQVAGAAAAoiAoAwAAAFEQlAEAAIAoCMoAAABAFLEGAAAytb1799pdd91lDz30kN+Oj4+3Tz75xK6//nqrUqWKnXbaaX79+++/P6T57dy508qUKWMLFy7c73pKWrdubcOGDYs67aeffrKqVavaoahUqZJddtll9sQTT6T42FtvvdXXb9OmTfvd/9lnn/k8jqTu3bvbeeedZ+eee+4B01auXGmlS5c2ZG4EZQAAMrF9+/bZzTff7IG2b9++tmvXLrvmmmts0KBBHp5//fVXW7BggYfGG2+80d5///0U5zlnzhz/WaFChf2up2TKlClWq1atqNOmT59u1apVS2kWtmTJEtu2bZsH3UceeSTFx8+ePdvKly9vI0aM2O/+uXPnWvXq1e1Ieuqpp6xVq1ZHfDk4dgjKAABkYs8884z98ccf9sILL1hsbKxXYf/991+vKNevX9/y5cvnj7vuuuvszTff9GqtTJgwwTp27OgBuGnTpvsFTc2vdu3aPr/I6wrjffr0scaNG/vz7rjjDlu8eLE/Z9GiReH5lixZ0mrUqGHPPvvsfvMMQvS0adPsyiuvtEaNGlmTJk2sd+/etnv3bp82a9as8PJSsnXrVl/+448/bkOHDrU9e/aEp82cOdOr6aLw3blzZ99OrXvPnj1t+/btPm38+PFeFdZ2XXDBBb5OmlcguXUVHUgcygEAMieCMgAAmZTaDQYOHGj9+vWzE0880Vsu3nrrLevSpYvlzp37gMcrCCqs7tixw1sWzjnnHK82d+vWze6//35bvny5P07hMDLUBtfVVqH2jbfffturx1r+Sy+95NN+//13y5Ytm1d3//77bw/uqrj++eef+81HFW+F1iuuuMLGjRtnH374of38889eARcF5UOt0CoMn3766dagQQNvcxg5cmR4WlDB3rhxo7eEKCCPHTvWRo0a5eF2wIAB/rj58+fb2rVrPZx/99139uKLL/r+UDtLSusarAMV5ayLoAwAQCb15Zdf2kknneSVTlHoVduCKqfJUYhWQOzQoYOH2/PPP99y5MgRnq6QGYTjyOt33nmnh01VjAsWLOj3JyYm+jQF5auuuspbPFQNVjDNnj27rVu3ztasWWPLli3zKvOrr77qz2/btq3FxcVZkSJFrGHDhjZv3jyfj4LyofYyRz5WwV/zFgV+VYxVUR4yZIiVK1fO2rRp4+ul9VawVmuGKDRfe+211qxZM7+tqnSuXLl8v6S0rlu2bLG//vrLQzayJoIyAACZ1KRJk7zaGRMT47c3b97s4VTV5eQo6KntQqG2ePHiHrb1HFVl1V6hgXsKf5HXFYhfeeUVD8NnnXWWFSpUyCvGlStX9nmqsqpwHFBAVlVWj1MYVcuHguYvv/xiEydO9PuDiyriBQoU8OdNnTrVA/WhUH9yEJS1LQrHqvwGVWkFY+2jCy+8cL/nad0UmIP1rlev3n77JnhuSuuqqrq2X8EaWROnhwMAIJNSVTgyBKrtQeFU7Q66Hmn06NFeAb3kkkt8AJr6hy+99FKfpt7lzz//3K+rRaJo0aJWrFgxP1NFcP35558Pty7kzJnTEhISvKKsUKtlqqJcokSJ8PI0n1NOOcV7mdUvHQRaVWxffvllPwtHUuol1rzUTnEoFMBV7RUF29tvv90ryDVr1gyHbfUTRwZZBX4FXD1PLSjqnY7sMY7sOU5uXeVw2kSQOVFRBgAgk1KbhUJrQIFW7RS33HKLV0NFwVN9zLfddptXdNUGoZ5cDfSTDRs22HvvvWcVK1b022q1qFOnzgHX1dahABos7+OPP/YWB1WKg1YEBetgma+99prddNNN4fmceeaZfl0VWFVp9RidsUMBXQMSRcFT4TsYyDdjxoz9BtZFUvVYy41s09CARQX0MWPGhO9XkNWAvaBFREF6xYoV1rJlS1+e9kmpUqXC81BQDgYBJreuwWMZyJe1EZQBAMik8ubN61XRSL169fJWCYVUtQooMP7zzz8e8lR9ViDu1KmTV1R1Jocnn3zSq8xffPGFffPNN15hDUJt5HWFb7U6qNVDrQrq3VUF+Z577vFT0KlPWgH07LPP9kCtgK3T04meF/Q5a6CcWhc0X62nAvXVV1/t05IOjNM6a/BcNHqsqtXBWT1E7SM33HCDB+Ag7Hbt2tXXU/Nt3ry5LV261Cvjep7WK7LNQ1XyyHVIbl1FyznUNhFkTjEGpELoTbVg6I3n89CbxnmG417Hjh3/GxMTsz30+/CSAels8ODBCa1bt44J+nDxf9RqcOqpp/pZLrIC9T/rErQ6fPvtt161Vj91RqM2lrJly/o/FonWo6z7VbUPziSC9DFy5MjEVatWxYUOCBPsKKCijFQpXLhwbOhDq7IB5r2B+UO/D3kMwFF10UUXeSU4q0g6kE/Vcv0zlYxI7SQM5Mv6CMoAAGRSOtODeobVL5zZaQCi/oGI/i20BgyKBh1mtG8S1K+s8zJrPWm7yPo46wUAAJmUQqQGrmUFaiHRwMKMTqff++ijj1J8nHq4abvI/AjKAAAAQBQEZQAAACAKgjIAAAAQBUEZAAAAiIKgDAAAAERBUAYAAACiICgDAAAAURCUAQAAgCgIygAAAEAUBGUAAAAgCoIyAAAAEEWsAQCATG3p0qX2+OOPW9OmTa106dLWpEkT6927t23cuPGQnv/0009b586dD7ienL1791qJEiVs3rx5UadfeeWV9sYbb6Q4n9mzZ1uZMmX88aNGjTIgIyEoAwCQiY0ZM8YaNGhghQsXtiFDhnhofv/9923q1Kl20UUXWXx8fIrzmD59up1xxhkHXE/O3LlzLXfu3HbaaacdMC0hIcGmTZt2SPP5/fffrX79+h6SFZaBjISgDABAJvX333/brbfe6h5omsYAABAASURBVFXgO+64w8qXL2/ZsmWzokWLejVXleE9e/b4Y9966y274oorrGzZstamTRsbP358eD6q6taqVeuA6xMmTLCOHTtahQoVvFo9YsSI8HNmzZplNWrUsNtvv90KFSpkzZo1sy+//NKnLV682H9WrVrVfz7yyCMe5ps3b26tW7e2KVOm7Lfs6tWrG5AREZQBAMikPvroIzvllFPs+uuvP2Ba3rx5rX379l71VXVXrRkPP/ywzZ8/32rXru3XZfny5fbvv//6fZHXd+zY4SH8nHPOsQULFli3bt3s/vvv98eIKsGrVq2yu+++2/755x8PygrEouUpJOfKlcvefPNNr1IrqKv6fc0119h1111nu3bt8scqcFerVs2AjIigDABAJqVqrCq9KVHwXbRokZ199tmWM2dOr+4mJib6NIVaVXQVaiOvK2ArVHfo0MGr1Oeff77lyJEjPM+ZM2daly5dvL0imOeaNWt82owZM+zMM8+0bdu2hQN6uXLlfNpVV11lGzZs8Gq4+pyDyjSQEXHWCwAAMqktW7ZYvnz5UnzcN998460YqhYrxMpll13mP9VrHLRaRF7XIL1nn33Ww69aJdTCoRYLDRZUtVlBWYMGA3rcSSedFJ6PWjbmzJnjobhVq1YHrFOBAgXsjz/+sDx58vg8gYyIijIAAJlUxYoVw/3AkRRq1Sqh8Prrr7/abbfdZv3797dx48Z5cFX7Q9AXrLaIKlWq7HddAVzhVpcvvvjCVq9ebS+88ILVrFnTH6eQrNYOhd2Annvuuefazp07PSBrPrt377ZTTz3Vl5n0olCtanIQzIGMiKAMAEAmpcF6GkDXt29fD7eidgkFYbVl6EwYarnQ6dfUyywKsRrIpwF6wdkpFFYjrytgr1271s9GIQq27733ngdzUVBW24QeLwrSH3/8sbVt29bnf+KJJ/r8dUYM9TFrXWTFihXWvXt3W7Jkid9OOpBv4MCBXmUGMgpaLwAAyKQUgIcPH27PPfecV4ylYcOGdsMNN9gFF1xgcXFxdumll9q3335rLVu29KD6wAMPWN26df1MGWqlEFV/g8q0rsfGxlqnTp08+G7fvt17nC+55BIbNGiQNWrUyCZNmmT33nuv9ejRw6crNKsXWcFaLR4Kv5pH8eLFfTCfzsgRExPjAwEfeughPzuHKHBrmmg+mt/EiRMNyChiDEiFdu3aFc6ZM+eCIUOGFDEc90IfqH1CPzaHfh/6GpDOBg8enNC6desYBS1kHQrXCvpqDdFP0dkw3n77bR88CEQzcuTIxNC3FHG9evVKsKOAijIAADjqgoF8QUheuXKln36OkIyMhB5lAABw1Kk/Wf81UP+NT+dpLlmypNWpU8eAjISKMgAAOOpuvPFGvwAZGUEZAAAAiIKgDAAAAERBUAYAAACiYDAfUmX9+vUJIQsNCAn9LmxNTEzcbgAAZCFUlJEqhQsXjg2pZEBI6Hchb+jHUTmnJQAARwtBGQAAAIiCoAwAAABEQVAGAAAAoiAoAwAAAFEQlAEAAIAoCMoAAABAFJxHGQCALGDbtm3WsGFDO+uss+xIaNmypb3xxht+/bfffrM5c+Yc0vNat25tw4YNizrtp59+sqpVq9qhqFSpkl122WX2xBNP2IIFC6xQoUJ+PalGjRrZ+PHj7Uj5/fff7corr7TSpUvbqFGj7O2337ZLL73U12f16tUHPL5+/fo2ZcqUg85P23/xxRcfcH/Xrl2td+/edqTs27fPmjZtat98843h4AjKAABkAU8//bTdd999tnXrVlu7dq2lt88++8z+85//+PVu3brZ7t27D+l5Com1atWKOm369OlWrVq1lGZhS5Ys8QMBrcMjjzziIb1mzZr21ltv2fbt//e/jnbu3Gnz5s3zaUeK5v3RRx9ZfHy8Va9e3W688UbfHyVKlLDixYsf1rxWrVrl81m5cqVNnjx5v2naRs3/SMmWLZv/vhzJMJ4VEJQBAMjk/vjjDw+dV1xxhYeradOm+f0Kl6p0KpCJfirMvfnmm+HnXnTRRfbxxx/bn3/+aQ8++KCHWlU5e/ToYTt27PDHTJgwwWrUqOHXVT2dP3++PfXUU14RTu55ixYtCj+/ZMmSPo9nn312v/UOQrTWWZVaVYSbNGniAS4I47NmzbLatWvrnxv57ZkzZ3o1VNXzd999Nzy/2bNne6W3YMGCfvuHH37winaLFi2sWbNmNmLEiPBjVZ1+/vnnffsvuOACa9u2rS1fvjw8XYG8QYMG1rx5c59HZFV47ty5lj17dqtQoUJ4uQc7GEiOtkPz6Nixow0aNCh8v6q9mhYcRCS3HdpPd999t7Vv3973ibZL+/tQtkPb/tdff/mBCKIjKAMAkMk98MAD1qdPH79epUoVbw+QE0880fLmzRuuur788st2zjnn2JYtW/z2pEmTvAKtgK1AtWvXLvv5559t9OjRXr39/PPP/XEKgkF184YbbvDrajtQAEvueVoPVS7Lly9vf//9t73wwgsesBWuReFYAVPP79y5s6/HuHHj7MMPP/T5BeFRQTmyuqpqq7ZTAXPgwIGWkJAQflwQLlWhvf322z24f/311/64/v37e+hMTEz0eeiiZX333XcWExNj77//vj9XBxI68FDFesyYMXbNNdfYdddd5+spCrEK7gHtn0OpjCel5+ngQiFd271s2TK/X60lJ5xwgpUpUybZ7Qgeq/louuahMP3iiy8e0nbExcVZuXLlwgc0OBBBGQCATEwhSKEx6PWNDMpSrFgxD8Pr16/3SqMqjkFQVui64447vFL7zjvv2EsvvWS5cuXygHbaaad5oBQFymD+kdcluedpPa666ipfppbRuHFjr8SuW7fO1qxZ48FQVeZXX33VK84KjApvRYoU8X5rtVGIAnDkMhWwFUxVec6TJ4998cUXBzxOlVZVWYM2DFVutW9UDV66dKlXvZ977jnLly+fT1f1Onfu3F6Ff/zxx+3hhx/2ECnahg0bNnjYF80jMrgrqAYV98Oh9dU6FShQwK6//vrwgYGCeDC/5LYjmIf6mXUwInv27PHX4lC2Q3LkyGGbNm0yREdQBgAgk1L41YC24cOHe4uFLrfeeqtNnTo1/BiFTgXloUOHehhTKFNQXrx4sQdRVRk3b97sYUutDwpims/3339vZ5xxhs8jslKrdokgjKb0PAU+heOAAvLevXv9cQrcGqCn9fvll19s4sSJ4W3QpV+/fr6uou0JgqPWW4JgqEr04MGD/XrQ16u+X81TbQpJ95fmqfXS4/Lnzx+eNmPGDA+gmofCZKtWrcLrctJJJ/ljgvWJrHArcGs/pqafOHK/ajvURqLQqnXQ/Slth3rRdbBRr1698DS1xRzqdoj6o3WAgOgIygAAZFKqGKr9QIEouCg8KRgHfacKR7pv5MiR1q5dO2/FUMB95ZVX/Ct9VXBvueUWr/iqnUJBVC0ZqjQq8CoIKnwFQVVf5SuISXLPUyBWRVmD3AKqBJ9yyikeqjWfIHCrCqq2kMjt0KVv376+HZrX6aef7o9VAKxTp054ngr66i1W0NY0racer5CZM2fO8OMUQBXyFSpVAQ62QXS2CoV4tYGosnzqqacesC66aF+qzUOhOgjGmtfJJ5982AP59Jqoqh6sh6rx6jFW/3FQoU5pOxT4K1asuF/gD9o5UtoOUcjWtgcVZxyIoIxUCf3hJoS+WpttQEhMTMym0IfHVgNw1Kh39auvvvLWiUjqCVb7g8KcFC5c2E/PptO7BT3L+updz1e/qqgiGlQlNZBsyJAhPg+1SSiMaR5qjVCoUghXqEvpeUHbhAb8iULfa6+9ZjfddJPfVlA+88wz/XrlypU96Ooxmo96nJ955hmfpqqrAmwwkE+3g4q1KJirNaFnz55WtGhRv6j1QBVZVbdFYbNLly5e3VZID8JkQAFbYVGBU+uvQY96jKxYscK6d+8ePvDQQUPSgXypabsIqtqaV0AHPXqt1DOs9Tvc7Yisbqe0HaLfH+2vyIMG7I+gjFQJ/fGGslHM4Y9cQJYUOmgqEPoQy2sAjgqFyfvvv9/uuece79FNSi0NkUFZofTmm2/223q8vs7Xac00YEweeughe/31130gmL6q11f9qtLqDBUKWsHANX19X7ZsWQ+4qmom97xff/3Ve4gV0M4++2zvsVUl+K677vJ5RZ4pQqdXUzuA5qtlKVBfffXVPi0IlIGk/cqibVu4cOF+p4VTO4pCupatM3UozAbnc1alO3IekYMVg7OC6ABEZ+A477zzrFSpUuFWD61P5Lmqkw40PFSaT9KAqoGWCq4KvEEQT247kgZl3VYri16jlLZDPv30Ux+cGRyE4EAxBqRC6E2pUKhqsTBUPShiOO516tRJw+03h34f+hqQzgYPHpzQunVrHZwbjj8agKaL+qszAlVlVQXu1auX31Z1V33aSfuIA/qHIwMGDNivXSQjUNjWmVLULqODqcxi5MiRiaFKeVxo/yfYUcAhBFIl9FVXqIiYyKcWAOCIihzIlxFEVp/VKqKzTwQtJJmFvmHQYElVqzNTSD4WCMoAACBD0vmW1ROtKq4GDB5LOg2ezu6hAYkK7lon9X1rsGIwOC4zUIuK2jHUlqFT8CF5cQakws6dOxNDVWUqygCAIyY4a0NGoF5eXQL6xymHQr3aGYn61zPaOmVkBGUAAAAgCoIyUoUeZQAAkNXRo4xU2b59eyJD0AEAQFZGRRkAAACIgqCMVDnhhBMSjfNwAwCALIygDAAAAERBjzJSJWfOnAzmAwAAWRoVZQAAACAKKspIla1bt3LWCwAAkKVRUQYAAACiICgjVbJly7Yv9GOpASGJiYnbQz92GgAAWQitF0iV7du3q+2ivAEhMTExeUKXXAYABzFy5EjbsmWLX58wYYKdccYZdiTt3bvXSpQoYYsWLTIgtQjKSJXixYsnhKqI/P4AAFK0bt0669atm5144ol+u1GjRvbHH3/YkTRz5kzLnTu3VaxY0YDUIuggVVavXs1gPgBIo99++81uvfVWv/z000+WGu+88441a9bMGjdubFdccYUNGDDAOnTo4NPWr19vN998s5177rl2wQUX2G233Wb//POPTxs/frydd9551qdPH5+m8Dp06NDwfKdNm2ZXXnml39+kSRPr3bu37d69O/zchg0b2t133+3L3rFjh1eJO3bsaBUqVLCmTZvaiBEj/LGq6LZo0cJy5MhhrVu31mBwa9mypb311ls+fcmSJda5c2d/jrahZ8+e+tbSp2mZWkb79u19+mWXXebLORS///671a1b16+rkq1lazla348//tjvDxV8fN/o/oCW2aVLF7+uddQ+LVu2rLVp08a3W3bu3GlFixa1Z555xpo3b24//PCDrVy50uej/VKzZk375JNP7PTTT7e5c+f68u+66y4rU6aMb6P259SpUw0ZH0EZqVKwYEHOowwAabBgwQIPfmpJ0EWBbPr06Yc1DwW3Rx55xMPVRrzfAAAQAElEQVSdrrdr187D25lnnunTu3fvboULF7YvvvjCvv76a8ubN6/df//9Pm3+/Pm2du1aq127tn333Xf24osvetVXLQu7du3y0Kd1GjdunH344Yf2888/26BBg/y5ixcvtjVr1tjtt99u3377rd+nsH/OOef4dmk+Ws7y5cu9olu/fn275pprbNSoUb4OCrFVq1a1jRs3eoBVeBw7dqxPnzNnjof9YB/Nnj3bevTo4euhwK31PBSqKGvb/vrrL39evXr1fP2LFSvmwV5Gjx7ttxXeZdu2bX7goXCuA4XHH3/cHn74Yd9Xmpeuy59//mlxcXHe2jFmzBg7//zzfX/Fxsba999/75d3333XA7XC8muvvebLXLZsmb9O2h6Fa2R8BGWkysKFC6koA0AaKEzt27cvfFvXJ06caIdDYezaa6+1s846y28r2CqQKYROmjTJvvnmGw9lhQoVsuzZs9ull17qFU5RINVzVWGVPXv2WK5cuTRY21599VUrWbKktW3b1gNhkSJFvFI6b948f6zaJvQ8hUBRi4PCpCrZer6CoyrIAS1T6yShzw8PkLo9ZMgQK1eunFdrFTJDRRhr0KBBeB1nzZplXbt2tfLly++3jodCQVmP1TarQvzggw/6/doXQTB+6aWXPOAHvdOqIKtyXbp0aQ/GqoafffbZ+idbvl6qQAfbU6pUKQ//om2fPHmy9erVy/eXlqHnVa9e3feHKsnabh2QJCQkeEU5qFojYyMoI1VCb4L0KANAGhQvXvyA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Gzx4cELr1q1jQgwZiyq8r7zyip177rmWHq666iq/6EwdR0v37t29oqzqezQK9Dp/891332049kIHg4mrVq2KC71eCXYU0HqBVKNHGQCObxdffLF98cUXll4ONpDvSAoGHQLREJSRartCQmF5vuG4F/o9UPPhZgNwXFGbh1oa/vrrL0urP//809svVOGN9q+k05vOE63/JKh+5aMdzpF50KOMVMuTJ8+uffv2nW047oW+WdBJVHk/AY4zOkvGvHnzLD2oV3vDhg12tOi0d7qk5NlnnzUcv6goI9ViY2N3hH7kNgAAgCyIoIxUK1q0KEEZAABkWQRlpNr/H3G6r1OnTtkNAAAgiyEoI62oKgMAgCyJoIy0IigDAIAsiVHqSJOYmJid8fHxuQwAACCLISgjrXaEwjIVZQAAkOUQlJFWtF4AAIAsiaCMtKKiDAAAsiSCMtKKijIAAMiSCMpIK4IyAADIkjg9HNKKoAwAx9DTTz9tnTt39ut9+/YNX0/OyJEjbcuWLX599uzZVqZMGbvyyivtueees0KFCh308vnnn1tqaf5vvPGGpcVvv/1mc+bM8evdu3e38847z84999wDHrdy5UorXbr0QeeTmn0Wuexjvc8eeOABGzBggOHIIygjrehRhiUkJOzat2/fbgNw1E2fPt3OOOMMv/7f//7XBg0alOzj161bZ926dbMTTzzRb//+++9Wv359GzVqlN1///22YcMGv3z22WeWM2dOf3xw3+WXX26pEXqPsGnTpoXXM7W03rt3/++t5qmnnrJWrVpZ9erV7XAd7j5LuuzMtM+QNgRlpNUq4/fouBcbG5szW7ZsJxiAo07VzVq1atnevXutaNGitnjxYq8W33XXXV71bNy4sTVp0sSmTp1qixYtshYtWliOHDmsdevWtnXrVn9+tLCp+88880z9fYfv++GHH/x5mkezZs1sxIgR4WlLlizxymzTpk19mT179rTt27f7NK2TVK1a1RYuXOjhUdfPOussa9++vf3zzz8+XcFQVdRGjRr5Ovfu3TscTi+99FKbP3++B+SffvrJ71OFt1q1anYk91m0ZafXPtMytZ+0LF06depky5cvP2Cf4dgh4CA9FDMAwFGnUPXvv/9a7dq1bdasWZYrVy6rUKGCvfbaa7Zjxw5btmyZjR8/3nr06OGBrWLFil4Jveaaa7wamjdvXn9e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8sknT7Pr33jjDenYsaPzO2PGjJHJkyfXel+/+c1vZOvWrc7y22+/LWeffbY8//zzcs0118icOXOc+9t3331l6tSpsn79etFQLq+99pqceeaZTgjUjWbncc866yypr++//955fAvgxoL6EUccIe+9997PftfC+v777y+nnHKKeElmZqbMnz9fjj32WNH3abMgqRGUkXK0qjynrKzsXf3SuEYAIIVZq5mG43kavp7Xi1998skn2eFwONiuXbtv7OcWNDt37mwHPEtWVpboz2Xjxo0WrGXvvfeW0047zakIv/766879devWTT788EO59dZbZfHixbJs2bLKILpq1Sq57rrr5KGHHpLf/e53cuSRR4rf73fC6syZM52Au23bNqcK3KxZM6cy3LhxYznmmGNkwoQJleu8YMECufbaa52wbVXpUCjkXL9ixQrp2rWrNGrUSC644AL58ccf5Z133pHLLrtM3nrrLSeAu1555RXnZ4cddljl+lk4t8q3XXar3G7gX758ufTo0UMOOuggZ7379u0rX331lRVW5O6775ZWrVo569K+ffsdNiZ2ta7myy+/dCr0GnalQ4cO8sQTT8gBBxxQGepvuukmOfHEE50NCHs+S5cu3eG9s/Xv0qVLiSCpEZSRknSX3206+5OG5eMFAFKIBuO2Ot2mn29PadAL6h6dv2s4PlyLBP9fw22p+3tffPGFfPvttxbGnMCbnZ0tRx11lDzwPhNQ9QAAEABJREFUwAOyefNmp73BKsZ/+ctfnIqxsQB96qmnOpe7d+++Q1C2CvKhhx4qOTk5P1snqwAPGzbMeQwLtXb/9rg2/8Mf/iA33nijaAHDuTxgwACnSr1mzRq58847ndvZuh599NHO9RY+7fHtPi3on3HGGU4AtZBvLNz++te/lnHjxsmbb77prF9JSYkT4q+++mrnunnz5smLL74of/vb35zb2OP369dPVq9eLStXrnTCq1XBX375ZadFxK6329l1zz77rLOeNa2rsfXU6r3zfG165JFHZMuWLXL88cdbwcYJ7rNmzZJXX33V+V0L/LaextpXfvrpJ9sw2SJIagwPh5SlH0hdmjRpskYXmwkAeJxWj/tYMNbpRL0Y0Wrp9cXFxV/t6vetSmwhcq+99nICp1VEjVU/p02b5oRJq3Sef/75zmSsN/mkk05ylq0KbVVPC87G7sN6a2tjt7nyyivlkksucS7b/VkvsYVKC9IW3l3WX2wVZJc9ftV+ZAubVo22dbD7teq0BVsLzhb6jQVsqwoffPDB1p/tXNemTRvp2bOnfPDBB85lqzxbAD799NOd12TkyJHO9W6Fffr06U6V2e730UcfrXz8Xa2rVd0tAFsV2VopWrdu7bSaWFC2ydpC7DU+/PDDnd+3qrSFZavK2/q6GyD6HSVIblSUkbJ099km/WDupZWXFwQxZQfyabXoJwHQoLTCe7R+ht2r1eN1+n/WX0Py37Ra2U6nO2oKycZaAKztwljIdQNw//795U9/+pNTSbZwab3LbluD3cb9vffff99pobB2BGP9yNauURurzFY9wM5aMew+7aA8C64WGq1abW0ZFjKtcmyPYcHc1tNaGYxbQbYeZQuVFi6tHeOuu+6S8ePHV4Z4C+AvvfSSLFy40HkMd7LnZS0V5sEHH3Tuw6rhNncPTLSwbf3CM2bMcDYg9LV2qsempnW1x7PQbW0nrq+//tpptbDnsHbtWjnnnHMq18Vua9z1qVqpR3IjKCOlhUKhBTpbpFWGOwUxYwfy+f1+KvdAA9FgnKPTEg1Y1l7xtYat9hqOr9Lp2breh1VjLbgZq9RWDWZWPbW2g0WLFsmkSZOcaquxkOsGZQtzbtA2Vs21PuKdWV+y9Sdb9dXCrt3Oep9d1pZg4dcqtxYerQXC+p+tfzgcDlf+roV0qzhbxdVY4LQwaux3LLjaKB7WYmEV4qrPye5r4sSJTltG1en+++93fm691Dbqh93GWiisxWTdunXOz2zd7CDFTz/91GnBsHaN2tbVRtywvmWXHcT43HPPOfdlv2vhfud1sWm//farfG0Jyt5AUEbK0w+3uzTIncj4ygCSmQbjblrRLNJpsQbjs/WqUfr5daz1Huu8XsMvWoXYWi8s6NqyVV/dqqwdZGahzdjBbVaRtYrpN9984wREq6yancOchWE7aM8Cpzt8m7UgXHTRRU6oteBoj2MHDbptEcb6oC182/1/99138stf/tK53qquFtItgBvrHbZqra2Psftyg75Vji1wz54922lrMFWD8gknnOAceGdB3Xqhn3zySScQm8cee0wikf+ei8r6rK3lYdOmTTJkyBD597//7Vxvw+DZZD+rbV2tRcMe314He8xRo0Y5QduC8nHHHeccKGivibFQba0e9vxcbm81kh9BGWlBv2Qu1y+LcYFAYB8BgCShG/BHakAeq+H4X3pxtAbkl/XzqodOQzUgvyq7yQ1lFjSthcLYcGRW6bSAaJVbC59t27aVG264wenntT5bq9RaULbbuOHa5fY2W4tDy5YtnZYCu61VZy1AW3uBhVk7+M5lIdINhVYpHjFihFxxxRXOZRtZo3fv3s5tn376aSdgWruFjS9sQd6CulvdtsezIG7tFLbuxjYE3DYNqzRbW4Otoz1HO2DRDsRzX4OnnnpK9tlnHyfAX3755U6Qto0E+5m9LvZa2P1aP7etV23rOnjwYOfgPOtBtoP92rVr52wg2IF89pra77ltHvYcLJzbaBvGDga0A/ncjQAktwwB0oSFZN399ol+Ae0raFD6RX+Tfmlu0td2ggCo0cCBA5tqIBukYXCQjUGu82LddT9p4sSJX0oD0fscpbO7ZTdZwLXq6kcffVRZYcauWbXZDjq0UTNqYyH63nvvdQ4GVAP1b+BRQdJi1AukjcLCwh+0anO+hrq3tFLTSdBg7Mte+DwBaqSfPZfrbJBONnREsYbZkfpZVHuySgD3QD5CcvVsRA+rMOt76rRWWEi2AwHrwloyaLvwDr7YkFa04vmO7ur8i364zbADYwQAYkj3ZHX1+XzX6cbkiRqMrRm22AufPRbm7AA1O4GHHRBn7Qn4Lzvhih1UaK+NDQdnIdlaUGpirSw2prSNAmItJPAGWi+QlvRDbaR+aR2kX1i/E+wxfT3H6WyDboj8VYA0p+H4BL/fbw2yNq3S6dF169ZNmT59etyGUNzT1gvEDa0XSY6KMtKSBrr7tKp8vwa8X+vyg4I9Eo1Gf7AeZQHS1JAhQw7OzMzsr/8H14mTU8un6HRmJBJZLQA8i6CMtKXV5Bs0LI/X6Vxd5qQke0B3LdtoIn4B0sivfvWrZtu3b7dgbK0VB+t8qobja/Tz5EMBkBIIykhr+oV2vQblBVpZLtPK8iIBgBrYiBXZ2dn9LBBrSC7XgPy5tTno58duD+UGIHnRowyIczT6Ep2N2pNxS9NZbm7uzRoWfiosLKSNBSlnxIgRjbds2XK1hmKbzta/9Wk6PR6JRJ6XJKXrl6Wz2s83jUTbqH9T2wRJi4oyIE5l+SytKr+pgW+Yfvm9LagXO4W1ACmke/fumUcddVQ/XbympKTkPP0bf0LD54NaOb5EPEDD13ad/VsA7BGCMlBBvwB/oWH5vUAg0F8rox8IgLQyevRo3+rVq/toyLSD8i61yrFeHdYN6csFQFoiKANVaFg+saKy/AetLC8U1NU6nRj1Ap5jbRVaMbZxjft+9dVXl2rluFiXi/WzoI8ASHsEZWAnVlm2nmWdSuhZrrNWOvkE8ICK0SqccKwhuadWj2do9bhI/997CwBUQVAGqmE9yxaWtbL8F60szxUAnjZ8+PBWpaWlTjjWkHx6RTh+UP/XPdFzDCAxCMrALlQc4DdHA3MrXZ4i2CUNHevLysridtYxoC5ycnIOaNSo0QUaiHM0JJ9YEY7vYdx0AHVFUAZqEA6HL9WwPFmnlro8XlAtDR8tfT4fw00i4QKBwBF+v9/6i206RKeQTqM1HL8oAFBPfLEBdaBV5Qe0GvWlhuV7BD+jr89NGpY3RSKRCQLEmf79naz/n330b9BGrGik85nRaHRmYWHhGwIAe4CKMlAHWo0aoVXlkTo9rmH5GsEONJy01onPE8SN/i+eVRGMr9CL6ywc616NfqFQ6CMBgAbCFxtQRxqQ79PKVT/9gn5bl08TVNKQstYqygLEUG5u7sUajLvo9Cv9e/tY5zPLysq6a+V4lQBADBCUgXrQyvK0QCCwUsPyj7pr94hIJLJGQEUZMTFgwIAW2dnZvfRvq7cGY5vP1/+7KVu3bj2muLh4rQBAjPHFBtSTVq+WDRw48IC99trrUw3NV+nlVyTNaXj5UUMMFWXsMa0ad/D5fL00GPfWv6mTdf4PnR5t165d39GjR0cFAOKIoAzshsmTJ1sobGsjYgSDwbO00ny3pDG/3697wMsIMdgt+fn5nfTvp7cFZL2YbeFYl28PhUIvCQAkEEEZ2APhcHighuVxOs3S5SskTTE8HOrL+o0rKsf76x6JA3X5KV2+Rjc6PxQASBIEZWAPaUC+Rb/0e2lY/lq/8DtHIpHVAmAH+v+xrwbhy3XRmTIyMuZa5bikpOQfuofmOwGAJERQBhqAhuN/5OTkvN6oUaM3gsHgjVoVmyVAmgsEAidopfgyDcVWOT5Mr5qtU5H+f/QWAPAAdpUCDUyDsp3Br4mGgYCkMH2en+rMr1V00TDUSpfLdNpolzUYZejGQ3tB2tG/i246u1L/BC7T+Y86PV1WVvYPTv4BwIuoKAMNTAPy9fn5+UN0V/O/SktLzysqKlohKUgrhF/qrLvf76969T4amm3+nCAtDBo0qHWTJk0u1b8Hqxxfqlc9rtNbjG8MIBVQUQZiJDc39yANjc/r4vhwOPygpJjBgwdf0qhRo4kajtpUvV4ryja+7VVaUV4sSEm6IXiSBmMLxVY1PlyX5+jf+tM//PDDnOnTp28TAEgRBGUgxnRX9P06O2r79u29H3nkkRJJIfrcFmpQ7lH1Og1Nz2lV/QJBStE9JJe4VWOdf69XzdGNoqdpqQCQygjKQBxoyDhfZ0/plKvV5amSInJyci7LzMycqNXE1nZZg9PXOhuo1eSFAk8LBAKH+v3+i61yrOG4nbXa6Pzp0tLSOUVFRV8LAKQBgjIQR1qBfVT+c6DfVZIicnNzX9CgfI4ta5iaq8/tEoEn2YF4Gobt/bPJTvwxV+dz9D2dJwCQhgjKQJzl5+f30crrCF2coAFkmnjckCFDLtWqcpGGqu0asvrrc3pR4An63rXJyspyq8Y2tzaKZ3T+jO4V+FgAIM0RlIEEycvLs9EBsrds2XJtxSmxPUuryq82bty4ZPz48T0FSS0QCHTWPQBWMf6lhuPj3arx+vXr506fPn2LAAAqEZSBBNJd3VbJe0ynG0Kh0ETxqOLi4m5aVS7csGHD4OHDh78iSBoDBgxokZ2dfbG1VGgotvlKvfqZsrKyOYWFhcsEALBLBGUgCWhF9j4NMJ11cUhBQcEn4iETJ07s3bx583DPnj3bPPfcc+u2bt165eDBgxcJEkY3wE6uaKW4pErV+BndmJk7YcKEdQIAqBOCMpAk8vPzz9BAM1GnpzQs3yweUDUku9cRluMvLy/PDry7SBctIOfq/JtoNDrX7/c/o3sqlgoAYLcQlIEko6FnlIacgRp4btHAPEeSVHUh2UVYjr2Kk35cZO0UevFUnebp8gydL45EImsEALDHCMpAEqo4LbBVlzN0yk224FNTSHYRlhvWwIEDmzZu3Pgin89nwdgC8rc6n6cbVHPD4fASAQA0OIIykMTsbGg6i+h0V7KcBrsuIdlFWN4z+v5bpfhCnQ7XqZ/8p2o8V6d5VI0BIPYIyoAHBIPBG7Vy+PtoNJqnAWmuJEh9QrKLsFx3tidBq8YX6ntt4fhCDcSrdJqv02xOFQ0A8UdQBjxi2LBh7crKysK6uF2DU368K4q7E5JdFpY3b9581dChQzm19U5yc3NP15kNE2gB+VBdtmA8Xzcu5hcXF68VAEDCEJQBj9Fg1UsDVUin8eFweKzEwZ6EZBdh+T/0+R/o9/utYnyRhWMNxYt1biNTzNf38x0BACQNgjLgUXl5eX/WkDXEFgsKCuZJjDRESHala1jW96pHxck+LCC3soqxzueVlJTM9/pZGQEglRGUAQ/T6vJBGr7COm31+Xz5Dz/88HfSgBoyJLvSISzr+9JB3w+rFp+g701Q542zUgUAAAZRSURBVC/b6BQWkHWj5kMBAHgCQRlIAVqx7K2zkAaxBzSI3SkNIBYh2ZWCYTkjGAxWtlPo3G+huKys7B+ff/75wsWLF5cKAMBzCMpACtGwNlaD2mCd8kKh0PyqP9NQ+pNef1thYeF9td1PLEOyy+thWavGx1ZUjS0cn2PBWOfzNBzP19f4UwEAeB5BGUgxQ4YMOTgrKyuswW2LBeZwOPxvDXXfa6jbV3/8uQa5nhrkVu3q9vEIyS4vheWK00RfIP+tGv/o9hprFf8FAQCkHIIykKK0unyF9S/rolWQ77LrNNhJNBqdp0H54upuE8+Q7ErmsFzlhB92JrxT9PV8Vpfn6Ws4PxKJrBYAQEojKAMpTqvJ27SanOVe1sC3Xmc3aBV0ctXfS0RIdllY1tk16jlJoEAgsI87dJvseMIP27h4RQAAaYWgDKQwrSp/UXESi52t/OKLL07RgOoMTZbIkOx64YUXNmiltl+8w7K+RmfKf9spOrjtFJzwAwBAUAZS2NChQ8szMzN/dr0G0jINhpO0qhxIhpDsikdYruaEH+/aQXgV7RRvCwAAFQjKQArLy8v7WINgCw2CZXZZw2BWRRtGli5Hu3btOiRZQrKrrmE5JyfnYn0u44uKijpILXJzc3vqa3ARJ/wAANQHQRlIcaNHj/atWLFin+zs7JYaLFtt27atVVZWVosOHTqcffTRR1+TTCHZVVtY1pCco5Xysfp8DtLQ+5lWxo+o+nOtGh9WtWqs8xd1mscJPwAA9UFQBtJQMrVb7MquwrKG4N9rCP6NBuAD7bKG33Xr169v06pVq8qD8Cp+1akar1u3bv706dPLBACAeiIoA2nGCyHZtXNYDgQCd2pAHqaV5Nbu79iQd3pdqdtOYSf8KCoq+lwAANhDBGUgjXgpJLssLG/fvv3qhQsX9tOLfbSa3LLqzy0oFxQU8FkGAGhwPgGQFmIZkm+88UaZPHmyxMK55567t1aQZ++777799WJLC8ZVaTXZGQZPAABoYARlIA3EKiS/9NJLsmXLFsnOzpamTZvKt99+K8uXL5eGdsEFFzQ69dRTowceeOBsvfiyHcAXjUbX6GQtF1ZVPlAAAGhgBGUgxcWyknzffffJaaedJq+//ro88sgj0qVLF1m0aJHEwnnnnZfdsWPHbt27d7/LRrnQSvI5paWlV2tI/pv+mLPmAQAaHH19QAqLR0/yihUr5NJLL5V27drJ3LlznepyLLk9ywMGDHhWAACIIb8ASEnxCMnW9jB8+HAbsk02btwo69evdyrMsXTYYYc1WbVq1WW9e/deNnPmzM8EAIAYofUCSEHFxcV94jG6xYYNG6Rjx452AhAZM2aMbN68WeLBDvDLysp6YsqUKRcIAAAxQusFkGImT57cLzs7O9SjR4+WkuKsDSMzM7Nbnz593hUAABoYFWUghYRCobbl5eV/7N69e8qHZKMbA3trVXuaAAAQA1SUgRSkgbnsqquu8tkYw6lq+/bt0dmzZ5cEg8GmAgBADBCUgRSlYTmqYTkjFcMyIRkAEA+0XgApKj8/3zdjxozync9k53WEZABAvBCUgRSWamGZkAwAiCeCMpDiUiUsE5IBAPFGUAbSgNfDMiEZAJAIBGUgTXg1LBOSAQCJQlAG0ojXwjIhGQCQSARlIM14JSwTkgEAiUZQBtJQsodlQjIAIBkQlIE0laxhmZAMAEgWBGUgjSVbWCYkAwCSCUEZSHPJEpYJyQCAZENQBpDwsExIBgAkI4IyAIeF5enTp0u8aUgWQjIAIBllCABU8fDDD5f369dP4qEiJG/RkJwtAAAkGSrKAHYwbNiwjGnTpkmsEZIBAMmOoAzgZ2IdlgnJAAAvICgDqFaswjIhGQDgFQRlALvU0GGZkAwA8BKCMoAaNVRYJiQDALyGoAygVnsalgnJAAAvYng4AHUWCoXK+/btW6/bEJIBAF5FRRlAneXn52fU56QkhGQAgJcRlAHUS13DMiEZAOB1BGUA9VZbWCYkAwBSAUEZwG7ZVVgmJAMAUgVBGcBu2zksE5IBAKmEUS8A7DEbDaN3796EZABASqGiDGCPtWrVqvH8+fNfJSQDAFIJFWUAAACgGpkCAAAA4GcIygAAAEA1CMoAAABANQjKAAAAQDUIygAAAEA1CMoAAABANf4PAAD//71qitIAAAAGSURBVAMAiRoJBg8jqgUAAAAASUVORK5CYII=", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# agentic_rag_pipe.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "cd6dd307", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Virat Kohli\n" + ] + } + ], + "source": [ + "query = \"Who is the top scorer in IPL?\"\n", + "\n", + "result = agentic_rag_pipe.run(\n", + " {\"retriever\": {\"query\": query}, \"prompt_builder\": {\"query\": query}, \"router\": {\"query\": query}}\n", + ")\n", + "\n", + "# Print the `answer` coming from the ConditionalRouter\n", + "print(result[\"router\"][\"answer\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "48139823", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generated from websearch.\n", + "\n", + "Top run-scorers in IPL 2026 so far:\n", + "- Shubman Gill (GT) – 251 runs\n", + "- Virat Kohli (RCB) – 228 runs\n", + "- Heinrich Klaasen (SRH) – 224 runs\n", + "- Rajat Patidar (RCB) – 222 runs\n", + "\n", + "(Source materials note these figures as the leading totals in mid-April 2026.)\n" + ] + } + ], + "source": [ + "query = \"Who are the top scorers in IPL 2026 so far?\"\n", + "\n", + "result = agentic_rag_pipe.run(\n", + " {\"retriever\": {\"query\": query}, \"prompt_builder\": {\"query\": query}, \"router\": {\"query\": query}}\n", + ")\n", + "\n", + "print(result[\"llm_for_websearch\"][\"replies\"][0].text)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "3ec4ed3e", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/h7/gyf27_xx5qj9w7293_58p58c0000gn/T/ipykernel_95111/2664209893.py:49: UserWarning: The parameters have been moved from the Blocks constructor to the launch() method in Gradio 6.0: theme, css. Please pass these parameters to launch() instead.\n", + " with gr.Blocks(css=custom_css, theme=gr.themes.Soft(primary_hue=\"blue\")) as demo:\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "* Running on local URL: http://127.0.0.1:7878\n", + "* To create a public link, set `share=True` in `launch()`.\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import gradio as gr\n", + "\n", + "def get_answer(query):\n", + " try:\n", + " result = agentic_rag_pipe.run(\n", + " {\"retriever\": {\"query\": query}, \"prompt_builder\": {\"query\": query}, \"router\": {\"query\": query}}\n", + " )\n", + " \n", + " if \"router\" in result and \"answer\" in result[\"router\"]:\n", + " ans = result[\"router\"][\"answer\"]\n", + " elif \"llm_for_websearch\" in result and \"replies\" in result[\"llm_for_websearch\"]:\n", + " ans = result[\"llm_for_websearch\"][\"replies\"][0].text\n", + " else:\n", + " ans = \"⚠️ Sorry, I could not find an answer.\"\n", + " \n", + " # Make the answer bold using Markdown\n", + " return f\"**{ans}**\"\n", + " \n", + " except Exception as e:\n", + " return f\"**❌ An error occurred: {str(e)}**\"\n", + "\n", + "custom_css = \"\"\"\n", + "footer {visibility: hidden}\n", + ".container {max-width: 900px; margin: auto; padding-top: 2rem;}\n", + ".header-text {text-align: center; margin-bottom: 2rem;}\n", + "\n", + "/* The Background for the answer area with forced text color */\n", + "#ans-box {\n", + " background-color: #e3efff !important; /* Slightly deeper blue for contrast */\n", + " border-radius: 10px; \n", + " padding: 20px; \n", + " border-left: 6px solid #004ba0;\n", + " color: #002d62 !important; /* Force dark blue text */\n", + "}\n", + "\n", + "/* Ensure text is visible even if the user is in Dark Mode */\n", + ".dark #ans-box {\n", + " background-color: #1a2a40 !important; /* Darker navy for dark mode */\n", + " color: #ffffff !important; /* White text for dark mode */\n", + " border-left: 6px solid #ff822a; /* Orange accent for dark mode contrast */\n", + "}\n", + "\n", + "/* Style the bold text specifically to ensure it inherits the color */\n", + "#ans-box strong {\n", + " color: inherit !important;\n", + "}\n", + "\"\"\"\n", + "\n", + "with gr.Blocks(css=custom_css, theme=gr.themes.Soft(primary_hue=\"blue\")) as demo:\n", + " with gr.Column(elem_classes=\"container\"):\n", + " gr.Markdown(\n", + " '''\n", + " # 🏏 IPL Intelligence Agent\n", + " ### Agentic RAG powered by Haystack\n", + " ''',\n", + " elem_classes=\"header-text\"\n", + " )\n", + " \n", + " with gr.Row():\n", + " with gr.Column(scale=4):\n", + " user_input = gr.Textbox(\n", + " show_label=False,\n", + " placeholder=\"Ask about IPL stats...\",\n", + " container=False\n", + " )\n", + " with gr.Column(scale=1, min_width=100):\n", + " submit_btn = gr.Button(\"Ask Agent\", variant=\"primary\")\n", + "\n", + " with gr.Row():\n", + " output_display = gr.Markdown(\n", + " elem_id=\"ans-box\",\n", + " value=\"Waiting for your question...\"\n", + " )\n", + "\n", + " gr.Examples(\n", + " examples=[\n", + " \"Leading run scorer in IPL history\",\n", + " \"Most wickets in IPL history.\",\n", + " \"Who won the first ever IPL season?\",\n", + " \"Current wicket keeper of Chennai Super Kings\",\n", + " \"What is Virat Kohli's total IPL runs?\"],\n", + " inputs=user_input\n", + " )\n", + "\n", + " submit_btn.click(fn=get_answer, inputs=user_input, outputs=output_display, show_progress=\"circle\")\n", + " user_input.submit(fn=get_answer, inputs=user_input, outputs=output_display, show_progress=\"circle\")\n", + "\n", + "if __name__ == \"__main__\":\n", + " demo.launch()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "74b7854a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "e79b578b", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "142ef137", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "* Running on local URL: http://127.0.0.1:7865\n", + "* To create a public link, set `share=True` in `launch()`.\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import gradio as gr\n", + "\n", + "def get_answer(query):\n", + " result = agentic_rag_pipe.run(\n", + " {\"retriever\": {\"query\": query}, \"prompt_builder\": {\"query\": query}, \"router\": {\"query\": query}}\n", + " )\n", + " \n", + " if \"router\" in result and \"answer\" in result[\"router\"]:\n", + " return result[\"router\"][\"answer\"]\n", + " elif \"llm_for_websearch\" in result and \"replies\" in result[\"llm_for_websearch\"]:\n", + " return result[\"llm_for_websearch\"][\"replies\"][0].text\n", + " else:\n", + " return \"Sorry, I could not find an answer.\"\n", + "\n", + "iface = gr.Interface(\n", + " fn=get_answer,\n", + " inputs=gr.Textbox(lines=2, placeholder=\"Enter your question here...\"),\n", + " outputs=gr.Markdown(),\n", + " title=\"Agentic RAG with HayStack\",\n", + " description=\">>>> Ask questions about IPL. If the local documents don't have the answer, it will fallback to web search. ||||\"\n", + ")\n", + "\n", + "iface.launch()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "61dd543f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.14.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/agents/langgraph/human_in_the_loop.ipynb b/agents/langgraph/human_in_the_loop.ipynb new file mode 100644 index 0000000..0ffcdda --- /dev/null +++ b/agents/langgraph/human_in_the_loop.ipynb @@ -0,0 +1,2129 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0c9e547f", + "metadata": { + "editable": true, + "tags": [], + "id": "0c9e547f" + }, + "source": [ + "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/langchain-ai/langchain-academy/blob/main/module-3/streaming-interruption.ipynb) [![Open in LangChain Academy](https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/66e9eba12c7b7688aa3dbb5e_LCA-badge-green.svg)](https://academy.langchain.com/courses/take/intro-to-langgraph/lessons/58239464-lesson-1-streaming)" + ] + }, + { + "cell_type": "markdown", + "id": "319adfec-2d0a-49f2-87f9-275c4a32add2", + "metadata": { + "id": "319adfec-2d0a-49f2-87f9-275c4a32add2" + }, + "source": [ + "# Streaming\n", + "\n", + "## Review\n", + "\n", + "In module 2, covered a few ways to customize graph state and memory.\n", + "\n", + "We built up to a Chatbot with external memory that can sustain long-running conversations.\n", + "\n", + "## Goals\n", + "\n", + "This module will dive into `human-in-the-loop`, which builds on memory and allows users to interact directly with graphs in various ways.\n", + "\n", + "To set the stage for `human-in-the-loop`, we'll first dive into streaming, which provides several ways to visualize graph output (e.g., node state or chat model tokens) over the course of execution." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "db024d1f-feb3-45a0-a55c-e7712a1feefa", + "metadata": { + "id": "db024d1f-feb3-45a0-a55c-e7712a1feefa" + }, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install --quiet -U langgraph langchain_openai langgraph_sdk" + ] + }, + { + "cell_type": "markdown", + "id": "70d7e41b-c6ba-4e47-b645-6c110bede549", + "metadata": { + "editable": true, + "tags": [], + "id": "70d7e41b-c6ba-4e47-b645-6c110bede549" + }, + "source": [ + "## Streaming\n", + "\n", + "LangGraph is built with [first class support for streaming](https://docs.langchain.com/oss/python/langgraph/streaming).\n", + "\n", + "Let's set up our Chatbot from Module 2, and show various way to stream outputs from the graph during execution." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5b430d92-f595-4322-a56e-06de7485daa8", + "metadata": { + "editable": true, + "tags": [], + "id": "5b430d92-f595-4322-a56e-06de7485daa8", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c95b3636-6479-4e7b-fb7a-bd151c582151" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "OPENAI_API_KEY: ··········\n" + ] + } + ], + "source": [ + "import os, getpass\n", + "\n", + "def _set_env(var: str):\n", + " if not os.environ.get(var):\n", + " os.environ[var] = getpass.getpass(f\"{var}: \")\n", + "\n", + "_set_env(\"OPENAI_API_KEY\")" + ] + }, + { + "cell_type": "markdown", + "id": "4d0682fc", + "metadata": { + "id": "4d0682fc" + }, + "source": [ + "Note that we use `RunnableConfig` with `call_model` to enable token-wise streaming. This is [only needed with python < 3.11](https://langchain-ai.github.io/langgraph/how-tos/streaming-tokens/). We include in case you are running this notebook in CoLab, which will use python 3.x." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2d7321e0-0d99-4efe-a67b-74c12271859b", + "metadata": { + "id": "2d7321e0-0d99-4efe-a67b-74c12271859b", + "outputId": "004b4490-d346-4b88-90a8-c9be56d1c1a2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 350 + } + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "from IPython.display import Image, display\n", + "from typing import Literal\n", + "\n", + "from langchain_openai import ChatOpenAI\n", + "from langchain_core.messages import SystemMessage, HumanMessage, RemoveMessage\n", + "from langchain_core.runnables import RunnableConfig\n", + "\n", + "from langgraph.checkpoint.memory import MemorySaver\n", + "from langgraph.graph import StateGraph, START, END\n", + "from langgraph.graph import MessagesState\n", + "\n", + "# LLM\n", + "model = ChatOpenAI(model=\"gpt-4o\", temperature=0)\n", + "\n", + "# State\n", + "class State(MessagesState):\n", + " summary: str\n", + "\n", + "# Define the logic to call the model\n", + "def call_model(state: State, config: RunnableConfig):\n", + "\n", + " # Get summary if it exists\n", + " summary = state.get(\"summary\", \"\")\n", + "\n", + " # If there is summary, then we add it\n", + " if summary:\n", + "\n", + " # Add summary to system message\n", + " system_message = f\"Summary of conversation earlier: {summary}\"\n", + "\n", + " # Append summary to any newer messages\n", + " messages = [SystemMessage(content=system_message)] + state[\"messages\"]\n", + "\n", + " else:\n", + " messages = state[\"messages\"]\n", + "\n", + " response = model.invoke(messages, config)\n", + " return {\"messages\": response}\n", + "\n", + "def summarize_conversation(state: State):\n", + "\n", + " # First, we get any existing summary\n", + " summary = state.get(\"summary\", \"\")\n", + "\n", + " # Create our summarization prompt\n", + " if summary:\n", + "\n", + " # A summary already exists\n", + " summary_message = (\n", + " f\"This is summary of the conversation to date: {summary}\\n\\n\"\n", + " \"Extend the summary by taking into account the new messages above:\"\n", + " )\n", + "\n", + " else:\n", + " summary_message = \"Create a summary of the conversation above:\"\n", + "\n", + " # Add prompt to our history\n", + " messages = state[\"messages\"] + [HumanMessage(content=summary_message)]\n", + " response = model.invoke(messages)\n", + "\n", + " # Delete all but the 2 most recent messages\n", + " delete_messages = [RemoveMessage(id=m.id) for m in state[\"messages\"][:-2]]\n", + " return {\"summary\": response.content, \"messages\": delete_messages}\n", + "\n", + "# Determine whether to end or summarize the conversation\n", + "def should_continue(state: State)-> Literal [\"summarize_conversation\",END]:\n", + "\n", + " \"\"\"Return the next node to execute.\"\"\"\n", + "\n", + " messages = state[\"messages\"]\n", + "\n", + " # If there are more than six messages, then we summarize the conversation\n", + " if len(messages) > 6:\n", + " return \"summarize_conversation\"\n", + "\n", + " # Otherwise we can just end\n", + " return END\n", + "\n", + "# Define a new graph\n", + "workflow = StateGraph(State)\n", + "workflow.add_node(\"conversation\", call_model)\n", + "workflow.add_node(summarize_conversation)\n", + "\n", + "# Set the entrypoint as conversation\n", + "workflow.add_edge(START, \"conversation\")\n", + "workflow.add_conditional_edges(\"conversation\", should_continue)\n", + "workflow.add_edge(\"summarize_conversation\", END)\n", + "\n", + "# Compile\n", + "memory = MemorySaver()\n", + "graph = workflow.compile(checkpointer=memory)\n", + "display(Image(graph.get_graph().draw_mermaid_png()))" + ] + }, + { + "cell_type": "markdown", + "id": "f847a787-b301-488c-9b58-cba9f389f55d", + "metadata": { + "editable": true, + "tags": [], + "id": "f847a787-b301-488c-9b58-cba9f389f55d" + }, + "source": [ + "### Streaming full state\n", + "\n", + "Now, let's talk about ways to [stream our graph state](https://docs.langchain.com/oss/python/langgraph/streaming#supported-stream-modes).\n", + "\n", + "`.stream` and `.astream` are sync and async methods for streaming back results.\n", + "\n", + "LangGraph supports a few [different streaming modes](https://docs.langchain.com/oss/python/langgraph/streaming#stream-graph-state) for graph state.\n", + "\n", + "* `values`: This streams the full state of the graph after each node is called.\n", + "* `updates`: This streams updates to the state of the graph after each node is called.\n", + "\n", + "![values_vs_updates.png](https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/66dbaf892d24625a201744e5_streaming1.png)\n", + "\n", + "Let's look at `stream_mode=\"updates\"`.\n", + "\n", + "Because we stream with `updates`, we only see updates to the state after node in the graph is run.\n", + "\n", + "Each `chunk` is a dict with `node_name` as the key and the updated state as the value." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "9a6f8ae9-f244-40c5-a2da-618b72631b22", + "metadata": { + "editable": true, + "tags": [], + "id": "9a6f8ae9-f244-40c5-a2da-618b72631b22", + "outputId": "8d398530-9f9b-4635-c2a8-5a27f8252cbe", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'conversation': {'messages': AIMessage(content='Hello Afiz! How can I assist you today?', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 11, 'prompt_tokens': 13, 'total_tokens': 24, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_7a9ae34122', 'id': 'chatcmpl-DRFAHzXPsHIa2DZ4OZmyHYJu7Nasp', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019d5d39-2a8c-7c83-80aa-d4abba5dcfe9-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 13, 'output_tokens': 11, 'total_tokens': 24, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})}}\n" + ] + } + ], + "source": [ + "# Create a thread\n", + "config = {\"configurable\": {\"thread_id\": \"1\"}}\n", + "\n", + "# Start conversation\n", + "for chunk in graph.stream({\"messages\": [HumanMessage(content=\"Hi! I am Afiz\")]}, config, stream_mode=\"updates\"):\n", + " print(chunk)" + ] + }, + { + "cell_type": "markdown", + "id": "0c4882e9-07dd-4d70-866b-dfc530418cad", + "metadata": { + "id": "0c4882e9-07dd-4d70-866b-dfc530418cad" + }, + "source": [ + "Let's now just print the state update." + ] + }, + { + "cell_type": "code", + "source": [ + "chunk['conversation'][\"messages\"].pretty_print()" + ], + "metadata": { + "id": "X49ltP7COl9n", + "outputId": "b30cd7f8-862c-4d3d-b8de-f405ed66ada4", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "id": "X49ltP7COl9n", + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I assist you today?\n" + ] + } + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c859c777-cb12-4682-9108-6b367e597b81", + "metadata": { + "id": "c859c777-cb12-4682-9108-6b367e597b81", + "outputId": "441804f9-0c00-4eb3-b09d-98a0d6beeafc" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hi Lance! How's it going? What can I do for you today?\n" + ] + } + ], + "source": [ + "# Start conversation\n", + "for chunk in graph.stream({\"messages\": [HumanMessage(content=\"hi! I'm Lance\")]}, config, stream_mode=\"updates\"):\n", + " chunk['conversation'][\"messages\"].pretty_print()" + ] + }, + { + "cell_type": "markdown", + "id": "583bf219-6358-4d06-ae99-c40f43569fda", + "metadata": { + "id": "583bf219-6358-4d06-ae99-c40f43569fda" + }, + "source": [ + "Now, we can see `stream_mode=\"values\"`.\n", + "\n", + "This is the `full state` of the graph after the `conversation` node is called." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6ee763f8-6d1f-491e-8050-fb1439e116df", + "metadata": { + "id": "6ee763f8-6d1f-491e-8050-fb1439e116df", + "outputId": "132a4cec-c7de-474a-b2a1-76b6ea4de43a", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I assist you today?\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "---------------------------------------------------------------------------\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I assist you today?\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I help you today?\n", + "---------------------------------------------------------------------------\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I assist you today?\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I help you today?\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "I like cricket. Now, I am watching IPL 2026\n", + "---------------------------------------------------------------------------\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I assist you today?\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Hi, I am Afiz\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Hello Afiz! How can I help you today?\n", + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "I like cricket. Now, I am watching IPL 2026\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "That sounds exciting! The IPL always brings a lot of thrilling matches and great performances. Which teams are playing today, and how is the match going so far?\n", + "---------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "# Start conversation, again\n", + "config = {\"configurable\": {\"thread_id\": \"2\"}}\n", + "\n", + "# Start conversation\n", + "input_message = HumanMessage(content=\"Hi, I am Afiz\")\n", + "for event in graph.stream({\"messages\": [input_message]}, config, stream_mode=\"values\"):\n", + " for m in event['messages']:\n", + " m.pretty_print()\n", + " print(\"---\"*25)\n", + "\n", + "input_message = HumanMessage(content=\"I like cricket. Now, I am watching IPL 2026\")\n", + "for event in graph.stream({\"messages\": [input_message]}, config, stream_mode=\"values\"):\n", + " for m in event['messages']:\n", + " m.pretty_print()\n", + " print(\"---\"*25)" + ] + }, + { + "cell_type": "markdown", + "id": "563c198a-d1a4-4700-b7a7-ff5b8e0b25d7", + "metadata": { + "editable": true, + "tags": [], + "id": "563c198a-d1a4-4700-b7a7-ff5b8e0b25d7" + }, + "source": [ + "### Streaming tokens\n", + "\n", + "We often want to stream more than graph state.\n", + "\n", + "In particular, with chat model calls it is common to stream the tokens as they are generated.\n", + "\n", + "We can do this [using the `.astream_events` method](https://docs.langchain.com/oss/python/langchain/models#advanced-streaming-topics:streaming-events), which streams back events as they happen inside nodes!\n", + "\n", + "Each event is a dict with a few keys:\n", + "\n", + "* `event`: This is the type of event that is being emitted.\n", + "* `name`: This is the name of event.\n", + "* `data`: This is the data associated with the event.\n", + "* `metadata`: Contains`langgraph_node`, the node emitting the event.\n", + "\n", + "Let's have a look." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "6ae8c7a6-c6e7-4cef-ac9f-190d2f4dd763", + "metadata": { + "editable": true, + "tags": [], + "id": "6ae8c7a6-c6e7-4cef-ac9f-190d2f4dd763", + "outputId": "c9ce6ee9-801f-4eb3-f0de-89c95d0e5ade", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Node: . Type: on_chain_start. Name: LangGraph\n", + "Node: conversation. Type: on_chain_start. Name: conversation\n", + "Node: conversation. Type: on_chat_model_start. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_stream. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chat_model_end. Name: ChatOpenAI\n", + "Node: conversation. Type: on_chain_start. Name: should_continue\n", + "Node: conversation. Type: on_chain_end. Name: should_continue\n", + "Node: conversation. Type: on_chain_stream. Name: conversation\n", + "Node: conversation. Type: on_chain_end. Name: conversation\n", + "Node: . Type: on_chain_stream. Name: LangGraph\n", + "Node: . Type: on_chain_end. Name: LangGraph\n" + ] + } + ], + "source": [ + "config = {\"configurable\": {\"thread_id\": \"3\"}}\n", + "input_message = HumanMessage(content=\"Tell me about CSK\")\n", + "response = graph.astream_events({\"messages\": [input_message]}, config, version=\"v2\")\n", + "\n", + "async for event in response:\n", + " print(f\"Node: {event['metadata'].get('langgraph_node','')}. Type: {event['event']}. Name: {event['name']}\")" + ] + }, + { + "cell_type": "markdown", + "id": "0b63490f-3d24-4f68-95ca-5320ccb61d2d", + "metadata": { + "id": "0b63490f-3d24-4f68-95ca-5320ccb61d2d" + }, + "source": [ + "The central point is that tokens from chat models within your graph have the `on_chat_model_stream` type.\n", + "\n", + "We can use `event['metadata']['langgraph_node']` to select the node to stream from.\n", + "\n", + "And we can use `event['data']` to get the actual data for each event, which in this case is an `AIMessageChunk`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "cc3529f8-3960-4d41-9ed6-373f93183950", + "metadata": { + "id": "cc3529f8-3960-4d41-9ed6-373f93183950", + "outputId": "86169cd9-562e-4404-d253-01bdb1314877", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'chunk': AIMessageChunk(content='', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' San', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Francisco', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='49', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' are', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' professional', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' American', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' football', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' team', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' based', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' San', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Francisco', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Bay', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Area', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' They', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' compete', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' National', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Football', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' League', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' (', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='NFL', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=')', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' as', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' member', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' of', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' league', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=\"'s\", additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' National', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Football', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Conference', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' (', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='N', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='FC', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=')', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' West', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' division', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' team', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' was', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' founded', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='194', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='6', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' as', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' charter', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' member', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' of', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' All', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-Amer', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ica', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Football', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Conference', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' (', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='AA', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='FC', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=')', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' joined', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' NFL', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='194', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='9', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' when', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' leagues', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' merged', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='###', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Key', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Points', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='St', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='adium', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='49', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' play', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' their', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' home', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' games', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' at', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Levi', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=\"'s\", additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Stadium', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Santa', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Clara', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' California', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' which', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' they', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' moved', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' to', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='201', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='4', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Before', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' that', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' they', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' played', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' at', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Cand', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='lestick', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Park', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' San', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Francisco', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Team', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Colors', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=\" team's\", additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' colors', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' are', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' red', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' gold', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' white', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Masc', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ot', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=\" team's\", additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' mascot', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' is', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' S', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ourd', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ough', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Sam', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Champ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ionship', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='s', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='49', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' have', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' won', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' five', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Super', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Bowl', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' championships', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' (', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Super', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Bowl', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' XVI', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' XIX', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' XX', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='III', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' XX', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='IV', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' XX', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='IX', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='),', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' with', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' their', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' most', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' successful', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' period', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' being', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='198', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='0', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='s', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' early', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='199', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='0', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='s', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Not', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='able', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Players', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' team', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' has', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' had', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' several', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Hall', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' of', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Fame', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' players', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' including', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Joe', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Montana', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Jerry', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Rice', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Steve', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Young', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Ronnie', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' L', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ott', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Charles', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Haley', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' among', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' others', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Co', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='aching', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Management', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' team', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' has', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' been', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' led', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' by', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' several', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' notable', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' coaches', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' including', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Bill', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Walsh', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' who', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' is', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' credited', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' with', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' popular', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='izing', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' West', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Coast', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' offense', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' As', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' of', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' my', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' last', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' update', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' head', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' coach', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' is', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Kyle', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Shan', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ahan', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='R', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ival', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ries', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='49', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' have', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' notable', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' rival', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ries', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' with', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Seattle', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Seahawks', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Los', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Angeles', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Rams', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' historically', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' with', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Dallas', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Cowboys', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Green', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Bay', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Packers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='-', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' **', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='Recent', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Performance', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='**', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=':', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' In', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' recent', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' years', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='49', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' have', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' been', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' competitive', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' reaching', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Super', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Bowl', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='201', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='9', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' season', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' but', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' losing', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' to', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Kansas', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' City', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Chiefs', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' They', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' have', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' been', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' known', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' for', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' strong', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' defense', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' dynamic', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' offense', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' under', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' coach', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Kyle', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' Shan', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ahan', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.\\n\\n', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='The', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' ', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='49', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='ers', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' have', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' rich', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' history', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' and', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' a', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' passionate', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' fan', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' base', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=',', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' making', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' them', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' one', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' of', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' iconic', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' franchises', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' in', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' the', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content=' NFL', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='.', additional_kwargs={}, response_metadata={'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='', additional_kwargs={}, response_metadata={'finish_reason': 'stop', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_7a9ae34122', 'service_tier': 'default', 'model_provider': 'openai'}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='', additional_kwargs={}, response_metadata={}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 16, 'output_tokens': 416, 'total_tokens': 432, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}, tool_call_chunks=[])}\n", + "{'chunk': AIMessageChunk(content='', additional_kwargs={}, response_metadata={}, id='lc_run--019d5d4d-1dec-73d3-b373-d9534ff6aa72', tool_calls=[], invalid_tool_calls=[], tool_call_chunks=[], chunk_position='last')}\n" + ] + } + ], + "source": [ + "node_to_stream = 'conversation'\n", + "config = {\"configurable\": {\"thread_id\": \"4\"}}\n", + "input_message = HumanMessage(content=\"Tell me about the 49ers NFL team\")\n", + "async for event in graph.astream_events({\"messages\": [input_message]}, config, version=\"v2\"):\n", + " # Get chat model tokens from a particular node\n", + " if event[\"event\"] == \"on_chat_model_stream\" and event['metadata'].get('langgraph_node','') == node_to_stream:\n", + " print(event[\"data\"])" + ] + }, + { + "cell_type": "markdown", + "id": "226e569a-76c3-43d8-8f89-3ae687efde1c", + "metadata": { + "id": "226e569a-76c3-43d8-8f89-3ae687efde1c" + }, + "source": [ + "As you see above, just use the `chunk` key to get the `AIMessageChunk`." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "3aeae53d-6dcf-40d0-a0c6-c40de492cc83", + "metadata": { + "id": "3aeae53d-6dcf-40d0-a0c6-c40de492cc83", + "outputId": "4fe01945-b56d-4b11-808d-870a8ecc48fe", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "|The| San| Francisco| |49|ers| are| a| professional| American| football| team| based| in| the| San| Francisco| Bay| Area|.| They| compete| in| the| National| Football| League| (|NFL|)| as| a| member| of| the| league|'s| National| Football| Conference| (|N|FC|)| West| division|.| The| team| was| founded| in| |194|6| as| a| charter| member| of| the| All|-Amer|ica| Football| Conference| (|AA|FC|)| and| joined| the| NFL| in| |194|9| when| the| leagues| merged|.\n", + "\n", + "|###| Key| Points|:\n", + "\n", + "|-| **|St|adium|**|:| The| |49|ers| play| their| home| games| at| Levi|'s| Stadium| in| Santa| Clara|,| California|,| which| they| moved| to| in| |201|4|.| Before| that|,| they| played| at| Cand|lestick| Park| in| San| Francisco|.\n", + "\n", + "|-| **|Team| Colors|**|:| The| team's| colors| are| red|,| gold|,| and| white|.\n", + "\n", + "|-| **|Masc|ot|**|:| The| team's| mascot| is| S|ourd|ough| Sam|.\n", + "\n", + "|-| **|Champ|ionship|s|**|:| The| |49|ers| have| won| five| Super| Bowl| titles| (|X|VI|,| XIX|,| XX|III|,| XX|IV|,| and| XX|IX|),| with| their| most| successful| period| being| the| |198|0|s| and| early| |199|0|s|.| They| have| also| won| numerous| division| titles| and| conference| championships|.\n", + "\n", + "|-| **|Not|able| Players|**|:| The| team| has| had| several| Hall| of| Fame| players|,| including| Joe| Montana|,| Jerry| Rice|,| Steve| Young|,| Ronnie| L|ott|,| and| Charles| Haley|,| among| others|.\n", + "\n", + "|-| **|Co|aching| and| Management|**|:| The| team| has| been| led| by| several| notable| coaches|,| including| Bill| Walsh|,| who| is| credited| with| popular|izing| the| West| Coast| offense|.| As| of| the| |202|3| season|,| the| head| coach| is| Kyle| Shan|ahan|.\n", + "\n", + "|-| **|R|ival|ries|**|:| The| |49|ers| have| notable| rival|ries| with| teams| such| as| the| Dallas| Cowboys|,| Los| Angeles| Rams|,| and| Seattle| Seahawks|.\n", + "\n", + "|-| **|Recent| Performance|**|:| In| recent| years|,| the| |49|ers| have| been| competitive|,| reaching| the| Super| Bowl| in| the| |201|9| season| but| losing| to| the| Kansas| City| Chiefs|.| They| have| been| known| for| a| strong| defense| and| a| dynamic| offense| under| the| leadership| of| Kyle| Shan|ahan|.\n", + "\n", + "|The| |49|ers| have| a| rich| history| and| a| passionate| fan| base|,| making| them| one| of| the| iconic| franchises| in| the| NFL|.||||" + ] + } + ], + "source": [ + "config = {\"configurable\": {\"thread_id\": \"5\"}}\n", + "input_message = HumanMessage(content=\"Tell me about the 49ers NFL team\")\n", + "async for event in graph.astream_events({\"messages\": [input_message]}, config, version=\"v2\"):\n", + " # Get chat model tokens from a particular node\n", + " if event[\"event\"] == \"on_chat_model_stream\" and event['metadata'].get('langgraph_node','') == node_to_stream:\n", + " data = event[\"data\"]\n", + " print(data[\"chunk\"].content, end=\"|\")" + ] + }, + { + "cell_type": "markdown", + "id": "5826e4d8-846b-4f6c-a5c1-e781d43022db", + "metadata": { + "editable": true, + "tags": [], + "id": "5826e4d8-846b-4f6c-a5c1-e781d43022db" + }, + "source": [ + "### Streaming with LangGraph API\n", + "\n", + "**⚠️ Notice**\n", + "\n", + "Since filming these videos, we've updated Studio so that it can now be run locally and accessed through your browser. This is the preferred way to run Studio instead of using the Desktop App shown in the video. It is now called _LangSmith Studio_ instead of _LangGraph Studio_. Detailed setup instructions are available in the \"Getting Setup\" guide at the start of the course. You can find a description of Studio [here](https://docs.langchain.com/langsmith/studio), and specific details for local deployment [here](https://docs.langchain.com/langsmith/quick-start-studio#local-development-server). \n", + "To start the local development server, run the following command in your terminal in the `/studio` directory in this module:\n", + "\n", + "```\n", + "langgraph dev\n", + "```\n", + "\n", + "You should see the following output:\n", + "```\n", + "- 🚀 API: http://127.0.0.1:2024\n", + "- 🎨 Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024\n", + "- 📚 API Docs: http://127.0.0.1:2024/docs\n", + "```\n", + "\n", + "Open your browser and navigate to the **Studio UI** URL shown above.\n", + "\n", + "The LangGraph API [supports editing graph state](https://docs.langchain.com/langsmith/add-human-in-the-loop)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8925b632-512b-48e1-9220-61c06bfbf0b8", + "metadata": { + "editable": true, + "tags": [], + "id": "8925b632-512b-48e1-9220-61c06bfbf0b8" + }, + "outputs": [], + "source": [ + "if 'google.colab' in str(get_ipython()):\n", + " raise Exception(\"Unfortunately LangGraph Studio is currently not supported on Google Colab\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "079c2ad6", + "metadata": { + "id": "079c2ad6" + }, + "outputs": [], + "source": [ + "from langgraph_sdk import get_client\n", + "\n", + "# This is the URL of the local development server\n", + "URL = \"http://127.0.0.1:2024\"\n", + "client = get_client(url=URL)\n", + "\n", + "# Search all hosted graphs\n", + "assistants = await client.assistants.search()" + ] + }, + { + "cell_type": "markdown", + "id": "4d15af9e-0e86-41e3-a5ba-ee2a4aa08a32", + "metadata": { + "editable": true, + "tags": [], + "id": "4d15af9e-0e86-41e3-a5ba-ee2a4aa08a32" + }, + "source": [ + "Let's [stream `values`](https://docs.langchain.com/oss/python/langgraph/streaming#stream-graph-state), like before." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63e3096f-5429-4d3c-8de2-2bddf7266ebf", + "metadata": { + "editable": true, + "tags": [], + "id": "63e3096f-5429-4d3c-8de2-2bddf7266ebf", + "outputId": "5f8e321b-c88f-47b9-a347-04b482a2a58a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "StreamPart(event='metadata', data={'run_id': '019a0358-31b4-7143-af47-2feeac0b27ce', 'attempt': 1})\n", + "StreamPart(event='values', data={'messages': [{'content': 'Multiply 2 and 3', 'additional_kwargs': {}, 'response_metadata': {}, 'type': 'human', 'name': None, 'id': '9aaa247f-1e6e-4451-af25-ac678fe46d82'}]})\n", + "StreamPart(event='values', data={'messages': [{'content': 'Multiply 2 and 3', 'additional_kwargs': {}, 'response_metadata': {}, 'type': 'human', 'name': None, 'id': '9aaa247f-1e6e-4451-af25-ac678fe46d82'}, {'content': '', 'additional_kwargs': {'refusal': None}, 'response_metadata': {'token_usage': {'completion_tokens': 17, 'prompt_tokens': 134, 'total_tokens': 151, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb3c3cb84d', 'id': 'chatcmpl-CSqw4HhOXHahA4tIr4mIdEhQB1QB4', 'service_tier': 'default', 'finish_reason': 'tool_calls', 'logprobs': None}, 'type': 'ai', 'name': None, 'id': 'lc_run--4a3794f6-52c3-41b5-9620-1710d6e8392d-0', 'tool_calls': [{'name': 'multiply', 'args': {'a': 2, 'b': 3}, 'id': 'call_3sCWZZ89AoUe91MYc3ZBtJ0P', 'type': 'tool_call'}], 'invalid_tool_calls': [], 'usage_metadata': {'input_tokens': 134, 'output_tokens': 17, 'total_tokens': 151, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}}]})\n", + "StreamPart(event='values', data={'messages': [{'content': 'Multiply 2 and 3', 'additional_kwargs': {}, 'response_metadata': {}, 'type': 'human', 'name': None, 'id': '9aaa247f-1e6e-4451-af25-ac678fe46d82'}, {'content': '', 'additional_kwargs': {'refusal': None}, 'response_metadata': {'token_usage': {'completion_tokens': 17, 'prompt_tokens': 134, 'total_tokens': 151, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb3c3cb84d', 'id': 'chatcmpl-CSqw4HhOXHahA4tIr4mIdEhQB1QB4', 'service_tier': 'default', 'finish_reason': 'tool_calls', 'logprobs': None}, 'type': 'ai', 'name': None, 'id': 'lc_run--4a3794f6-52c3-41b5-9620-1710d6e8392d-0', 'tool_calls': [{'name': 'multiply', 'args': {'a': 2, 'b': 3}, 'id': 'call_3sCWZZ89AoUe91MYc3ZBtJ0P', 'type': 'tool_call'}], 'invalid_tool_calls': [], 'usage_metadata': {'input_tokens': 134, 'output_tokens': 17, 'total_tokens': 151, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}}, {'content': '6', 'additional_kwargs': {}, 'response_metadata': {}, 'type': 'tool', 'name': 'multiply', 'id': 'f05da6b3-27be-4896-967a-3ff60aa06d85', 'tool_call_id': 'call_3sCWZZ89AoUe91MYc3ZBtJ0P', 'artifact': None, 'status': 'success'}]})\n", + "StreamPart(event='values', data={'messages': [{'content': 'Multiply 2 and 3', 'additional_kwargs': {}, 'response_metadata': {}, 'type': 'human', 'name': None, 'id': '9aaa247f-1e6e-4451-af25-ac678fe46d82'}, {'content': '', 'additional_kwargs': {'refusal': None}, 'response_metadata': {'token_usage': {'completion_tokens': 17, 'prompt_tokens': 134, 'total_tokens': 151, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb3c3cb84d', 'id': 'chatcmpl-CSqw4HhOXHahA4tIr4mIdEhQB1QB4', 'service_tier': 'default', 'finish_reason': 'tool_calls', 'logprobs': None}, 'type': 'ai', 'name': None, 'id': 'lc_run--4a3794f6-52c3-41b5-9620-1710d6e8392d-0', 'tool_calls': [{'name': 'multiply', 'args': {'a': 2, 'b': 3}, 'id': 'call_3sCWZZ89AoUe91MYc3ZBtJ0P', 'type': 'tool_call'}], 'invalid_tool_calls': [], 'usage_metadata': {'input_tokens': 134, 'output_tokens': 17, 'total_tokens': 151, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}}, {'content': '6', 'additional_kwargs': {}, 'response_metadata': {}, 'type': 'tool', 'name': 'multiply', 'id': 'f05da6b3-27be-4896-967a-3ff60aa06d85', 'tool_call_id': 'call_3sCWZZ89AoUe91MYc3ZBtJ0P', 'artifact': None, 'status': 'success'}, {'content': 'The result of multiplying 2 and 3 is 6.', 'additional_kwargs': {'refusal': None}, 'response_metadata': {'token_usage': {'completion_tokens': 14, 'prompt_tokens': 159, 'total_tokens': 173, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb3c3cb84d', 'id': 'chatcmpl-CSqw4xk8t3sPODL5beks5TlJBozgB', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, 'type': 'ai', 'name': None, 'id': 'lc_run--33a25ab0-f748-4c7f-a086-d9249e25fdc0-0', 'tool_calls': [], 'invalid_tool_calls': [], 'usage_metadata': {'input_tokens': 159, 'output_tokens': 14, 'total_tokens': 173, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}}]})\n" + ] + } + ], + "source": [ + "# Create a new thread\n", + "thread = await client.threads.create()\n", + "# Input message\n", + "input_message = HumanMessage(content=\"Multiply 2 and 3\")\n", + "async for event in client.runs.stream(thread[\"thread_id\"],\n", + " assistant_id=\"agent\",\n", + " input={\"messages\": [input_message]},\n", + " stream_mode=\"values\"):\n", + " print(event)" + ] + }, + { + "cell_type": "markdown", + "id": "556dc7fd-1cae-404f-816a-f13d772b3b14", + "metadata": { + "id": "556dc7fd-1cae-404f-816a-f13d772b3b14" + }, + "source": [ + "The streamed objects have:\n", + "\n", + "* `event`: Type\n", + "* `data`: State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57b735aa-139c-45a3-a850-63519c0004f0", + "metadata": { + "id": "57b735aa-139c-45a3-a850-63519c0004f0", + "outputId": "237035eb-abf4-41fc-ad05-4c391bec2df6" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "=========================\n", + "content='Multiply 2 and 3' additional_kwargs={} response_metadata={} id='c3ec872a-99a1-4eec-bcb6-a04973f48ac5'\n", + "=========================\n", + "content='' additional_kwargs={'invalid_tool_calls': [], 'usage_metadata': {'input_tokens': 134, 'output_tokens': 17, 'total_tokens': 151, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}, 'refusal': None} response_metadata={'token_usage': {'completion_tokens': 17, 'prompt_tokens': 134, 'total_tokens': 151, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_f64f290af2', 'id': 'chatcmpl-CSqw6HYoyCI7z2AuKAAfSTQGbvzla', 'service_tier': 'default', 'finish_reason': 'tool_calls', 'logprobs': None} id='lc_run--c91028e7-7a0a-4746-a4f5-edcff5380abc-0' tool_calls=[{'name': 'multiply', 'args': {'a': 2, 'b': 3}, 'id': 'call_AFChrxIQGbr7mmzr8buxymY0', 'type': 'tool_call'}]\n", + "=========================\n", + "content='6' name='multiply' id='f69a844b-5f82-4256-96dd-92b044e888d9' tool_call_id='call_AFChrxIQGbr7mmzr8buxymY0'\n", + "=========================\n", + "content='The result of multiplying 2 and 3 is 6.' additional_kwargs={'invalid_tool_calls': [], 'usage_metadata': {'input_tokens': 159, 'output_tokens': 14, 'total_tokens': 173, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}, 'refusal': None} response_metadata={'token_usage': {'completion_tokens': 14, 'prompt_tokens': 159, 'total_tokens': 173, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb3c3cb84d', 'id': 'chatcmpl-CSqw7xBeinGuHlx0upkmo2tryppco', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None} id='lc_run--dba1c4af-ed8f-4fed-8770-2c3429603cd0-0'\n", + "=========================\n" + ] + } + ], + "source": [ + "from langchain_core.messages import convert_to_messages\n", + "thread = await client.threads.create()\n", + "input_message = HumanMessage(content=\"Multiply 2 and 3\")\n", + "async for event in client.runs.stream(thread[\"thread_id\"], assistant_id=\"agent\", input={\"messages\": [input_message]}, stream_mode=\"values\"):\n", + " messages = event.data.get('messages',None)\n", + " if messages:\n", + " print(convert_to_messages(messages)[-1])\n", + " print('='*25)" + ] + }, + { + "cell_type": "markdown", + "id": "a555d186-27be-4ddf-934c-895a3105035d", + "metadata": { + "editable": true, + "tags": [], + "id": "a555d186-27be-4ddf-934c-895a3105035d" + }, + "source": [ + "There are some new streaming mode that are only supported via the API.\n", + "\n", + "For example, we can [use `messages` mode](https://docs.langchain.com/oss/python/langgraph/streaming#supported-stream-modes) to better handle the above case!\n", + "\n", + "This mode currently assumes that you have a `messages` key in your graph, which is a list of messages.\n", + "\n", + "All events emitted using `messages` mode have two attributes:\n", + "\n", + "* `event`: This is the name of the event\n", + "* `data`: This is data associated with the event" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4abd91f6-63c0-41ee-9988-7c8248b88a45", + "metadata": { + "editable": true, + "tags": [], + "id": "4abd91f6-63c0-41ee-9988-7c8248b88a45", + "outputId": "3d99bef3-8450-46f6-d2d8-2e3fe26ddc46" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "metadata\n", + "messages/metadata\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/metadata\n", + "messages/complete\n", + "messages/metadata\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n", + "messages/partial\n" + ] + } + ], + "source": [ + "thread = await client.threads.create()\n", + "input_message = HumanMessage(content=\"Multiply 2 and 3\")\n", + "async for event in client.runs.stream(thread[\"thread_id\"],\n", + " assistant_id=\"agent\",\n", + " input={\"messages\": [input_message]},\n", + " stream_mode=\"messages\"):\n", + " print(event.event)" + ] + }, + { + "cell_type": "markdown", + "id": "8de2f1ea-b232-43fc-af7a-320efce83381", + "metadata": { + "editable": true, + "tags": [], + "id": "8de2f1ea-b232-43fc-af7a-320efce83381" + }, + "source": [ + "We can see a few events:\n", + "\n", + "* `metadata`: metadata about the run\n", + "* `messages/complete`: fully formed message\n", + "* `messages/partial`: chat model tokens\n", + "\n", + "\n", + "\n", + "Now, let's show how to stream these messages.\n", + "\n", + "We'll define a helper function for better formatting of the tool calls in messages." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50a85e16-6e3f-4f14-bcf9-8889a762f522", + "metadata": { + "editable": true, + "tags": [], + "id": "50a85e16-6e3f-4f14-bcf9-8889a762f522", + "outputId": "3fecfdf3-7c36-4c2f-b75a-47a2c8f301dc" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Metadata: Run ID - 019a0358-57dc-76f9-bc63-633eee467a86\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2, 'b': 3}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2, 'b': 3}\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2, 'b': 3}\n", + "Response Metadata: Finish Reason - tool_calls\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2, 'b': 3}\n", + "Response Metadata: Finish Reason - tool_calls\n", + "--------------------------------------------------\n", + "Tool Calls:\n", + "Tool Call ID: call_mDtKBiuzkpN5ITWykhEFN0XU, Function: multiply, Arguments: {'a': 2, 'b': 3}\n", + "Response Metadata: Finish Reason - tool_calls\n", + "--------------------------------------------------\n", + "--------------------------------------------------\n", + "AI: The\n", + "--------------------------------------------------\n", + "AI: The result\n", + "--------------------------------------------------\n", + "AI: The result of\n", + "--------------------------------------------------\n", + "AI: The result of multiplying\n", + "--------------------------------------------------\n", + "AI: The result of multiplying \n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and \n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is \n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is 6\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is 6.\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is 6.\n", + "Response Metadata: Finish Reason - stop\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is 6.\n", + "Response Metadata: Finish Reason - stop\n", + "--------------------------------------------------\n", + "AI: The result of multiplying 2 and 3 is 6.\n", + "Response Metadata: Finish Reason - stop\n", + "--------------------------------------------------\n" + ] + } + ], + "source": [ + "thread = await client.threads.create()\n", + "input_message = HumanMessage(content=\"Multiply 2 and 3\")\n", + "\n", + "def format_tool_calls(tool_calls):\n", + " \"\"\"\n", + " Format a list of tool calls into a readable string.\n", + "\n", + " Args:\n", + " tool_calls (list): A list of dictionaries, each representing a tool call.\n", + " Each dictionary should have 'id', 'name', and 'args' keys.\n", + "\n", + " Returns:\n", + " str: A formatted string of tool calls, or \"No tool calls\" if the list is empty.\n", + "\n", + " \"\"\"\n", + "\n", + " if tool_calls:\n", + " formatted_calls = []\n", + " for call in tool_calls:\n", + " formatted_calls.append(\n", + " f\"Tool Call ID: {call['id']}, Function: {call['name']}, Arguments: {call['args']}\"\n", + " )\n", + " return \"\\n\".join(formatted_calls)\n", + " return \"No tool calls\"\n", + "\n", + "async for event in client.runs.stream(\n", + " thread[\"thread_id\"],\n", + " assistant_id=\"agent\",\n", + " input={\"messages\": [input_message]},\n", + " stream_mode=\"messages\",):\n", + "\n", + " # Handle metadata events\n", + " if event.event == \"metadata\":\n", + " print(f\"Metadata: Run ID - {event.data['run_id']}\")\n", + " print(\"-\" * 50)\n", + "\n", + " # Handle partial message events\n", + " elif event.event == \"messages/partial\":\n", + " for data_item in event.data:\n", + " # Process user messages\n", + " if \"role\" in data_item and data_item[\"role\"] == \"user\":\n", + " print(f\"Human: {data_item['content']}\")\n", + " else:\n", + " # Extract relevant data from the event\n", + " tool_calls = data_item.get(\"tool_calls\", [])\n", + " invalid_tool_calls = data_item.get(\"invalid_tool_calls\", [])\n", + " content = data_item.get(\"content\", \"\")\n", + " response_metadata = data_item.get(\"response_metadata\", {})\n", + "\n", + " if content:\n", + " print(f\"AI: {content}\")\n", + "\n", + " if tool_calls:\n", + " print(\"Tool Calls:\")\n", + " print(format_tool_calls(tool_calls))\n", + "\n", + " if invalid_tool_calls:\n", + " print(\"Invalid Tool Calls:\")\n", + " print(format_tool_calls(invalid_tool_calls))\n", + "\n", + " if response_metadata and response_metadata.get(\"finish_reason\"):\n", + " print(f\"Response Metadata: Finish Reason - {response_metadata['finish_reason']}\")\n", + " print(\"-\" * 50)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ae885f8-102f-448a-9d68-8ded8d2bbd18", + "metadata": { + "id": "1ae885f8-102f-448a-9d68-8ded8d2bbd18" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.5" + }, + "colab": { + "provenance": [], + "name": "Human_in_the_loop.ipynb" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/ai-apps/gradio/chat_bot.ipynb b/ai-apps/gradio/chat_bot.ipynb new file mode 100644 index 0000000..0667171 --- /dev/null +++ b/ai-apps/gradio/chat_bot.ipynb @@ -0,0 +1,95 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "82ca44fb", + "metadata": {}, + "source": [ + "# Chat with LLM" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "227c3927", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "import gradio as gr\n", + "from openai import OpenAI\n", + "from dotenv import load_dotenv\n", + "load_dotenv()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6032311a", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "# Initialize the OpenAI client with the API key\n", + "openai_client = OpenAI(api_key=OPENAI_API_KEY)\n", + "model = \"gpt-3.5-turbo\" # \"gpt-5-nano\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "912bfb4b", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "def respond(message, history):\n", + " # Append the user's message to the chat history\n", + " history = [{'role': h['role'], 'content': h['content']} for h in history]\n", + " message = [{'role': 'system', 'content': system_message}] + history + [{'role': 'user', 'content': message}]\n", + " stream = openai_client.chat.completions.create(\n", + " model=model,\n", + " messages=message,\n", + " stream=True\n", + " )\n", + " response = ''\n", + " for chunk in stream:\n", + " response += chunk.choices[0].delta.content or ''\n", + " yield response" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d1b249c", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "gr.close_all()\n", + "gr.ChatInterface(fn=respond, type=\"messages\").launch(debug=True)" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ai-apps/haystack_tonic.ipynb b/ai-apps/haystack_tonic.ipynb new file mode 100644 index 0000000..2690039 --- /dev/null +++ b/ai-apps/haystack_tonic.ipynb @@ -0,0 +1,270 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "authorship_tag": "ABX9TyPTApHdeA109Za10Eckvgnh", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## PII detection and extraction in Haystack pipelines" + ], + "metadata": { + "id": "skFZ8NKLZR08" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Installation" + ], + "metadata": { + "id": "KIpZyP_GcQNr" + } + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "id": "OaRdp0C9Yxsy" + }, + "outputs": [], + "source": [ + "!pip install textual-haystack -q" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Setup\n", + "First thing first get your textual FREE API Key.\n", + "https://docs.tonic.ai/textual/tonic-textual-getting-started" + ], + "metadata": { + "id": "Q9q6XTh_btGr" + } + }, + { + "cell_type": "code", + "source": [ + "import os\n", + "from google.colab import userdata\n", + "\n", + "# Load the TONIC_TEXTUAL_API_KEY from Colab secrets\n", + "os.environ[\"TONIC_TEXTUAL_API_KEY\"] = userdata.get('TONIC_TEXTUAL_API_KEY')" + ], + "metadata": { + "id": "eyqkUKPfaCDG" + }, + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## 1. Document cleaning\n", + "\n", + "**Clean up documents before replacing PII with realistic fake data**" + ], + "metadata": { + "id": "_gDSEoRQaTzQ" + } + }, + { + "cell_type": "code", + "source": [ + "from haystack.dataclasses import Document\n", + "from haystack_integrations.components.tonic_textual import TonicTextualDocumentCleaner\n", + "\n", + "cleaner = TonicTextualDocumentCleaner(generator_default=\"Synthesis\")\n", + "result = cleaner.run(documents=[\n", + " Document(content=\"Patient John Smith, DOB 03/15/1982, was admitted for chest pain.\")\n", + "])\n", + "print(result[\"documents\"][0].content)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "o_gGC5o6Zosb", + "outputId": "0bb4b1b6-ee17-4203-ed95-51b6a0b70d40" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Patient Alfonzo Uva, DOB 03/20/1982, was admitted for chest pain.\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Tokenize PII**" + ], + "metadata": { + "id": "HuX870z_a9HF" + } + }, + { + "cell_type": "code", + "source": [ + "cleaner = TonicTextualDocumentCleaner(generator_default=\"Redaction\")\n", + "result = cleaner.run(documents=[\n", + " Document(content=\"Contact Jane Doe at jane@example.com.\")\n", + "])\n", + "print(result[\"documents\"][0].content)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "SuBT0lKla8z4", + "outputId": "6776a34f-f711-4338-d71c-32d641872057" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Contact [NAME_GIVEN_iKpB3] [NAME_FAMILY_Z3W2] at [EMAIL_ADDRESS_QEgToEQ8FO6hC16fJG].\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Entity Extraction" + ], + "metadata": { + "id": "W_6L_KoccBGc" + } + }, + { + "cell_type": "code", + "source": [ + "from haystack.dataclasses import Document\n", + "from haystack_integrations.components.tonic_textual import TonicTextualEntityExtractor\n", + "\n", + "extractor = TonicTextualEntityExtractor()\n", + "result = extractor.run(documents=[\n", + " Document(content=\"My name is Afiz Shaik and my email is afiz@example.com.\")\n", + "])\n", + "\n", + "for entity in TonicTextualEntityExtractor.get_stored_annotations(result[\"documents\"][0]):\n", + " print(f\"{entity.entity}: {entity.text} (confidence: {entity.score:.2f})\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "yZ6I4B9obCYa", + "outputId": "c0ecec1f-f1b6-48a1-df1d-4ceed020e1ff" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "NAME_GIVEN: Afiz (confidence: 0.95)\n", + "NAME_FAMILY: Shaik (confidence: 0.93)\n", + "EMAIL_ADDRESS: afiz@example.com (confidence: 0.99)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Complete Haystack Pipeline" + ], + "metadata": { + "id": "Jduqp5y1cy-p" + } + }, + { + "cell_type": "code", + "source": [ + "from haystack import Pipeline\n", + "from haystack.dataclasses import Document\n", + "from haystack_integrations.components.tonic_textual import (\n", + " TonicTextualDocumentCleaner,\n", + " TonicTextualEntityExtractor,\n", + ")\n", + "\n", + "pipeline = Pipeline()\n", + "pipeline.add_component(\"cleaner\", TonicTextualDocumentCleaner(generator_default=\"Synthesis\"))\n", + "pipeline.add_component(\"extractor\", TonicTextualEntityExtractor())\n", + "pipeline.connect(\"cleaner\", \"extractor\")\n", + "\n", + "result = pipeline.run({\n", + " \"cleaner\": {\n", + " \"documents\": [\n", + " Document(content=\"Contact Jane Doe at jane@example.com or (555) 867-5309.\"),\n", + " ]\n", + " }\n", + "})\n", + "\n", + "for doc in result[\"extractor\"][\"documents\"]:\n", + " entities = TonicTextualEntityExtractor.get_stored_annotations(doc)\n", + " print(f\"Cleaned: {doc.content}\")\n", + " print(f\"Entities: {[(e.entity, e.text) for e in entities]}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "CtmPwcwscLqo", + "outputId": "20e05741-2dba-459d-d80f-fb0b1dae0135" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Cleaned: Contact Antonina Crummitt at pacv@pvjivyj.lfq or (851) 452-9397.\n", + "Entities: [('NAME_GIVEN', 'Antonina'), ('NAME_FAMILY', 'Crummitt'), ('EMAIL_ADDRESS', 'pacv@pvjivyj.lfq'), ('PHONE_NUMBER', '(851) 452-9397')]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "TBgcSEt-dc_n" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/ai-apps/mini-chatgpt/README.md b/ai-apps/mini-chatgpt/README.md new file mode 100644 index 0000000..4233a91 --- /dev/null +++ b/ai-apps/mini-chatgpt/README.md @@ -0,0 +1,40 @@ +# Mini-ChatGPT (Streamlit + GitHub Models) + +A lightweight Streamlit chat app powered by **GitHub Models** via `langchain-azure-ai`. +It supports: + +- ✅ **GitHub token input** in the UI (no hard-coding needed) +- ✅ **System prompt customization** +- ✅ **Chat history** that persists for the session +- ✅ **Multiple model choices** +- ✅ **Safe token handling** (stored only in session state) +- ✅ **Clear chat** functionality + +--- + +## 🚀 Getting Started + +### 1. Install dependencies using `uv` + +```bash +uv init +uv add streamlit langchain-azure-ai +``` +## 2. Provide your GitHub Token +First get your GitHub access token from https://github.com/settings/apps. + +You have two options to provide the token in the app: +1. Easiest (local testing) – Paste it in the sidebar when running the app. +2. Environment variable +``` +export GITHUB_TOKEN="ghp_...your_token..." +``` + +## 3. Run the app +```bash +uv run streamlit run app.py +``` + +## 🖥 Usage +1. Start the app (above command). +2. Open the URL shown in your terminal (usually http://localhost:8501). \ No newline at end of file diff --git a/ai-apps/mini-chatgpt/main.py b/ai-apps/mini-chatgpt/main.py new file mode 100644 index 0000000..6628608 --- /dev/null +++ b/ai-apps/mini-chatgpt/main.py @@ -0,0 +1,155 @@ +# app.py +import os +import streamlit as st +from typing import List, Dict, Optional + +from langchain_azure_ai.chat_models import AzureAIChatCompletionsModel +from langchain_core.messages import HumanMessage, AIMessage, SystemMessage + +# ---------- Page setup ---------- +st.set_page_config(page_title="Mini-ChatGPT", page_icon="💬") +st.title("💬 Mini-ChatGPT") + + +# ---------- Helpers ---------- +def get_token() -> Optional[str]: + # 1) Session token set via sidebar + token = st.session_state.get("gh_token_input") or None + + # 2) Secrets + if not token: + try: + token = st.secrets.get("GITHUB_TOKEN", None) # type: ignore[attr-defined] + except Exception: + token = None + + # 3) Environment var + if not token: + token = os.getenv("GITHUB_TOKEN") + + return token or None + + +def build_messages(system_prompt: str, history: List[Dict[str, str]], user_text: str): + msgs = [] + if system_prompt.strip(): + msgs.append(SystemMessage(content=system_prompt.strip())) + for turn in history: + role, content = turn["role"], turn["content"] + if role == "user": + msgs.append(HumanMessage(content=content)) + elif role == "assistant": + msgs.append(AIMessage(content=content)) + msgs.append(HumanMessage(content=user_text)) + return msgs + + +def get_model(endpoint: str, model_name: str, credential: str): + # Keep the constructor simple/portable; advanced params can be added if needed. + return AzureAIChatCompletionsModel( + endpoint=endpoint, + model=model_name, + credential=credential, + ) + + +# ---------- Sidebar: Settings ---------- +with st.sidebar: + st.header("Settings") + + # Token input (masked). Stored in session_state only. + st.text_input( + "GitHub Token", + key="gh_token_input", + type="password", + help=( + "A GitHub token with access to GitHub Models. " + "Recommended scopes: `models:read` (and any required by your setup). " + "For deployments, put it in `st.secrets` as GITHUB_TOKEN." + ), + ) + + st.caption("We keep your token only in this browser session and never log it.") + + endpoint = st.text_input( + "Endpoint", + value="https://models.github.ai/inference", + help="Default endpoint for GitHub Models.", + ) + + model_name = st.selectbox( + "Model", + options=[ + "openai/gpt-4.1", + "openai/gpt-4.1-mini", + "openai/gpt-4o", + "openai/gpt-4o-mini", + ], + index=0, + help="Pick a chat-capable model.", + ) + + system_prompt = st.text_area( + "System Prompt (optional)", + value="You are a concise, helpful assistant.", + height=100, + help="Sets behavior/tone for the assistant.", + ) + + col_a, col_b = st.columns(2) + with col_a: + if st.button("🧹 Clear chat"): + st.session_state["chat_history"] = [] + st.rerun() + with col_b: + st.write("") # spacer + +# ---------- Session state ---------- +if "chat_history" not in st.session_state: + st.session_state[ + "chat_history" + ] = [] # list[{"role": "user"|"assistant", "content": str}] + +# ---------- Render existing chat ---------- +for msg in st.session_state.chat_history: + with st.chat_message("user" if msg["role"] == "user" else "assistant"): + st.markdown(msg["content"]) + +# ---------- Chat input ---------- +user_text = st.chat_input("Type your message…") + +if user_text: + token = get_token() + if not token: + st.error( + "Missing GitHub token. Add it in the sidebar, set `GITHUB_TOKEN` in environment, " + "or provide it via `st.secrets`." + ) + else: + # Echo user's message in the UI and store it + st.session_state.chat_history.append({"role": "user", "content": user_text}) + with st.chat_message("user"): + st.markdown(user_text) + + # Call the model + try: + model = get_model( + endpoint=endpoint, model_name=model_name, credential=token + ) + msgs = build_messages( + system_prompt, st.session_state.chat_history[:-1], user_text + ) + + with st.chat_message("assistant"): + with st.spinner("Thinking…"): + response = model.invoke(msgs) + # LangChain returns an AIMessage; content holds the text + assistant_text = getattr(response, "content", str(response)) + st.markdown(assistant_text) + + st.session_state.chat_history.append( + {"role": "assistant", "content": assistant_text} + ) + + except Exception as e: + st.error(f"Request failed: {e}") diff --git a/ai-apps/mini-chatgpt/pyproject.toml b/ai-apps/mini-chatgpt/pyproject.toml new file mode 100644 index 0000000..cec8c64 --- /dev/null +++ b/ai-apps/mini-chatgpt/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "mini-chatgpt" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "langchain-azure-ai>=0.1.4", + "streamlit>=1.48.0", +] diff --git a/ai-apps/mini-chatgpt/uv.lock b/ai-apps/mini-chatgpt/uv.lock new file mode 100644 index 0000000..b71b1c0 --- /dev/null +++ b/ai-apps/mini-chatgpt/uv.lock @@ -0,0 +1,1817 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.12.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload-time = "2025-07-29T05:52:32.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload-time = "2025-07-29T05:50:46.507Z" }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload-time = "2025-07-29T05:50:48.067Z" }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload-time = "2025-07-29T05:50:49.669Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload-time = "2025-07-29T05:50:51.368Z" }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload-time = "2025-07-29T05:50:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload-time = "2025-07-29T05:50:55.394Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload-time = "2025-07-29T05:50:57.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload-time = "2025-07-29T05:50:59.192Z" }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload-time = "2025-07-29T05:51:01.394Z" }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload-time = "2025-07-29T05:51:03.657Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload-time = "2025-07-29T05:51:05.911Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload-time = "2025-07-29T05:51:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload-time = "2025-07-29T05:51:09.56Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload-time = "2025-07-29T05:51:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload-time = "2025-07-29T05:51:13.689Z" }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload-time = "2025-07-29T05:51:15.452Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload-time = "2025-07-29T05:51:17.239Z" }, + { url = "https://files.pythonhosted.org/packages/f2/33/918091abcf102e39d15aba2476ad9e7bd35ddb190dcdd43a854000d3da0d/aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315", size = 696741, upload-time = "2025-07-29T05:51:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/7495a81e39a998e400f3ecdd44a62107254803d1681d9189be5c2e4530cd/aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd", size = 474407, upload-time = "2025-07-29T05:51:21.165Z" }, + { url = "https://files.pythonhosted.org/packages/49/fc/a9576ab4be2dcbd0f73ee8675d16c707cfc12d5ee80ccf4015ba543480c9/aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4", size = 466703, upload-time = "2025-07-29T05:51:22.948Z" }, + { url = "https://files.pythonhosted.org/packages/09/2f/d4bcc8448cf536b2b54eed48f19682031ad182faa3a3fee54ebe5b156387/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7", size = 1705532, upload-time = "2025-07-29T05:51:25.211Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f3/59406396083f8b489261e3c011aa8aee9df360a96ac8fa5c2e7e1b8f0466/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d", size = 1686794, upload-time = "2025-07-29T05:51:27.145Z" }, + { url = "https://files.pythonhosted.org/packages/dc/71/164d194993a8d114ee5656c3b7ae9c12ceee7040d076bf7b32fb98a8c5c6/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b", size = 1738865, upload-time = "2025-07-29T05:51:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/1c/00/d198461b699188a93ead39cb458554d9f0f69879b95078dce416d3209b54/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d", size = 1788238, upload-time = "2025-07-29T05:51:31.285Z" }, + { url = "https://files.pythonhosted.org/packages/85/b8/9e7175e1fa0ac8e56baa83bf3c214823ce250d0028955dfb23f43d5e61fd/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d", size = 1710566, upload-time = "2025-07-29T05:51:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/59/e4/16a8eac9df39b48ae102ec030fa9f726d3570732e46ba0c592aeeb507b93/aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645", size = 1624270, upload-time = "2025-07-29T05:51:35.195Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/cd84dee7b6ace0740908fd0af170f9fab50c2a41ccbc3806aabcb1050141/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461", size = 1677294, upload-time = "2025-07-29T05:51:37.215Z" }, + { url = "https://files.pythonhosted.org/packages/ce/42/d0f1f85e50d401eccd12bf85c46ba84f947a84839c8a1c2c5f6e8ab1eb50/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9", size = 1708958, upload-time = "2025-07-29T05:51:39.328Z" }, + { url = "https://files.pythonhosted.org/packages/d5/6b/f6fa6c5790fb602538483aa5a1b86fcbad66244997e5230d88f9412ef24c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d", size = 1651553, upload-time = "2025-07-29T05:51:41.356Z" }, + { url = "https://files.pythonhosted.org/packages/04/36/a6d36ad545fa12e61d11d1932eef273928b0495e6a576eb2af04297fdd3c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693", size = 1727688, upload-time = "2025-07-29T05:51:43.452Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c8/f195e5e06608a97a4e52c5d41c7927301bf757a8e8bb5bbf8cef6c314961/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64", size = 1761157, upload-time = "2025-07-29T05:51:45.643Z" }, + { url = "https://files.pythonhosted.org/packages/05/6a/ea199e61b67f25ba688d3ce93f63b49b0a4e3b3d380f03971b4646412fc6/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51", size = 1710050, upload-time = "2025-07-29T05:51:48.203Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2e/ffeb7f6256b33635c29dbed29a22a723ff2dd7401fff42ea60cf2060abfb/aiohttp-3.12.15-cp313-cp313-win32.whl", hash = "sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0", size = 422647, upload-time = "2025-07-29T05:51:50.718Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8e/78ee35774201f38d5e1ba079c9958f7629b1fd079459aea9467441dbfbf5/aiohttp-3.12.15-cp313-cp313-win_amd64.whl", hash = "sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84", size = 449067, upload-time = "2025-07-29T05:51:52.549Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "altair" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "narwhals" }, + { name = "packaging" }, + { name = "typing-extensions", marker = "python_full_version < '3.14'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/b1/f2969c7bdb8ad8bbdda031687defdce2c19afba2aa2c8e1d2a17f78376d8/altair-5.5.0.tar.gz", hash = "sha256:d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d", size = 705305, upload-time = "2024-11-23T23:39:58.542Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/f3/0b6ced594e51cc95d8c1fc1640d3623770d01e4969d29c0bd09945fafefa/altair-5.5.0-py3-none-any.whl", hash = "sha256:91a310b926508d560fe0148d02a194f38b824122641ef528113d029fcd129f8c", size = 731200, upload-time = "2024-11-23T23:39:56.4Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, +] + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload-time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "azure-ai-inference" +version = "1.0.0b9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "azure-core" }, + { name = "isodate" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4e/6a/ed85592e5c64e08c291992f58b1a94dab6869f28fb0f40fd753dced73ba6/azure_ai_inference-1.0.0b9.tar.gz", hash = "sha256:1feb496bd84b01ee2691befc04358fa25d7c344d8288e99364438859ad7cd5a4", size = 182408, upload-time = "2025-02-15T00:37:28.464Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/0f/27520da74769db6e58327d96c98e7b9a07ce686dff582c9a5ec60b03f9dd/azure_ai_inference-1.0.0b9-py3-none-any.whl", hash = "sha256:49823732e674092dad83bb8b0d1b65aa73111fab924d61349eb2a8cdc0493990", size = 124885, upload-time = "2025-02-15T00:37:29.964Z" }, +] + +[package.optional-dependencies] +opentelemetry = [ + { name = "azure-core-tracing-opentelemetry" }, +] + +[[package]] +name = "azure-core" +version = "1.35.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, + { name = "six" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/89/f53968635b1b2e53e4aad2dd641488929fef4ca9dfb0b97927fa7697ddf3/azure_core-1.35.0.tar.gz", hash = "sha256:c0be528489485e9ede59b6971eb63c1eaacf83ef53001bfe3904e475e972be5c", size = 339689, upload-time = "2025-07-03T00:55:23.496Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/78/bf94897361fdd650850f0f2e405b2293e2f12808239046232bdedf554301/azure_core-1.35.0-py3-none-any.whl", hash = "sha256:8db78c72868a58f3de8991eb4d22c4d368fae226dac1002998d6c50437e7dad1", size = 210708, upload-time = "2025-07-03T00:55:25.238Z" }, +] + +[[package]] +name = "azure-core-tracing-opentelemetry" +version = "1.0.0b12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "azure-core" }, + { name = "opentelemetry-api" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/7f/5de13a331a5f2919417819cc37dcf7c897018f02f83aa82b733e6629a6a6/azure_core_tracing_opentelemetry-1.0.0b12.tar.gz", hash = "sha256:bb454142440bae11fd9d68c7c1d67ae38a1756ce808c5e4d736730a7b4b04144", size = 26010, upload-time = "2025-03-21T00:18:37.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/5e/97a471f66935e7f89f521d0e11ae49c7f0871ca38f5c319dccae2155c8d8/azure_core_tracing_opentelemetry-1.0.0b12-py3-none-any.whl", hash = "sha256:38fd42709f1cc4bbc4f2797008b1c30a6a01617e49910c05daa3a0d0c65053ac", size = 11962, upload-time = "2025-03-21T00:18:38.581Z" }, +] + +[[package]] +name = "azure-cosmos" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "azure-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/7c/a4e7810f85e7f83d94265ef5ff0fb1efad55a768de737d940151ea2eec45/azure_cosmos-4.9.0.tar.gz", hash = "sha256:c70db4cbf55b0ff261ed7bb8aa325a5dfa565d3c6eaa43d75d26ae5e2ad6d74f", size = 1824155, upload-time = "2024-11-19T04:09:30.195Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/dc/380f843744535497acd0b85aacb59565c84fc28bf938c8d6e897a858cd95/azure_cosmos-4.9.0-py3-none-any.whl", hash = "sha256:3b60eaa01a16a857d0faf0cec304bac6fa8620a81bc268ce760339032ef617fe", size = 303157, upload-time = "2024-11-19T04:09:32.148Z" }, +] + +[[package]] +name = "azure-identity" +version = "1.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "azure-core" }, + { name = "cryptography" }, + { name = "msal" }, + { name = "msal-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b5/44/f3ee20bacb220b6b4a2b0a6cf7e742eecb383a5ccf604dd79ec27c286b7e/azure_identity-1.24.0.tar.gz", hash = "sha256:6c3a40b2a70af831e920b89e6421e8dcd4af78a0cb38b9642d86c67643d4930c", size = 271630, upload-time = "2025-08-07T22:27:36.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/74/17428cb429e8d52f6d0d69ed685f4760a545cb0156594963a9337b53b6c9/azure_identity-1.24.0-py3-none-any.whl", hash = "sha256:9e04997cde0ab02ed66422c74748548e620b7b29361c72ce622acab0267ff7c4", size = 187890, upload-time = "2025-08-07T22:27:38.033Z" }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + +[[package]] +name = "cachetools" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/89/817ad5d0411f136c484d535952aef74af9b25e0d99e90cdffbe121e6d628/cachetools-6.1.0.tar.gz", hash = "sha256:b4c4f404392848db3ce7aac34950d17be4d864da4b8b66911008e430bc544587", size = 30714, upload-time = "2025-06-16T18:51:03.07Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/f0/2ef431fe4141f5e334759d73e81120492b23b2824336883a91ac04ba710b/cachetools-6.1.0-py3-none-any.whl", hash = "sha256:1c7bb3cf9193deaf3508b7c5f2a79986c13ea38965c5adcff1f84519cf39163e", size = 11189, upload-time = "2025-06-16T18:51:01.514Z" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload-time = "2024-09-04T20:45:21.852Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178, upload-time = "2024-09-04T20:44:12.232Z" }, + { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840, upload-time = "2024-09-04T20:44:13.739Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803, upload-time = "2024-09-04T20:44:15.231Z" }, + { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850, upload-time = "2024-09-04T20:44:17.188Z" }, + { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729, upload-time = "2024-09-04T20:44:18.688Z" }, + { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256, upload-time = "2024-09-04T20:44:20.248Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424, upload-time = "2024-09-04T20:44:21.673Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568, upload-time = "2024-09-04T20:44:23.245Z" }, + { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736, upload-time = "2024-09-04T20:44:24.757Z" }, + { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448, upload-time = "2024-09-04T20:44:26.208Z" }, + { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976, upload-time = "2024-09-04T20:44:27.578Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload-time = "2024-09-04T20:44:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload-time = "2024-09-04T20:44:30.289Z" }, + { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload-time = "2024-09-04T20:44:32.01Z" }, + { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload-time = "2024-09-04T20:44:33.606Z" }, + { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload-time = "2024-09-04T20:44:35.191Z" }, + { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload-time = "2024-09-04T20:44:36.743Z" }, + { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload-time = "2024-09-04T20:44:38.492Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload-time = "2024-09-04T20:44:40.046Z" }, + { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload-time = "2024-09-04T20:44:41.616Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload-time = "2024-09-04T20:44:43.733Z" }, + { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload-time = "2024-09-04T20:44:45.309Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload-time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload-time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload-time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload-time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload-time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload-time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload-time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload-time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload-time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload-time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload-time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload-time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload-time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload-time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload-time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload-time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload-time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload-time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload-time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload-time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload-time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload-time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload-time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload-time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload-time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload-time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload-time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload-time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload-time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload-time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload-time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload-time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload-time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, +] + +[[package]] +name = "click" +version = "8.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "45.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/0d/d13399c94234ee8f3df384819dc67e0c5ce215fb751d567a55a1f4b028c7/cryptography-45.0.6.tar.gz", hash = "sha256:5c966c732cf6e4a276ce83b6e4c729edda2df6929083a952cc7da973c539c719", size = 744949, upload-time = "2025-08-05T23:59:27.93Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/29/2793d178d0eda1ca4a09a7c4e09a5185e75738cc6d526433e8663b460ea6/cryptography-45.0.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:048e7ad9e08cf4c0ab07ff7f36cc3115924e22e2266e034450a890d9e312dd74", size = 7042702, upload-time = "2025-08-05T23:58:23.464Z" }, + { url = "https://files.pythonhosted.org/packages/b3/b6/cabd07410f222f32c8d55486c464f432808abaa1f12af9afcbe8f2f19030/cryptography-45.0.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:44647c5d796f5fc042bbc6d61307d04bf29bccb74d188f18051b635f20a9c75f", size = 4206483, upload-time = "2025-08-05T23:58:27.132Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9e/f9c7d36a38b1cfeb1cc74849aabe9bf817990f7603ff6eb485e0d70e0b27/cryptography-45.0.6-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e40b80ecf35ec265c452eea0ba94c9587ca763e739b8e559c128d23bff7ebbbf", size = 4429679, upload-time = "2025-08-05T23:58:29.152Z" }, + { url = "https://files.pythonhosted.org/packages/9c/2a/4434c17eb32ef30b254b9e8b9830cee4e516f08b47fdd291c5b1255b8101/cryptography-45.0.6-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:00e8724bdad672d75e6f069b27970883179bd472cd24a63f6e620ca7e41cc0c5", size = 4210553, upload-time = "2025-08-05T23:58:30.596Z" }, + { url = "https://files.pythonhosted.org/packages/ef/1d/09a5df8e0c4b7970f5d1f3aff1b640df6d4be28a64cae970d56c6cf1c772/cryptography-45.0.6-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a3085d1b319d35296176af31c90338eeb2ddac8104661df79f80e1d9787b8b2", size = 3894499, upload-time = "2025-08-05T23:58:32.03Z" }, + { url = "https://files.pythonhosted.org/packages/79/62/120842ab20d9150a9d3a6bdc07fe2870384e82f5266d41c53b08a3a96b34/cryptography-45.0.6-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1b7fa6a1c1188c7ee32e47590d16a5a0646270921f8020efc9a511648e1b2e08", size = 4458484, upload-time = "2025-08-05T23:58:33.526Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/1bc3634d45ddfed0871bfba52cf8f1ad724761662a0c792b97a951fb1b30/cryptography-45.0.6-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:275ba5cc0d9e320cd70f8e7b96d9e59903c815ca579ab96c1e37278d231fc402", size = 4210281, upload-time = "2025-08-05T23:58:35.445Z" }, + { url = "https://files.pythonhosted.org/packages/7d/fe/ffb12c2d83d0ee625f124880a1f023b5878f79da92e64c37962bbbe35f3f/cryptography-45.0.6-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f4028f29a9f38a2025abedb2e409973709c660d44319c61762202206ed577c42", size = 4456890, upload-time = "2025-08-05T23:58:36.923Z" }, + { url = "https://files.pythonhosted.org/packages/8c/8e/b3f3fe0dc82c77a0deb5f493b23311e09193f2268b77196ec0f7a36e3f3e/cryptography-45.0.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ee411a1b977f40bd075392c80c10b58025ee5c6b47a822a33c1198598a7a5f05", size = 4333247, upload-time = "2025-08-05T23:58:38.781Z" }, + { url = "https://files.pythonhosted.org/packages/b3/a6/c3ef2ab9e334da27a1d7b56af4a2417d77e7806b2e0f90d6267ce120d2e4/cryptography-45.0.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e2a21a8eda2d86bb604934b6b37691585bd095c1f788530c1fcefc53a82b3453", size = 4565045, upload-time = "2025-08-05T23:58:40.415Z" }, + { url = "https://files.pythonhosted.org/packages/31/c3/77722446b13fa71dddd820a5faab4ce6db49e7e0bf8312ef4192a3f78e2f/cryptography-45.0.6-cp311-abi3-win32.whl", hash = "sha256:d063341378d7ee9c91f9d23b431a3502fc8bfacd54ef0a27baa72a0843b29159", size = 2928923, upload-time = "2025-08-05T23:58:41.919Z" }, + { url = "https://files.pythonhosted.org/packages/38/63/a025c3225188a811b82932a4dcc8457a26c3729d81578ccecbcce2cb784e/cryptography-45.0.6-cp311-abi3-win_amd64.whl", hash = "sha256:833dc32dfc1e39b7376a87b9a6a4288a10aae234631268486558920029b086ec", size = 3403805, upload-time = "2025-08-05T23:58:43.792Z" }, + { url = "https://files.pythonhosted.org/packages/5b/af/bcfbea93a30809f126d51c074ee0fac5bd9d57d068edf56c2a73abedbea4/cryptography-45.0.6-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:3436128a60a5e5490603ab2adbabc8763613f638513ffa7d311c900a8349a2a0", size = 7020111, upload-time = "2025-08-05T23:58:45.316Z" }, + { url = "https://files.pythonhosted.org/packages/98/c6/ea5173689e014f1a8470899cd5beeb358e22bb3cf5a876060f9d1ca78af4/cryptography-45.0.6-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0d9ef57b6768d9fa58e92f4947cea96ade1233c0e236db22ba44748ffedca394", size = 4198169, upload-time = "2025-08-05T23:58:47.121Z" }, + { url = "https://files.pythonhosted.org/packages/ba/73/b12995edc0c7e2311ffb57ebd3b351f6b268fed37d93bfc6f9856e01c473/cryptography-45.0.6-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea3c42f2016a5bbf71825537c2ad753f2870191134933196bee408aac397b3d9", size = 4421273, upload-time = "2025-08-05T23:58:48.557Z" }, + { url = "https://files.pythonhosted.org/packages/f7/6e/286894f6f71926bc0da67408c853dd9ba953f662dcb70993a59fd499f111/cryptography-45.0.6-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:20ae4906a13716139d6d762ceb3e0e7e110f7955f3bc3876e3a07f5daadec5f3", size = 4199211, upload-time = "2025-08-05T23:58:50.139Z" }, + { url = "https://files.pythonhosted.org/packages/de/34/a7f55e39b9623c5cb571d77a6a90387fe557908ffc44f6872f26ca8ae270/cryptography-45.0.6-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dac5ec199038b8e131365e2324c03d20e97fe214af051d20c49db129844e8b3", size = 3883732, upload-time = "2025-08-05T23:58:52.253Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b9/c6d32edbcba0cd9f5df90f29ed46a65c4631c4fbe11187feb9169c6ff506/cryptography-45.0.6-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:18f878a34b90d688982e43f4b700408b478102dd58b3e39de21b5ebf6509c301", size = 4450655, upload-time = "2025-08-05T23:58:53.848Z" }, + { url = "https://files.pythonhosted.org/packages/77/2d/09b097adfdee0227cfd4c699b3375a842080f065bab9014248933497c3f9/cryptography-45.0.6-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:5bd6020c80c5b2b2242d6c48487d7b85700f5e0038e67b29d706f98440d66eb5", size = 4198956, upload-time = "2025-08-05T23:58:55.209Z" }, + { url = "https://files.pythonhosted.org/packages/55/66/061ec6689207d54effdff535bbdf85cc380d32dd5377173085812565cf38/cryptography-45.0.6-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:eccddbd986e43014263eda489abbddfbc287af5cddfd690477993dbb31e31016", size = 4449859, upload-time = "2025-08-05T23:58:56.639Z" }, + { url = "https://files.pythonhosted.org/packages/41/ff/e7d5a2ad2d035e5a2af116e1a3adb4d8fcd0be92a18032917a089c6e5028/cryptography-45.0.6-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:550ae02148206beb722cfe4ef0933f9352bab26b087af00e48fdfb9ade35c5b3", size = 4320254, upload-time = "2025-08-05T23:58:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/82/27/092d311af22095d288f4db89fcaebadfb2f28944f3d790a4cf51fe5ddaeb/cryptography-45.0.6-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5b64e668fc3528e77efa51ca70fadcd6610e8ab231e3e06ae2bab3b31c2b8ed9", size = 4554815, upload-time = "2025-08-05T23:59:00.283Z" }, + { url = "https://files.pythonhosted.org/packages/7e/01/aa2f4940262d588a8fdf4edabe4cda45854d00ebc6eaac12568b3a491a16/cryptography-45.0.6-cp37-abi3-win32.whl", hash = "sha256:780c40fb751c7d2b0c6786ceee6b6f871e86e8718a8ff4bc35073ac353c7cd02", size = 2912147, upload-time = "2025-08-05T23:59:01.716Z" }, + { url = "https://files.pythonhosted.org/packages/0a/bc/16e0276078c2de3ceef6b5a34b965f4436215efac45313df90d55f0ba2d2/cryptography-45.0.6-cp37-abi3-win_amd64.whl", hash = "sha256:20d15aed3ee522faac1a39fbfdfee25d17b1284bafd808e1640a74846d7c4d1b", size = 3390459, upload-time = "2025-08-05T23:59:03.358Z" }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload-time = "2025-06-09T23:02:35.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload-time = "2025-06-09T23:00:42.24Z" }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload-time = "2025-06-09T23:00:43.481Z" }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload-time = "2025-06-09T23:00:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload-time = "2025-06-09T23:00:46.125Z" }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload-time = "2025-06-09T23:00:47.73Z" }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload-time = "2025-06-09T23:00:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload-time = "2025-06-09T23:00:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload-time = "2025-06-09T23:00:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload-time = "2025-06-09T23:00:54.43Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload-time = "2025-06-09T23:00:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload-time = "2025-06-09T23:00:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload-time = "2025-06-09T23:01:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload-time = "2025-06-09T23:01:01.474Z" }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload-time = "2025-06-09T23:01:02.961Z" }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload-time = "2025-06-09T23:01:05.095Z" }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload-time = "2025-06-09T23:01:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload-time = "2025-06-09T23:01:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791, upload-time = "2025-06-09T23:01:09.368Z" }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165, upload-time = "2025-06-09T23:01:10.653Z" }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881, upload-time = "2025-06-09T23:01:12.296Z" }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409, upload-time = "2025-06-09T23:01:13.641Z" }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132, upload-time = "2025-06-09T23:01:15.264Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638, upload-time = "2025-06-09T23:01:16.752Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539, upload-time = "2025-06-09T23:01:18.202Z" }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646, upload-time = "2025-06-09T23:01:19.649Z" }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233, upload-time = "2025-06-09T23:01:21.175Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996, upload-time = "2025-06-09T23:01:23.098Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280, upload-time = "2025-06-09T23:01:24.808Z" }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717, upload-time = "2025-06-09T23:01:26.28Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644, upload-time = "2025-06-09T23:01:27.887Z" }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879, upload-time = "2025-06-09T23:01:29.524Z" }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502, upload-time = "2025-06-09T23:01:31.287Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169, upload-time = "2025-06-09T23:01:35.503Z" }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219, upload-time = "2025-06-09T23:01:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345, upload-time = "2025-06-09T23:01:38.295Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880, upload-time = "2025-06-09T23:01:39.887Z" }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498, upload-time = "2025-06-09T23:01:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296, upload-time = "2025-06-09T23:01:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103, upload-time = "2025-06-09T23:01:44.166Z" }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869, upload-time = "2025-06-09T23:01:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467, upload-time = "2025-06-09T23:01:47.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028, upload-time = "2025-06-09T23:01:48.819Z" }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294, upload-time = "2025-06-09T23:01:50.394Z" }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898, upload-time = "2025-06-09T23:01:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465, upload-time = "2025-06-09T23:01:53.788Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385, upload-time = "2025-06-09T23:01:55.769Z" }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771, upload-time = "2025-06-09T23:01:57.4Z" }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206, upload-time = "2025-06-09T23:01:58.936Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620, upload-time = "2025-06-09T23:02:00.493Z" }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059, upload-time = "2025-06-09T23:02:02.072Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516, upload-time = "2025-06-09T23:02:03.779Z" }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload-time = "2025-06-09T23:02:34.204Z" }, +] + +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.45" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jiter" +version = "0.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/9d/ae7ddb4b8ab3fb1b51faf4deb36cb48a4fbbd7cb36bad6a5fca4741306f7/jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500", size = 162759, upload-time = "2025-05-18T19:04:59.73Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/b5/348b3313c58f5fbfb2194eb4d07e46a35748ba6e5b3b3046143f3040bafa/jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b", size = 312262, upload-time = "2025-05-18T19:03:44.637Z" }, + { url = "https://files.pythonhosted.org/packages/9c/4a/6a2397096162b21645162825f058d1709a02965606e537e3304b02742e9b/jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744", size = 320124, upload-time = "2025-05-18T19:03:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/2a/85/1ce02cade7516b726dd88f59a4ee46914bf79d1676d1228ef2002ed2f1c9/jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2", size = 345330, upload-time = "2025-05-18T19:03:47.596Z" }, + { url = "https://files.pythonhosted.org/packages/75/d0/bb6b4f209a77190ce10ea8d7e50bf3725fc16d3372d0a9f11985a2b23eff/jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026", size = 369670, upload-time = "2025-05-18T19:03:49.334Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f5/a61787da9b8847a601e6827fbc42ecb12be2c925ced3252c8ffcb56afcaf/jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c", size = 489057, upload-time = "2025-05-18T19:03:50.66Z" }, + { url = "https://files.pythonhosted.org/packages/12/e4/6f906272810a7b21406c760a53aadbe52e99ee070fc5c0cb191e316de30b/jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959", size = 389372, upload-time = "2025-05-18T19:03:51.98Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ba/77013b0b8ba904bf3762f11e0129b8928bff7f978a81838dfcc958ad5728/jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a", size = 352038, upload-time = "2025-05-18T19:03:53.703Z" }, + { url = "https://files.pythonhosted.org/packages/67/27/c62568e3ccb03368dbcc44a1ef3a423cb86778a4389e995125d3d1aaa0a4/jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95", size = 391538, upload-time = "2025-05-18T19:03:55.046Z" }, + { url = "https://files.pythonhosted.org/packages/c0/72/0d6b7e31fc17a8fdce76164884edef0698ba556b8eb0af9546ae1a06b91d/jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea", size = 523557, upload-time = "2025-05-18T19:03:56.386Z" }, + { url = "https://files.pythonhosted.org/packages/2f/09/bc1661fbbcbeb6244bd2904ff3a06f340aa77a2b94e5a7373fd165960ea3/jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b", size = 514202, upload-time = "2025-05-18T19:03:57.675Z" }, + { url = "https://files.pythonhosted.org/packages/1b/84/5a5d5400e9d4d54b8004c9673bbe4403928a00d28529ff35b19e9d176b19/jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01", size = 211781, upload-time = "2025-05-18T19:03:59.025Z" }, + { url = "https://files.pythonhosted.org/packages/9b/52/7ec47455e26f2d6e5f2ea4951a0652c06e5b995c291f723973ae9e724a65/jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49", size = 206176, upload-time = "2025-05-18T19:04:00.305Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b0/279597e7a270e8d22623fea6c5d4eeac328e7d95c236ed51a2b884c54f70/jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644", size = 311617, upload-time = "2025-05-18T19:04:02.078Z" }, + { url = "https://files.pythonhosted.org/packages/91/e3/0916334936f356d605f54cc164af4060e3e7094364add445a3bc79335d46/jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a", size = 318947, upload-time = "2025-05-18T19:04:03.347Z" }, + { url = "https://files.pythonhosted.org/packages/6a/8e/fd94e8c02d0e94539b7d669a7ebbd2776e51f329bb2c84d4385e8063a2ad/jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6", size = 344618, upload-time = "2025-05-18T19:04:04.709Z" }, + { url = "https://files.pythonhosted.org/packages/6f/b0/f9f0a2ec42c6e9c2e61c327824687f1e2415b767e1089c1d9135f43816bd/jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3", size = 368829, upload-time = "2025-05-18T19:04:06.912Z" }, + { url = "https://files.pythonhosted.org/packages/e8/57/5bbcd5331910595ad53b9fd0c610392ac68692176f05ae48d6ce5c852967/jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2", size = 491034, upload-time = "2025-05-18T19:04:08.222Z" }, + { url = "https://files.pythonhosted.org/packages/9b/be/c393df00e6e6e9e623a73551774449f2f23b6ec6a502a3297aeeece2c65a/jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25", size = 388529, upload-time = "2025-05-18T19:04:09.566Z" }, + { url = "https://files.pythonhosted.org/packages/42/3e/df2235c54d365434c7f150b986a6e35f41ebdc2f95acea3036d99613025d/jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041", size = 350671, upload-time = "2025-05-18T19:04:10.98Z" }, + { url = "https://files.pythonhosted.org/packages/c6/77/71b0b24cbcc28f55ab4dbfe029f9a5b73aeadaba677843fc6dc9ed2b1d0a/jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca", size = 390864, upload-time = "2025-05-18T19:04:12.722Z" }, + { url = "https://files.pythonhosted.org/packages/6a/d3/ef774b6969b9b6178e1d1e7a89a3bd37d241f3d3ec5f8deb37bbd203714a/jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4", size = 522989, upload-time = "2025-05-18T19:04:14.261Z" }, + { url = "https://files.pythonhosted.org/packages/0c/41/9becdb1d8dd5d854142f45a9d71949ed7e87a8e312b0bede2de849388cb9/jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e", size = 513495, upload-time = "2025-05-18T19:04:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/9c/36/3468e5a18238bdedae7c4d19461265b5e9b8e288d3f86cd89d00cbb48686/jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d", size = 211289, upload-time = "2025-05-18T19:04:17.541Z" }, + { url = "https://files.pythonhosted.org/packages/7e/07/1c96b623128bcb913706e294adb5f768fb7baf8db5e1338ce7b4ee8c78ef/jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4", size = 205074, upload-time = "2025-05-18T19:04:19.21Z" }, + { url = "https://files.pythonhosted.org/packages/54/46/caa2c1342655f57d8f0f2519774c6d67132205909c65e9aa8255e1d7b4f4/jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca", size = 318225, upload-time = "2025-05-18T19:04:20.583Z" }, + { url = "https://files.pythonhosted.org/packages/43/84/c7d44c75767e18946219ba2d703a5a32ab37b0bc21886a97bc6062e4da42/jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070", size = 350235, upload-time = "2025-05-18T19:04:22.363Z" }, + { url = "https://files.pythonhosted.org/packages/01/16/f5a0135ccd968b480daad0e6ab34b0c7c5ba3bc447e5088152696140dcb3/jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca", size = 207278, upload-time = "2025-05-18T19:04:23.627Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9b/1d646da42c3de6c2188fdaa15bce8ecb22b635904fc68be025e21249ba44/jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522", size = 310866, upload-time = "2025-05-18T19:04:24.891Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0e/26538b158e8a7c7987e94e7aeb2999e2e82b1f9d2e1f6e9874ddf71ebda0/jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8", size = 318772, upload-time = "2025-05-18T19:04:26.161Z" }, + { url = "https://files.pythonhosted.org/packages/7b/fb/d302893151caa1c2636d6574d213e4b34e31fd077af6050a9c5cbb42f6fb/jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216", size = 344534, upload-time = "2025-05-18T19:04:27.495Z" }, + { url = "https://files.pythonhosted.org/packages/01/d8/5780b64a149d74e347c5128d82176eb1e3241b1391ac07935693466d6219/jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4", size = 369087, upload-time = "2025-05-18T19:04:28.896Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5b/f235a1437445160e777544f3ade57544daf96ba7e96c1a5b24a6f7ac7004/jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426", size = 490694, upload-time = "2025-05-18T19:04:30.183Z" }, + { url = "https://files.pythonhosted.org/packages/85/a9/9c3d4617caa2ff89cf61b41e83820c27ebb3f7b5fae8a72901e8cd6ff9be/jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12", size = 388992, upload-time = "2025-05-18T19:04:32.028Z" }, + { url = "https://files.pythonhosted.org/packages/68/b1/344fd14049ba5c94526540af7eb661871f9c54d5f5601ff41a959b9a0bbd/jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9", size = 351723, upload-time = "2025-05-18T19:04:33.467Z" }, + { url = "https://files.pythonhosted.org/packages/41/89/4c0e345041186f82a31aee7b9d4219a910df672b9fef26f129f0cda07a29/jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a", size = 392215, upload-time = "2025-05-18T19:04:34.827Z" }, + { url = "https://files.pythonhosted.org/packages/55/58/ee607863e18d3f895feb802154a2177d7e823a7103f000df182e0f718b38/jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853", size = 522762, upload-time = "2025-05-18T19:04:36.19Z" }, + { url = "https://files.pythonhosted.org/packages/15/d0/9123fb41825490d16929e73c212de9a42913d68324a8ce3c8476cae7ac9d/jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86", size = 513427, upload-time = "2025-05-18T19:04:37.544Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b3/2bd02071c5a2430d0b70403a34411fc519c2f227da7b03da9ba6a956f931/jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357", size = 210127, upload-time = "2025-05-18T19:04:38.837Z" }, + { url = "https://files.pythonhosted.org/packages/03/0c/5fe86614ea050c3ecd728ab4035534387cd41e7c1855ef6c031f1ca93e3f/jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00", size = 318527, upload-time = "2025-05-18T19:04:40.612Z" }, + { url = "https://files.pythonhosted.org/packages/b3/4a/4175a563579e884192ba6e81725fc0448b042024419be8d83aa8a80a3f44/jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5", size = 354213, upload-time = "2025-05-18T19:04:41.894Z" }, +] + +[[package]] +name = "jsonpatch" +version = "1.33" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpointer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload-time = "2023-06-26T12:07:29.144Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload-time = "2023-06-16T21:01:28.466Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d5/00/a297a868e9d0784450faa7365c2172a7d6110c763e30ba861867c32ae6a9/jsonschema-4.25.0.tar.gz", hash = "sha256:e63acf5c11762c0e6672ffb61482bdf57f0876684d8d249c0fe2d730d48bc55f", size = 356830, upload-time = "2025-07-18T15:39:45.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/54/c86cd8e011fe98803d7e382fd67c0df5ceab8d2b7ad8c5a81524f791551c/jsonschema-4.25.0-py3-none-any.whl", hash = "sha256:24c2e8da302de79c8b9382fee3e76b355e44d2a4364bb207159ce10b517bd716", size = 89184, upload-time = "2025-07-18T15:39:42.956Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608", size = 15513, upload-time = "2025-04-23T12:34:07.418Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437, upload-time = "2025-04-23T12:34:05.422Z" }, +] + +[[package]] +name = "langchain-azure-ai" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "azure-ai-inference", extra = ["opentelemetry"] }, + { name = "azure-core" }, + { name = "azure-cosmos" }, + { name = "azure-identity" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/64/4ebdf85619bc3668544c68f3f2df1ac6e56825e5d670a685e13008c0d617/langchain_azure_ai-0.1.4.tar.gz", hash = "sha256:26e91cfa49ad3b64a858ed8501a591a5ecc2fac4fb4938283fb7ec63076f624e", size = 37078, upload-time = "2025-06-04T20:48:22.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/e3/967b411dabe8b9134066e6ba9f95b3f3a6b843ef55c9d9f7f3b4adacc1fb/langchain_azure_ai-0.1.4-py3-none-any.whl", hash = "sha256:89d94472564203f9e032d9eb0a1c617960af7a5eb4310a344d6db5352afd409f", size = 45380, upload-time = "2025-06-04T20:48:21.806Z" }, +] + +[[package]] +name = "langchain-core" +version = "0.3.74" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpatch" }, + { name = "langsmith" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "tenacity" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/c6/5d755a0f1f4857abbe5ea6f5907ed0e2b5df52bf4dde0a0fd768290e3084/langchain_core-0.3.74.tar.gz", hash = "sha256:ff604441aeade942fbcc0a3860a592daba7671345230c2078ba2eb5f82b6ba76", size = 569553, upload-time = "2025-08-07T20:47:05.094Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/26/545283681ac0379d31c7ad0bac5f195e1982092d76c65ca048db9e3cec0e/langchain_core-0.3.74-py3-none-any.whl", hash = "sha256:088338b5bc2f6a66892f9afc777992c24ee3188f41cbc603d09181e34a228ce7", size = 443453, upload-time = "2025-08-07T20:47:03.853Z" }, +] + +[[package]] +name = "langchain-openai" +version = "0.3.29" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "openai" }, + { name = "tiktoken" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/56/2e2010d15118ac52760f92ebf6ce75b3508e7a1023107ea04233fd6263e0/langchain_openai-0.3.29.tar.gz", hash = "sha256:83a0455f8ce874aa1806131ca3b4db08e482be037b7457a9b3ca21a213d2ab47", size = 766499, upload-time = "2025-08-08T15:12:32.402Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/f2/a6a73beec15e90605e6a24c4498a8592d79a72c8e81c18ed0f5e9b7308e9/langchain_openai-0.3.29-py3-none-any.whl", hash = "sha256:71ae6791b3e017ec892a8062f993edc882c6665fd8385aa66e9dc3bff8205996", size = 74316, upload-time = "2025-08-08T15:12:30.794Z" }, +] + +[[package]] +name = "langsmith" +version = "0.4.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "orjson", marker = "platform_python_implementation != 'PyPy'" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "zstandard" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/7a/a4265a1ae549cb2480dae97867dd6841edaf2b419755d307ef998fa87854/langsmith-0.4.13.tar.gz", hash = "sha256:1ae7dbb5d8150647406f49885a2dd16ab12bd990254b5dc23718838b3d086fde", size = 920911, upload-time = "2025-08-06T20:09:53.041Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/04/171205d95baa3e5e8867416ffeb90510c3f17036a96e6aa9948ba4920db0/langsmith-0.4.13-py3-none-any.whl", hash = "sha256:dab7b16ee16986995007bf5a777f45c18f8bf7453f67ae2ebcb46ce43c214297", size = 372682, upload-time = "2025-08-06T20:09:51.026Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload-time = "2024-10-18T15:21:54.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload-time = "2024-10-18T15:21:13.777Z" }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload-time = "2024-10-18T15:21:14.822Z" }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload-time = "2024-10-18T15:21:15.642Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload-time = "2024-10-18T15:21:17.133Z" }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload-time = "2024-10-18T15:21:18.064Z" }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload-time = "2024-10-18T15:21:18.859Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload-time = "2024-10-18T15:21:19.671Z" }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload-time = "2024-10-18T15:21:20.971Z" }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload-time = "2024-10-18T15:21:22.646Z" }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload-time = "2024-10-18T15:21:23.499Z" }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload-time = "2024-10-18T15:21:24.577Z" }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload-time = "2024-10-18T15:21:25.382Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload-time = "2024-10-18T15:21:26.199Z" }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload-time = "2024-10-18T15:21:27.029Z" }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload-time = "2024-10-18T15:21:27.846Z" }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload-time = "2024-10-18T15:21:28.744Z" }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload-time = "2024-10-18T15:21:29.545Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload-time = "2024-10-18T15:21:30.366Z" }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload-time = "2024-10-18T15:21:31.207Z" }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload-time = "2024-10-18T15:21:32.032Z" }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload-time = "2024-10-18T15:21:33.625Z" }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload-time = "2024-10-18T15:21:34.611Z" }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload-time = "2024-10-18T15:21:35.398Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload-time = "2024-10-18T15:21:36.231Z" }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload-time = "2024-10-18T15:21:37.073Z" }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload-time = "2024-10-18T15:21:37.932Z" }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload-time = "2024-10-18T15:21:39.799Z" }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload-time = "2024-10-18T15:21:40.813Z" }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload-time = "2024-10-18T15:21:41.814Z" }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload-time = "2024-10-18T15:21:42.784Z" }, +] + +[[package]] +name = "mini-chatgpt" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "langchain-azure-ai" }, + { name = "streamlit" }, +] + +[package.metadata] +requires-dist = [ + { name = "langchain-azure-ai", specifier = ">=0.1.4" }, + { name = "streamlit", specifier = ">=1.48.0" }, +] + +[[package]] +name = "msal" +version = "1.33.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d5/da/81acbe0c1fd7e9e4ec35f55dadeba9833a847b9a6ba2e2d1e4432da901dd/msal-1.33.0.tar.gz", hash = "sha256:836ad80faa3e25a7d71015c990ce61f704a87328b1e73bcbb0623a18cbf17510", size = 153801, upload-time = "2025-07-22T19:36:33.693Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/5b/fbc73e91f7727ae1e79b21ed833308e99dc11cc1cd3d4717f579775de5e9/msal-1.33.0-py3-none-any.whl", hash = "sha256:c0cd41cecf8eaed733ee7e3be9e040291eba53b0f262d3ae9c58f38b04244273", size = 116853, upload-time = "2025-07-22T19:36:32.403Z" }, +] + +[[package]] +name = "msal-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "msal" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/99/5d239b6156eddf761a636bded1118414d161bd6b7b37a9335549ed159396/msal_extensions-1.3.1.tar.gz", hash = "sha256:c5b0fd10f65ef62b5f1d62f4251d51cbcaf003fcedae8c91b040a488614be1a4", size = 23315, upload-time = "2025-03-14T23:51:03.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/75/bd9b7bb966668920f06b200e84454c8f3566b102183bc55c5473d96cb2b9/msal_extensions-1.3.1-py3-none-any.whl", hash = "sha256:96d3de4d034504e969ac5e85bae8106c8373b5c6568e4c8fa7af2eca9dbe6bca", size = 20583, upload-time = "2025-03-14T23:51:03.016Z" }, +] + +[[package]] +name = "multidict" +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/2c/5dad12e82fbdf7470f29bff2171484bf07cb3b16ada60a6589af8f376440/multidict-6.6.3.tar.gz", hash = "sha256:798a9eb12dab0a6c2e29c1de6f3468af5cb2da6053a20dfa3344907eed0937cc", size = 101006, upload-time = "2025-06-30T15:53:46.929Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/a0/6b57988ea102da0623ea814160ed78d45a2645e4bbb499c2896d12833a70/multidict-6.6.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:056bebbeda16b2e38642d75e9e5310c484b7c24e3841dc0fb943206a72ec89d6", size = 76514, upload-time = "2025-06-30T15:51:48.728Z" }, + { url = "https://files.pythonhosted.org/packages/07/7a/d1e92665b0850c6c0508f101f9cf0410c1afa24973e1115fe9c6a185ebf7/multidict-6.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e5f481cccb3c5c5e5de5d00b5141dc589c1047e60d07e85bbd7dea3d4580d63f", size = 45394, upload-time = "2025-06-30T15:51:49.986Z" }, + { url = "https://files.pythonhosted.org/packages/52/6f/dd104490e01be6ef8bf9573705d8572f8c2d2c561f06e3826b081d9e6591/multidict-6.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10bea2ee839a759ee368b5a6e47787f399b41e70cf0c20d90dfaf4158dfb4e55", size = 43590, upload-time = "2025-06-30T15:51:51.331Z" }, + { url = "https://files.pythonhosted.org/packages/44/fe/06e0e01b1b0611e6581b7fd5a85b43dacc08b6cea3034f902f383b0873e5/multidict-6.6.3-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:2334cfb0fa9549d6ce2c21af2bfbcd3ac4ec3646b1b1581c88e3e2b1779ec92b", size = 237292, upload-time = "2025-06-30T15:51:52.584Z" }, + { url = "https://files.pythonhosted.org/packages/ce/71/4f0e558fb77696b89c233c1ee2d92f3e1d5459070a0e89153c9e9e804186/multidict-6.6.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8fee016722550a2276ca2cb5bb624480e0ed2bd49125b2b73b7010b9090e888", size = 258385, upload-time = "2025-06-30T15:51:53.913Z" }, + { url = "https://files.pythonhosted.org/packages/e3/25/cca0e68228addad24903801ed1ab42e21307a1b4b6dd2cf63da5d3ae082a/multidict-6.6.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5511cb35f5c50a2db21047c875eb42f308c5583edf96bd8ebf7d770a9d68f6d", size = 242328, upload-time = "2025-06-30T15:51:55.672Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a3/46f2d420d86bbcb8fe660b26a10a219871a0fbf4d43cb846a4031533f3e0/multidict-6.6.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:712b348f7f449948e0a6c4564a21c7db965af900973a67db432d724619b3c680", size = 268057, upload-time = "2025-06-30T15:51:57.037Z" }, + { url = "https://files.pythonhosted.org/packages/9e/73/1c743542fe00794a2ec7466abd3f312ccb8fad8dff9f36d42e18fb1ec33e/multidict-6.6.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e4e15d2138ee2694e038e33b7c3da70e6b0ad8868b9f8094a72e1414aeda9c1a", size = 269341, upload-time = "2025-06-30T15:51:59.111Z" }, + { url = "https://files.pythonhosted.org/packages/a4/11/6ec9dcbe2264b92778eeb85407d1df18812248bf3506a5a1754bc035db0c/multidict-6.6.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8df25594989aebff8a130f7899fa03cbfcc5d2b5f4a461cf2518236fe6f15961", size = 256081, upload-time = "2025-06-30T15:52:00.533Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2b/631b1e2afeb5f1696846d747d36cda075bfdc0bc7245d6ba5c319278d6c4/multidict-6.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:159ca68bfd284a8860f8d8112cf0521113bffd9c17568579e4d13d1f1dc76b65", size = 253581, upload-time = "2025-06-30T15:52:02.43Z" }, + { url = "https://files.pythonhosted.org/packages/bf/0e/7e3b93f79efeb6111d3bf9a1a69e555ba1d07ad1c11bceb56b7310d0d7ee/multidict-6.6.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e098c17856a8c9ade81b4810888c5ad1914099657226283cab3062c0540b0643", size = 250750, upload-time = "2025-06-30T15:52:04.26Z" }, + { url = "https://files.pythonhosted.org/packages/ad/9e/086846c1d6601948e7de556ee464a2d4c85e33883e749f46b9547d7b0704/multidict-6.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:67c92ed673049dec52d7ed39f8cf9ebbadf5032c774058b4406d18c8f8fe7063", size = 251548, upload-time = "2025-06-30T15:52:06.002Z" }, + { url = "https://files.pythonhosted.org/packages/8c/7b/86ec260118e522f1a31550e87b23542294880c97cfbf6fb18cc67b044c66/multidict-6.6.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:bd0578596e3a835ef451784053cfd327d607fc39ea1a14812139339a18a0dbc3", size = 262718, upload-time = "2025-06-30T15:52:07.707Z" }, + { url = "https://files.pythonhosted.org/packages/8c/bd/22ce8f47abb0be04692c9fc4638508b8340987b18691aa7775d927b73f72/multidict-6.6.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:346055630a2df2115cd23ae271910b4cae40f4e336773550dca4889b12916e75", size = 259603, upload-time = "2025-06-30T15:52:09.58Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/91b7ac1691be95cd1f4a26e36a74b97cda6aa9820632d31aab4410f46ebd/multidict-6.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:555ff55a359302b79de97e0468e9ee80637b0de1fce77721639f7cd9440b3a10", size = 251351, upload-time = "2025-06-30T15:52:10.947Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5c/4d7adc739884f7a9fbe00d1eac8c034023ef8bad71f2ebe12823ca2e3649/multidict-6.6.3-cp312-cp312-win32.whl", hash = "sha256:73ab034fb8d58ff85c2bcbadc470efc3fafeea8affcf8722855fb94557f14cc5", size = 41860, upload-time = "2025-06-30T15:52:12.334Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a3/0fbc7afdf7cb1aa12a086b02959307848eb6bcc8f66fcb66c0cb57e2a2c1/multidict-6.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:04cbcce84f63b9af41bad04a54d4cc4e60e90c35b9e6ccb130be2d75b71f8c17", size = 45982, upload-time = "2025-06-30T15:52:13.6Z" }, + { url = "https://files.pythonhosted.org/packages/b8/95/8c825bd70ff9b02462dc18d1295dd08d3e9e4eb66856d292ffa62cfe1920/multidict-6.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:0f1130b896ecb52d2a1e615260f3ea2af55fa7dc3d7c3003ba0c3121a759b18b", size = 43210, upload-time = "2025-06-30T15:52:14.893Z" }, + { url = "https://files.pythonhosted.org/packages/52/1d/0bebcbbb4f000751fbd09957257903d6e002943fc668d841a4cf2fb7f872/multidict-6.6.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:540d3c06d48507357a7d57721e5094b4f7093399a0106c211f33540fdc374d55", size = 75843, upload-time = "2025-06-30T15:52:16.155Z" }, + { url = "https://files.pythonhosted.org/packages/07/8f/cbe241b0434cfe257f65c2b1bcf9e8d5fb52bc708c5061fb29b0fed22bdf/multidict-6.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9c19cea2a690f04247d43f366d03e4eb110a0dc4cd1bbeee4d445435428ed35b", size = 45053, upload-time = "2025-06-30T15:52:17.429Z" }, + { url = "https://files.pythonhosted.org/packages/32/d2/0b3b23f9dbad5b270b22a3ac3ea73ed0a50ef2d9a390447061178ed6bdb8/multidict-6.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7af039820cfd00effec86bda5d8debef711a3e86a1d3772e85bea0f243a4bd65", size = 43273, upload-time = "2025-06-30T15:52:19.346Z" }, + { url = "https://files.pythonhosted.org/packages/fd/fe/6eb68927e823999e3683bc49678eb20374ba9615097d085298fd5b386564/multidict-6.6.3-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:500b84f51654fdc3944e936f2922114349bf8fdcac77c3092b03449f0e5bc2b3", size = 237124, upload-time = "2025-06-30T15:52:20.773Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/320d8507e7726c460cb77117848b3834ea0d59e769f36fdae495f7669929/multidict-6.6.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3fc723ab8a5c5ed6c50418e9bfcd8e6dceba6c271cee6728a10a4ed8561520c", size = 256892, upload-time = "2025-06-30T15:52:22.242Z" }, + { url = "https://files.pythonhosted.org/packages/76/60/38ee422db515ac69834e60142a1a69111ac96026e76e8e9aa347fd2e4591/multidict-6.6.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:94c47ea3ade005b5976789baaed66d4de4480d0a0bf31cef6edaa41c1e7b56a6", size = 240547, upload-time = "2025-06-30T15:52:23.736Z" }, + { url = "https://files.pythonhosted.org/packages/27/fb/905224fde2dff042b030c27ad95a7ae744325cf54b890b443d30a789b80e/multidict-6.6.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dbc7cf464cc6d67e83e136c9f55726da3a30176f020a36ead246eceed87f1cd8", size = 266223, upload-time = "2025-06-30T15:52:25.185Z" }, + { url = "https://files.pythonhosted.org/packages/76/35/dc38ab361051beae08d1a53965e3e1a418752fc5be4d3fb983c5582d8784/multidict-6.6.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:900eb9f9da25ada070f8ee4a23f884e0ee66fe4e1a38c3af644256a508ad81ca", size = 267262, upload-time = "2025-06-30T15:52:26.969Z" }, + { url = "https://files.pythonhosted.org/packages/1f/a3/0a485b7f36e422421b17e2bbb5a81c1af10eac1d4476f2ff92927c730479/multidict-6.6.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c6df517cf177da5d47ab15407143a89cd1a23f8b335f3a28d57e8b0a3dbb884", size = 254345, upload-time = "2025-06-30T15:52:28.467Z" }, + { url = "https://files.pythonhosted.org/packages/b4/59/bcdd52c1dab7c0e0d75ff19cac751fbd5f850d1fc39172ce809a74aa9ea4/multidict-6.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4ef421045f13879e21c994b36e728d8e7d126c91a64b9185810ab51d474f27e7", size = 252248, upload-time = "2025-06-30T15:52:29.938Z" }, + { url = "https://files.pythonhosted.org/packages/bb/a4/2d96aaa6eae8067ce108d4acee6f45ced5728beda55c0f02ae1072c730d1/multidict-6.6.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c1e61bb4f80895c081790b6b09fa49e13566df8fbff817da3f85b3a8192e36b", size = 250115, upload-time = "2025-06-30T15:52:31.416Z" }, + { url = "https://files.pythonhosted.org/packages/25/d2/ed9f847fa5c7d0677d4f02ea2c163d5e48573de3f57bacf5670e43a5ffaa/multidict-6.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e5e8523bb12d7623cd8300dbd91b9e439a46a028cd078ca695eb66ba31adee3c", size = 249649, upload-time = "2025-06-30T15:52:32.996Z" }, + { url = "https://files.pythonhosted.org/packages/1f/af/9155850372563fc550803d3f25373308aa70f59b52cff25854086ecb4a79/multidict-6.6.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ef58340cc896219e4e653dade08fea5c55c6df41bcc68122e3be3e9d873d9a7b", size = 261203, upload-time = "2025-06-30T15:52:34.521Z" }, + { url = "https://files.pythonhosted.org/packages/36/2f/c6a728f699896252cf309769089568a33c6439626648843f78743660709d/multidict-6.6.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc9dc435ec8699e7b602b94fe0cd4703e69273a01cbc34409af29e7820f777f1", size = 258051, upload-time = "2025-06-30T15:52:35.999Z" }, + { url = "https://files.pythonhosted.org/packages/d0/60/689880776d6b18fa2b70f6cc74ff87dd6c6b9b47bd9cf74c16fecfaa6ad9/multidict-6.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9e864486ef4ab07db5e9cb997bad2b681514158d6954dd1958dfb163b83d53e6", size = 249601, upload-time = "2025-06-30T15:52:37.473Z" }, + { url = "https://files.pythonhosted.org/packages/75/5e/325b11f2222a549019cf2ef879c1f81f94a0d40ace3ef55cf529915ba6cc/multidict-6.6.3-cp313-cp313-win32.whl", hash = "sha256:5633a82fba8e841bc5c5c06b16e21529573cd654f67fd833650a215520a6210e", size = 41683, upload-time = "2025-06-30T15:52:38.927Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ad/cf46e73f5d6e3c775cabd2a05976547f3f18b39bee06260369a42501f053/multidict-6.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:e93089c1570a4ad54c3714a12c2cef549dc9d58e97bcded193d928649cab78e9", size = 45811, upload-time = "2025-06-30T15:52:40.207Z" }, + { url = "https://files.pythonhosted.org/packages/c5/c9/2e3fe950db28fb7c62e1a5f46e1e38759b072e2089209bc033c2798bb5ec/multidict-6.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:c60b401f192e79caec61f166da9c924e9f8bc65548d4246842df91651e83d600", size = 43056, upload-time = "2025-06-30T15:52:41.575Z" }, + { url = "https://files.pythonhosted.org/packages/3a/58/aaf8114cf34966e084a8cc9517771288adb53465188843d5a19862cb6dc3/multidict-6.6.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02fd8f32d403a6ff13864b0851f1f523d4c988051eea0471d4f1fd8010f11134", size = 82811, upload-time = "2025-06-30T15:52:43.281Z" }, + { url = "https://files.pythonhosted.org/packages/71/af/5402e7b58a1f5b987a07ad98f2501fdba2a4f4b4c30cf114e3ce8db64c87/multidict-6.6.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f3aa090106b1543f3f87b2041eef3c156c8da2aed90c63a2fbed62d875c49c37", size = 48304, upload-time = "2025-06-30T15:52:45.026Z" }, + { url = "https://files.pythonhosted.org/packages/39/65/ab3c8cafe21adb45b24a50266fd747147dec7847425bc2a0f6934b3ae9ce/multidict-6.6.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e924fb978615a5e33ff644cc42e6aa241effcf4f3322c09d4f8cebde95aff5f8", size = 46775, upload-time = "2025-06-30T15:52:46.459Z" }, + { url = "https://files.pythonhosted.org/packages/49/ba/9fcc1b332f67cc0c0c8079e263bfab6660f87fe4e28a35921771ff3eea0d/multidict-6.6.3-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:b9fe5a0e57c6dbd0e2ce81ca66272282c32cd11d31658ee9553849d91289e1c1", size = 229773, upload-time = "2025-06-30T15:52:47.88Z" }, + { url = "https://files.pythonhosted.org/packages/a4/14/0145a251f555f7c754ce2dcbcd012939bbd1f34f066fa5d28a50e722a054/multidict-6.6.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b24576f208793ebae00280c59927c3b7c2a3b1655e443a25f753c4611bc1c373", size = 250083, upload-time = "2025-06-30T15:52:49.366Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d4/d5c0bd2bbb173b586c249a151a26d2fb3ec7d53c96e42091c9fef4e1f10c/multidict-6.6.3-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:135631cb6c58eac37d7ac0df380294fecdc026b28837fa07c02e459c7fb9c54e", size = 228980, upload-time = "2025-06-30T15:52:50.903Z" }, + { url = "https://files.pythonhosted.org/packages/21/32/c9a2d8444a50ec48c4733ccc67254100c10e1c8ae8e40c7a2d2183b59b97/multidict-6.6.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:274d416b0df887aef98f19f21578653982cfb8a05b4e187d4a17103322eeaf8f", size = 257776, upload-time = "2025-06-30T15:52:52.764Z" }, + { url = "https://files.pythonhosted.org/packages/68/d0/14fa1699f4ef629eae08ad6201c6b476098f5efb051b296f4c26be7a9fdf/multidict-6.6.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e252017a817fad7ce05cafbe5711ed40faeb580e63b16755a3a24e66fa1d87c0", size = 256882, upload-time = "2025-06-30T15:52:54.596Z" }, + { url = "https://files.pythonhosted.org/packages/da/88/84a27570fbe303c65607d517a5f147cd2fc046c2d1da02b84b17b9bdc2aa/multidict-6.6.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4cc8d848cd4fe1cdee28c13ea79ab0ed37fc2e89dd77bac86a2e7959a8c3bc", size = 247816, upload-time = "2025-06-30T15:52:56.175Z" }, + { url = "https://files.pythonhosted.org/packages/1c/60/dca352a0c999ce96a5d8b8ee0b2b9f729dcad2e0b0c195f8286269a2074c/multidict-6.6.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9e236a7094b9c4c1b7585f6b9cca34b9d833cf079f7e4c49e6a4a6ec9bfdc68f", size = 245341, upload-time = "2025-06-30T15:52:57.752Z" }, + { url = "https://files.pythonhosted.org/packages/50/ef/433fa3ed06028f03946f3993223dada70fb700f763f70c00079533c34578/multidict-6.6.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e0cb0ab69915c55627c933f0b555a943d98ba71b4d1c57bc0d0a66e2567c7471", size = 235854, upload-time = "2025-06-30T15:52:59.74Z" }, + { url = "https://files.pythonhosted.org/packages/1b/1f/487612ab56fbe35715320905215a57fede20de7db40a261759690dc80471/multidict-6.6.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:81ef2f64593aba09c5212a3d0f8c906a0d38d710a011f2f42759704d4557d3f2", size = 243432, upload-time = "2025-06-30T15:53:01.602Z" }, + { url = "https://files.pythonhosted.org/packages/da/6f/ce8b79de16cd885c6f9052c96a3671373d00c59b3ee635ea93e6e81b8ccf/multidict-6.6.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:b9cbc60010de3562545fa198bfc6d3825df430ea96d2cc509c39bd71e2e7d648", size = 252731, upload-time = "2025-06-30T15:53:03.517Z" }, + { url = "https://files.pythonhosted.org/packages/bb/fe/a2514a6aba78e5abefa1624ca85ae18f542d95ac5cde2e3815a9fbf369aa/multidict-6.6.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:70d974eaaa37211390cd02ef93b7e938de564bbffa866f0b08d07e5e65da783d", size = 247086, upload-time = "2025-06-30T15:53:05.48Z" }, + { url = "https://files.pythonhosted.org/packages/8c/22/b788718d63bb3cce752d107a57c85fcd1a212c6c778628567c9713f9345a/multidict-6.6.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3713303e4a6663c6d01d648a68f2848701001f3390a030edaaf3fc949c90bf7c", size = 243338, upload-time = "2025-06-30T15:53:07.522Z" }, + { url = "https://files.pythonhosted.org/packages/22/d6/fdb3d0670819f2228f3f7d9af613d5e652c15d170c83e5f1c94fbc55a25b/multidict-6.6.3-cp313-cp313t-win32.whl", hash = "sha256:639ecc9fe7cd73f2495f62c213e964843826f44505a3e5d82805aa85cac6f89e", size = 47812, upload-time = "2025-06-30T15:53:09.263Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d6/a9d2c808f2c489ad199723197419207ecbfbc1776f6e155e1ecea9c883aa/multidict-6.6.3-cp313-cp313t-win_amd64.whl", hash = "sha256:9f97e181f344a0ef3881b573d31de8542cc0dbc559ec68c8f8b5ce2c2e91646d", size = 53011, upload-time = "2025-06-30T15:53:11.038Z" }, + { url = "https://files.pythonhosted.org/packages/f2/40/b68001cba8188dd267590a111f9661b6256debc327137667e832bf5d66e8/multidict-6.6.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ce8b7693da41a3c4fde5871c738a81490cea5496c671d74374c8ab889e1834fb", size = 45254, upload-time = "2025-06-30T15:53:12.421Z" }, + { url = "https://files.pythonhosted.org/packages/d8/30/9aec301e9772b098c1f5c0ca0279237c9766d94b97802e9888010c64b0ed/multidict-6.6.3-py3-none-any.whl", hash = "sha256:8db10f29c7541fc5da4defd8cd697e1ca429db743fa716325f236079b96f775a", size = 12313, upload-time = "2025-06-30T15:53:45.437Z" }, +] + +[[package]] +name = "narwhals" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/8f/51d14e402c4f9d281a2e153a6a805cad5460088027a999faf264b54e7641/narwhals-2.0.1.tar.gz", hash = "sha256:235e61ca807bc21110ca36a4d53888ecc22c42dcdf50a7c886e10dde3fd7f38c", size = 525541, upload-time = "2025-07-29T08:39:04.81Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/26/43caf834e47c63883a5eddc02893b7fdbe6a0a4508ff6dc401907f3cc085/narwhals-2.0.1-py3-none-any.whl", hash = "sha256:837457e36a2ba1710c881fb69e1f79ce44fb81728c92ac378f70892a53af8ddb", size = 385436, upload-time = "2025-07-29T08:39:03.163Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/7d/3fec4199c5ffb892bed55cff901e4f39a58c81df9c44c280499e92cad264/numpy-2.3.2.tar.gz", hash = "sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48", size = 20489306, upload-time = "2025-07-24T21:32:07.553Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/6d/745dd1c1c5c284d17725e5c802ca4d45cfc6803519d777f087b71c9f4069/numpy-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bc3186bea41fae9d8e90c2b4fb5f0a1f5a690682da79b92574d63f56b529080b", size = 20956420, upload-time = "2025-07-24T20:28:18.002Z" }, + { url = "https://files.pythonhosted.org/packages/bc/96/e7b533ea5740641dd62b07a790af5d9d8fec36000b8e2d0472bd7574105f/numpy-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f4f0215edb189048a3c03bd5b19345bdfa7b45a7a6f72ae5945d2a28272727f", size = 14184660, upload-time = "2025-07-24T20:28:39.522Z" }, + { url = "https://files.pythonhosted.org/packages/2b/53/102c6122db45a62aa20d1b18c9986f67e6b97e0d6fbc1ae13e3e4c84430c/numpy-2.3.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b1224a734cd509f70816455c3cffe13a4f599b1bf7130f913ba0e2c0b2006c0", size = 5113382, upload-time = "2025-07-24T20:28:48.544Z" }, + { url = "https://files.pythonhosted.org/packages/2b/21/376257efcbf63e624250717e82b4fae93d60178f09eb03ed766dbb48ec9c/numpy-2.3.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3dcf02866b977a38ba3ec10215220609ab9667378a9e2150615673f3ffd6c73b", size = 6647258, upload-time = "2025-07-24T20:28:59.104Z" }, + { url = "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370", size = 14281409, upload-time = "2025-07-24T20:40:30.298Z" }, + { url = "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73", size = 16641317, upload-time = "2025-07-24T20:40:56.625Z" }, + { url = "https://files.pythonhosted.org/packages/f6/a7/af813a7b4f9a42f498dde8a4c6fcbff8100eed00182cc91dbaf095645f38/numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc", size = 16056262, upload-time = "2025-07-24T20:41:20.797Z" }, + { url = "https://files.pythonhosted.org/packages/8b/5d/41c4ef8404caaa7f05ed1cfb06afe16a25895260eacbd29b4d84dff2920b/numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be", size = 18579342, upload-time = "2025-07-24T20:41:50.753Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4f/9950e44c5a11636f4a3af6e825ec23003475cc9a466edb7a759ed3ea63bd/numpy-2.3.2-cp312-cp312-win32.whl", hash = "sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036", size = 6320610, upload-time = "2025-07-24T20:42:01.551Z" }, + { url = "https://files.pythonhosted.org/packages/7c/2f/244643a5ce54a94f0a9a2ab578189c061e4a87c002e037b0829dd77293b6/numpy-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f", size = 12786292, upload-time = "2025-07-24T20:42:20.738Z" }, + { url = "https://files.pythonhosted.org/packages/54/cd/7b5f49d5d78db7badab22d8323c1b6ae458fbf86c4fdfa194ab3cd4eb39b/numpy-2.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07", size = 10194071, upload-time = "2025-07-24T20:42:36.657Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c0/c6bb172c916b00700ed3bf71cb56175fd1f7dbecebf8353545d0b5519f6c/numpy-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c8d9727f5316a256425892b043736d63e89ed15bbfe6556c5ff4d9d4448ff3b3", size = 20949074, upload-time = "2025-07-24T20:43:07.813Z" }, + { url = "https://files.pythonhosted.org/packages/20/4e/c116466d22acaf4573e58421c956c6076dc526e24a6be0903219775d862e/numpy-2.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:efc81393f25f14d11c9d161e46e6ee348637c0a1e8a54bf9dedc472a3fae993b", size = 14177311, upload-time = "2025-07-24T20:43:29.335Z" }, + { url = "https://files.pythonhosted.org/packages/78/45/d4698c182895af189c463fc91d70805d455a227261d950e4e0f1310c2550/numpy-2.3.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dd937f088a2df683cbb79dda9a772b62a3e5a8a7e76690612c2737f38c6ef1b6", size = 5106022, upload-time = "2025-07-24T20:43:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/9f/76/3e6880fef4420179309dba72a8c11f6166c431cf6dee54c577af8906f914/numpy-2.3.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:11e58218c0c46c80509186e460d79fbdc9ca1eb8d8aee39d8f2dc768eb781089", size = 6640135, upload-time = "2025-07-24T20:43:49.28Z" }, + { url = "https://files.pythonhosted.org/packages/34/fa/87ff7f25b3c4ce9085a62554460b7db686fef1e0207e8977795c7b7d7ba1/numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2", size = 14278147, upload-time = "2025-07-24T20:44:10.328Z" }, + { url = "https://files.pythonhosted.org/packages/1d/0f/571b2c7a3833ae419fe69ff7b479a78d313581785203cc70a8db90121b9a/numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f", size = 16635989, upload-time = "2025-07-24T20:44:34.88Z" }, + { url = "https://files.pythonhosted.org/packages/24/5a/84ae8dca9c9a4c592fe11340b36a86ffa9fd3e40513198daf8a97839345c/numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee", size = 16053052, upload-time = "2025-07-24T20:44:58.872Z" }, + { url = "https://files.pythonhosted.org/packages/57/7c/e5725d99a9133b9813fcf148d3f858df98511686e853169dbaf63aec6097/numpy-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7af9ed2aa9ec5950daf05bb11abc4076a108bd3c7db9aa7251d5f107079b6a6", size = 18577955, upload-time = "2025-07-24T20:45:26.714Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7c546fcf42145f29b71e4d6f429e96d8d68e5a7ba1830b2e68d7418f0bbd/numpy-2.3.2-cp313-cp313-win32.whl", hash = "sha256:906a30249315f9c8e17b085cc5f87d3f369b35fedd0051d4a84686967bdbbd0b", size = 6311843, upload-time = "2025-07-24T20:49:24.444Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6f/a428fd1cb7ed39b4280d057720fed5121b0d7754fd2a9768640160f5517b/numpy-2.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:c63d95dc9d67b676e9108fe0d2182987ccb0f11933c1e8959f42fa0da8d4fa56", size = 12782876, upload-time = "2025-07-24T20:49:43.227Z" }, + { url = "https://files.pythonhosted.org/packages/65/85/4ea455c9040a12595fb6c43f2c217257c7b52dd0ba332c6a6c1d28b289fe/numpy-2.3.2-cp313-cp313-win_arm64.whl", hash = "sha256:b05a89f2fb84d21235f93de47129dd4f11c16f64c87c33f5e284e6a3a54e43f2", size = 10192786, upload-time = "2025-07-24T20:49:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/80/23/8278f40282d10c3f258ec3ff1b103d4994bcad78b0cba9208317f6bb73da/numpy-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4e6ecfeddfa83b02318f4d84acf15fbdbf9ded18e46989a15a8b6995dfbf85ab", size = 21047395, upload-time = "2025-07-24T20:45:58.821Z" }, + { url = "https://files.pythonhosted.org/packages/1f/2d/624f2ce4a5df52628b4ccd16a4f9437b37c35f4f8a50d00e962aae6efd7a/numpy-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:508b0eada3eded10a3b55725b40806a4b855961040180028f52580c4729916a2", size = 14300374, upload-time = "2025-07-24T20:46:20.207Z" }, + { url = "https://files.pythonhosted.org/packages/f6/62/ff1e512cdbb829b80a6bd08318a58698867bca0ca2499d101b4af063ee97/numpy-2.3.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:754d6755d9a7588bdc6ac47dc4ee97867271b17cee39cb87aef079574366db0a", size = 5228864, upload-time = "2025-07-24T20:46:30.58Z" }, + { url = "https://files.pythonhosted.org/packages/7d/8e/74bc18078fff03192d4032cfa99d5a5ca937807136d6f5790ce07ca53515/numpy-2.3.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f66e7d2b2d7712410d3bc5684149040ef5f19856f20277cd17ea83e5006286", size = 6737533, upload-time = "2025-07-24T20:46:46.111Z" }, + { url = "https://files.pythonhosted.org/packages/19/ea/0731efe2c9073ccca5698ef6a8c3667c4cf4eea53fcdcd0b50140aba03bc/numpy-2.3.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de6ea4e5a65d5a90c7d286ddff2b87f3f4ad61faa3db8dabe936b34c2275b6f8", size = 14352007, upload-time = "2025-07-24T20:47:07.1Z" }, + { url = "https://files.pythonhosted.org/packages/cf/90/36be0865f16dfed20f4bc7f75235b963d5939707d4b591f086777412ff7b/numpy-2.3.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3ef07ec8cbc8fc9e369c8dcd52019510c12da4de81367d8b20bc692aa07573a", size = 16701914, upload-time = "2025-07-24T20:47:32.459Z" }, + { url = "https://files.pythonhosted.org/packages/94/30/06cd055e24cb6c38e5989a9e747042b4e723535758e6153f11afea88c01b/numpy-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:27c9f90e7481275c7800dc9c24b7cc40ace3fdb970ae4d21eaff983a32f70c91", size = 16132708, upload-time = "2025-07-24T20:47:58.129Z" }, + { url = "https://files.pythonhosted.org/packages/9a/14/ecede608ea73e58267fd7cb78f42341b3b37ba576e778a1a06baffbe585c/numpy-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:07b62978075b67eee4065b166d000d457c82a1efe726cce608b9db9dd66a73a5", size = 18651678, upload-time = "2025-07-24T20:48:25.402Z" }, + { url = "https://files.pythonhosted.org/packages/40/f3/2fe6066b8d07c3685509bc24d56386534c008b462a488b7f503ba82b8923/numpy-2.3.2-cp313-cp313t-win32.whl", hash = "sha256:c771cfac34a4f2c0de8e8c97312d07d64fd8f8ed45bc9f5726a7e947270152b5", size = 6441832, upload-time = "2025-07-24T20:48:37.181Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ba/0937d66d05204d8f28630c9c60bc3eda68824abde4cf756c4d6aad03b0c6/numpy-2.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:72dbebb2dcc8305c431b2836bcc66af967df91be793d63a24e3d9b741374c450", size = 12927049, upload-time = "2025-07-24T20:48:56.24Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ed/13542dd59c104d5e654dfa2ac282c199ba64846a74c2c4bcdbc3a0f75df1/numpy-2.3.2-cp313-cp313t-win_arm64.whl", hash = "sha256:72c6df2267e926a6d5286b0a6d556ebe49eae261062059317837fda12ddf0c1a", size = 10262935, upload-time = "2025-07-24T20:49:13.136Z" }, + { url = "https://files.pythonhosted.org/packages/c9/7c/7659048aaf498f7611b783e000c7268fcc4dcf0ce21cd10aad7b2e8f9591/numpy-2.3.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:448a66d052d0cf14ce9865d159bfc403282c9bc7bb2a31b03cc18b651eca8b1a", size = 20950906, upload-time = "2025-07-24T20:50:30.346Z" }, + { url = "https://files.pythonhosted.org/packages/80/db/984bea9d4ddf7112a04cfdfb22b1050af5757864cfffe8e09e44b7f11a10/numpy-2.3.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:546aaf78e81b4081b2eba1d105c3b34064783027a06b3ab20b6eba21fb64132b", size = 14185607, upload-time = "2025-07-24T20:50:51.923Z" }, + { url = "https://files.pythonhosted.org/packages/e4/76/b3d6f414f4eca568f469ac112a3b510938d892bc5a6c190cb883af080b77/numpy-2.3.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:87c930d52f45df092f7578889711a0768094debf73cfcde105e2d66954358125", size = 5114110, upload-time = "2025-07-24T20:51:01.041Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d2/6f5e6826abd6bca52392ed88fe44a4b52aacb60567ac3bc86c67834c3a56/numpy-2.3.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:8dc082ea901a62edb8f59713c6a7e28a85daddcb67454c839de57656478f5b19", size = 6642050, upload-time = "2025-07-24T20:51:11.64Z" }, + { url = "https://files.pythonhosted.org/packages/c4/43/f12b2ade99199e39c73ad182f103f9d9791f48d885c600c8e05927865baf/numpy-2.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af58de8745f7fa9ca1c0c7c943616c6fe28e75d0c81f5c295810e3c83b5be92f", size = 14296292, upload-time = "2025-07-24T20:51:33.488Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f9/77c07d94bf110a916b17210fac38680ed8734c236bfed9982fd8524a7b47/numpy-2.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed5527c4cf10f16c6d0b6bee1f89958bccb0ad2522c8cadc2efd318bcd545f5", size = 16638913, upload-time = "2025-07-24T20:51:58.517Z" }, + { url = "https://files.pythonhosted.org/packages/9b/d1/9d9f2c8ea399cc05cfff8a7437453bd4e7d894373a93cdc46361bbb49a7d/numpy-2.3.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:095737ed986e00393ec18ec0b21b47c22889ae4b0cd2d5e88342e08b01141f58", size = 16071180, upload-time = "2025-07-24T20:52:22.827Z" }, + { url = "https://files.pythonhosted.org/packages/4c/41/82e2c68aff2a0c9bf315e47d61951099fed65d8cb2c8d9dc388cb87e947e/numpy-2.3.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5e40e80299607f597e1a8a247ff8d71d79c5b52baa11cc1cce30aa92d2da6e0", size = 18576809, upload-time = "2025-07-24T20:52:51.015Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/4b4fd3efb0837ed252d0f583c5c35a75121038a8c4e065f2c259be06d2d8/numpy-2.3.2-cp314-cp314-win32.whl", hash = "sha256:7d6e390423cc1f76e1b8108c9b6889d20a7a1f59d9a60cac4a050fa734d6c1e2", size = 6366410, upload-time = "2025-07-24T20:56:44.949Z" }, + { url = "https://files.pythonhosted.org/packages/11/9e/b4c24a6b8467b61aced5c8dc7dcfce23621baa2e17f661edb2444a418040/numpy-2.3.2-cp314-cp314-win_amd64.whl", hash = "sha256:b9d0878b21e3918d76d2209c924ebb272340da1fb51abc00f986c258cd5e957b", size = 12918821, upload-time = "2025-07-24T20:57:06.479Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0f/0dc44007c70b1007c1cef86b06986a3812dd7106d8f946c09cfa75782556/numpy-2.3.2-cp314-cp314-win_arm64.whl", hash = "sha256:2738534837c6a1d0c39340a190177d7d66fdf432894f469728da901f8f6dc910", size = 10477303, upload-time = "2025-07-24T20:57:22.879Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3e/075752b79140b78ddfc9c0a1634d234cfdbc6f9bbbfa6b7504e445ad7d19/numpy-2.3.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:4d002ecf7c9b53240be3bb69d80f86ddbd34078bae04d87be81c1f58466f264e", size = 21047524, upload-time = "2025-07-24T20:53:22.086Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6d/60e8247564a72426570d0e0ea1151b95ce5bd2f1597bb878a18d32aec855/numpy-2.3.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:293b2192c6bcce487dbc6326de5853787f870aeb6c43f8f9c6496db5b1781e45", size = 14300519, upload-time = "2025-07-24T20:53:44.053Z" }, + { url = "https://files.pythonhosted.org/packages/4d/73/d8326c442cd428d47a067070c3ac6cc3b651a6e53613a1668342a12d4479/numpy-2.3.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0a4f2021a6da53a0d580d6ef5db29947025ae8b35b3250141805ea9a32bbe86b", size = 5228972, upload-time = "2025-07-24T20:53:53.81Z" }, + { url = "https://files.pythonhosted.org/packages/34/2e/e71b2d6dad075271e7079db776196829019b90ce3ece5c69639e4f6fdc44/numpy-2.3.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9c144440db4bf3bb6372d2c3e49834cc0ff7bb4c24975ab33e01199e645416f2", size = 6737439, upload-time = "2025-07-24T20:54:04.742Z" }, + { url = "https://files.pythonhosted.org/packages/15/b0/d004bcd56c2c5e0500ffc65385eb6d569ffd3363cb5e593ae742749b2daa/numpy-2.3.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f92d6c2a8535dc4fe4419562294ff957f83a16ebdec66df0805e473ffaad8bd0", size = 14352479, upload-time = "2025-07-24T20:54:25.819Z" }, + { url = "https://files.pythonhosted.org/packages/11/e3/285142fcff8721e0c99b51686426165059874c150ea9ab898e12a492e291/numpy-2.3.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cefc2219baa48e468e3db7e706305fcd0c095534a192a08f31e98d83a7d45fb0", size = 16702805, upload-time = "2025-07-24T20:54:50.814Z" }, + { url = "https://files.pythonhosted.org/packages/33/c3/33b56b0e47e604af2c7cd065edca892d180f5899599b76830652875249a3/numpy-2.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:76c3e9501ceb50b2ff3824c3589d5d1ab4ac857b0ee3f8f49629d0de55ecf7c2", size = 16133830, upload-time = "2025-07-24T20:55:17.306Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ae/7b1476a1f4d6a48bc669b8deb09939c56dd2a439db1ab03017844374fb67/numpy-2.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:122bf5ed9a0221b3419672493878ba4967121514b1d7d4656a7580cd11dddcbf", size = 18652665, upload-time = "2025-07-24T20:55:46.665Z" }, + { url = "https://files.pythonhosted.org/packages/14/ba/5b5c9978c4bb161034148ade2de9db44ec316fab89ce8c400db0e0c81f86/numpy-2.3.2-cp314-cp314t-win32.whl", hash = "sha256:6f1ae3dcb840edccc45af496f312528c15b1f79ac318169d094e85e4bb35fdf1", size = 6514777, upload-time = "2025-07-24T20:55:57.66Z" }, + { url = "https://files.pythonhosted.org/packages/eb/46/3dbaf0ae7c17cdc46b9f662c56da2054887b8d9e737c1476f335c83d33db/numpy-2.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:087ffc25890d89a43536f75c5fe8770922008758e8eeeef61733957041ed2f9b", size = 13111856, upload-time = "2025-07-24T20:56:17.318Z" }, + { url = "https://files.pythonhosted.org/packages/c1/9e/1652778bce745a67b5fe05adde60ed362d38eb17d919a540e813d30f6874/numpy-2.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631", size = 10544226, upload-time = "2025-07-24T20:56:34.509Z" }, +] + +[[package]] +name = "openai" +version = "1.99.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/45/38a87bd6949236db5ae3132f41d5861824702b149f86d2627d6900919103/openai-1.99.6.tar.gz", hash = "sha256:f48f4239b938ef187062f3d5199a05b69711d8b600b9a9b6a3853cd271799183", size = 505364, upload-time = "2025-08-09T15:20:54.438Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/dd/9aa956485c2856346b3181542fbb0aea4e5b457fa7a523944726746da8da/openai-1.99.6-py3-none-any.whl", hash = "sha256:e40d44b2989588c45ce13819598788b77b8fb80ba2f7ae95ce90d14e46f1bd26", size = 786296, upload-time = "2025-08-09T15:20:51.95Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.36.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/d2/c782c88b8afbf961d6972428821c302bd1e9e7bc361352172f0ca31296e2/opentelemetry_api-1.36.0.tar.gz", hash = "sha256:9a72572b9c416d004d492cbc6e61962c0501eaf945ece9b5a0f56597d8348aa0", size = 64780, upload-time = "2025-07-29T15:12:06.02Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/ee/6b08dde0a022c463b88f55ae81149584b125a42183407dc1045c486cc870/opentelemetry_api-1.36.0-py3-none-any.whl", hash = "sha256:02f20bcacf666e1333b6b1f04e647dc1d5111f86b8e510238fcc56d7762cda8c", size = 65564, upload-time = "2025-07-29T15:11:47.998Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/3b/fd9ff8ff64ae3900f11554d5cfc835fb73e501e043c420ad32ec574fe27f/orjson-3.11.1.tar.gz", hash = "sha256:48d82770a5fd88778063604c566f9c7c71820270c9cc9338d25147cbf34afd96", size = 5393373, upload-time = "2025-07-25T14:33:52.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/77/e55513826b712807caadb2b733eee192c1df105c6bbf0d965c253b72f124/orjson-3.11.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2b7c8be96db3a977367250c6367793a3c5851a6ca4263f92f0b48d00702f9910", size = 240955, upload-time = "2025-07-25T14:32:34.056Z" }, + { url = "https://files.pythonhosted.org/packages/c9/88/a78132dddcc9c3b80a9fa050b3516bb2c996a9d78ca6fb47c8da2a80a696/orjson-3.11.1-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:72e18088f567bd4a45db5e3196677d9ed1605e356e500c8e32dd6e303167a13d", size = 129294, upload-time = "2025-07-25T14:32:35.323Z" }, + { url = "https://files.pythonhosted.org/packages/09/02/6591e0dcb2af6bceea96cb1b5f4b48c1445492a3ef2891ac4aa306bb6f73/orjson-3.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d346e2ae1ce17888f7040b65a5a4a0c9734cb20ffbd228728661e020b4c8b3a5", size = 132310, upload-time = "2025-07-25T14:32:36.53Z" }, + { url = "https://files.pythonhosted.org/packages/e9/36/c1cfbc617bcfa4835db275d5e0fe9bbdbe561a4b53d3b2de16540ec29c50/orjson-3.11.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4bda5426ebb02ceb806a7d7ec9ba9ee5e0c93fca62375151a7b1c00bc634d06b", size = 128529, upload-time = "2025-07-25T14:32:37.817Z" }, + { url = "https://files.pythonhosted.org/packages/7c/bd/91a156c5df3aaf1d68b2ab5be06f1969955a8d3e328d7794f4338ac1d017/orjson-3.11.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10506cebe908542c4f024861102673db534fd2e03eb9b95b30d94438fa220abf", size = 130925, upload-time = "2025-07-25T14:32:39.03Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4c/a65cc24e9a5f87c9833a50161ab97b5edbec98bec99dfbba13827549debc/orjson-3.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45202ee3f5494644e064c41abd1320497fb92fd31fc73af708708af664ac3b56", size = 132432, upload-time = "2025-07-25T14:32:40.619Z" }, + { url = "https://files.pythonhosted.org/packages/2e/4d/3fc3e5d7115f4f7d01b481e29e5a79bcbcc45711a2723242787455424f40/orjson-3.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5adaf01b92e0402a9ac5c3ebe04effe2bbb115f0914a0a53d34ea239a746289", size = 135069, upload-time = "2025-07-25T14:32:41.84Z" }, + { url = "https://files.pythonhosted.org/packages/dc/c6/7585aa8522af896060dc0cd7c336ba6c574ae854416811ee6642c505cc95/orjson-3.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6162a1a757a1f1f4a94bc6ffac834a3602e04ad5db022dd8395a54ed9dd51c81", size = 131045, upload-time = "2025-07-25T14:32:43.085Z" }, + { url = "https://files.pythonhosted.org/packages/6a/4e/b8a0a943793d2708ebc39e743c943251e08ee0f3279c880aefd8e9cb0c70/orjson-3.11.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:78404206977c9f946613d3f916727c189d43193e708d760ea5d4b2087d6b0968", size = 130597, upload-time = "2025-07-25T14:32:44.336Z" }, + { url = "https://files.pythonhosted.org/packages/72/2b/7d30e2aed2f585d5d385fb45c71d9b16ba09be58c04e8767ae6edc6c9282/orjson-3.11.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:db48f8e81072e26df6cdb0e9fff808c28597c6ac20a13d595756cf9ba1fed48a", size = 404207, upload-time = "2025-07-25T14:32:45.612Z" }, + { url = "https://files.pythonhosted.org/packages/1b/7e/772369ec66fcbce79477f0891918309594cd00e39b67a68d4c445d2ab754/orjson-3.11.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0c1e394e67ced6bb16fea7054d99fbdd99a539cf4d446d40378d4c06e0a8548d", size = 146628, upload-time = "2025-07-25T14:32:46.981Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c8/62bdb59229d7e393ae309cef41e32cc1f0b567b21dfd0742da70efb8b40c/orjson-3.11.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e7a840752c93d4eecd1378e9bb465c3703e127b58f675cd5c620f361b6cf57a4", size = 135449, upload-time = "2025-07-25T14:32:48.727Z" }, + { url = "https://files.pythonhosted.org/packages/02/47/1c99aa60e19f781424eabeaacd9e999eafe5b59c81ead4273b773f0f3af1/orjson-3.11.1-cp312-cp312-win32.whl", hash = "sha256:4537b0e09f45d2b74cb69c7f39ca1e62c24c0488d6bf01cd24673c74cd9596bf", size = 136653, upload-time = "2025-07-25T14:32:50.622Z" }, + { url = "https://files.pythonhosted.org/packages/31/9a/132999929a2892ab07e916669accecc83e5bff17e11a1186b4c6f23231f0/orjson-3.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:dbee6b050062540ae404530cacec1bf25e56e8d87d8d9b610b935afeb6725cae", size = 131426, upload-time = "2025-07-25T14:32:51.883Z" }, + { url = "https://files.pythonhosted.org/packages/9c/77/d984ee5a1ca341090902e080b187721ba5d1573a8d9759e0c540975acfb2/orjson-3.11.1-cp312-cp312-win_arm64.whl", hash = "sha256:f55e557d4248322d87c4673e085c7634039ff04b47bfc823b87149ae12bef60d", size = 126635, upload-time = "2025-07-25T14:32:53.2Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e9/880ef869e6f66279ce3a381a32afa0f34e29a94250146911eee029e56efc/orjson-3.11.1-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53cfefe4af059e65aabe9683f76b9c88bf34b4341a77d329227c2424e0e59b0e", size = 240835, upload-time = "2025-07-25T14:32:54.507Z" }, + { url = "https://files.pythonhosted.org/packages/f0/1f/52039ef3d03eeea21763b46bc99ebe11d9de8510c72b7b5569433084a17e/orjson-3.11.1-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:93d5abed5a6f9e1b6f9b5bf6ed4423c11932b5447c2f7281d3b64e0f26c6d064", size = 129226, upload-time = "2025-07-25T14:32:55.908Z" }, + { url = "https://files.pythonhosted.org/packages/ee/da/59fdffc9465a760be2cd3764ef9cd5535eec8f095419f972fddb123b6d0e/orjson-3.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbf06642f3db2966df504944cdd0eb68ca2717f0353bb20b20acd78109374a6", size = 132261, upload-time = "2025-07-25T14:32:57.538Z" }, + { url = "https://files.pythonhosted.org/packages/bb/5c/8610911c7e969db7cf928c8baac4b2f1e68d314bc3057acf5ca64f758435/orjson-3.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dddf4e78747fa7f2188273f84562017a3c4f0824485b78372513c1681ea7a894", size = 128614, upload-time = "2025-07-25T14:32:58.808Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a1/a1db9d4310d014c90f3b7e9b72c6fb162cba82c5f46d0b345669eaebdd3a/orjson-3.11.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa3fe8653c9f57f0e16f008e43626485b6723b84b2f741f54d1258095b655912", size = 130968, upload-time = "2025-07-25T14:33:00.038Z" }, + { url = "https://files.pythonhosted.org/packages/56/ff/11acd1fd7c38ea7a1b5d6bf582ae3da05931bee64620995eb08fd63c77fe/orjson-3.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6334d2382aff975a61f6f4d1c3daf39368b887c7de08f7c16c58f485dcf7adb2", size = 132439, upload-time = "2025-07-25T14:33:01.354Z" }, + { url = "https://files.pythonhosted.org/packages/70/f9/bb564dd9450bf8725e034a8ad7f4ae9d4710a34caf63b85ce1c0c6d40af0/orjson-3.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3d0855b643f259ee0cb76fe3df4c04483354409a520a902b067c674842eb6b8", size = 135299, upload-time = "2025-07-25T14:33:03.079Z" }, + { url = "https://files.pythonhosted.org/packages/94/bb/c8eafe6051405e241dda3691db4d9132d3c3462d1d10a17f50837dd130b4/orjson-3.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0eacdfeefd0a79987926476eb16e0245546bedeb8febbbbcf4b653e79257a8e4", size = 131004, upload-time = "2025-07-25T14:33:04.416Z" }, + { url = "https://files.pythonhosted.org/packages/a2/40/bed8d7dcf1bd2df8813bf010a25f645863a2f75e8e0ebdb2b55784cf1a62/orjson-3.11.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0ed07faf9e4873518c60480325dcbc16d17c59a165532cccfb409b4cdbaeff24", size = 130583, upload-time = "2025-07-25T14:33:05.768Z" }, + { url = "https://files.pythonhosted.org/packages/57/e7/cfa2eb803ad52d74fbb5424a429b5be164e51d23f1d853e5e037173a5c48/orjson-3.11.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d6d308dd578ae3658f62bb9eba54801533225823cd3248c902be1ebc79b5e014", size = 404218, upload-time = "2025-07-25T14:33:07.117Z" }, + { url = "https://files.pythonhosted.org/packages/d5/21/bc703af5bc6e9c7e18dcf4404dcc4ec305ab9bb6c82d3aee5952c0c56abf/orjson-3.11.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c4aa13ca959ba6b15c0a98d3d204b850f9dc36c08c9ce422ffb024eb30d6e058", size = 146605, upload-time = "2025-07-25T14:33:08.55Z" }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d26a0150534c4965a06f556aa68bf3c3b82999d5d7b0facd3af7b390c4af/orjson-3.11.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:be3d0653322abc9b68e5bcdaee6cfd58fcbe9973740ab222b87f4d687232ab1f", size = 135434, upload-time = "2025-07-25T14:33:09.967Z" }, + { url = "https://files.pythonhosted.org/packages/89/b6/1cb28365f08cbcffc464f8512320c6eb6db6a653f03d66de47ea3c19385f/orjson-3.11.1-cp313-cp313-win32.whl", hash = "sha256:4dd34e7e2518de8d7834268846f8cab7204364f427c56fb2251e098da86f5092", size = 136596, upload-time = "2025-07-25T14:33:11.333Z" }, + { url = "https://files.pythonhosted.org/packages/f9/35/7870d0d3ed843652676d84d8a6038791113eacc85237b673b925802826b8/orjson-3.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:d6895d32032b6362540e6d0694b19130bb4f2ad04694002dce7d8af588ca5f77", size = 131319, upload-time = "2025-07-25T14:33:12.614Z" }, + { url = "https://files.pythonhosted.org/packages/b7/3e/5bcd50fd865eb664d4edfdaaaff51e333593ceb5695a22c0d0a0d2b187ba/orjson-3.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:bb7c36d5d3570fcbb01d24fa447a21a7fe5a41141fd88e78f7994053cc4e28f4", size = 126613, upload-time = "2025-07-25T14:33:13.927Z" }, + { url = "https://files.pythonhosted.org/packages/61/d8/0a5cd31ed100b4e569e143cb0cddefc21f0bcb8ce284f44bca0bb0e10f3d/orjson-3.11.1-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7b71ef394327b3d0b39f6ea7ade2ecda2731a56c6a7cbf0d6a7301203b92a89b", size = 240819, upload-time = "2025-07-25T14:33:15.223Z" }, + { url = "https://files.pythonhosted.org/packages/b9/95/7eb2c76c92192ceca16bc81845ff100bbb93f568b4b94d914b6a4da47d61/orjson-3.11.1-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:77c0fe28ed659b62273995244ae2aa430e432c71f86e4573ab16caa2f2e3ca5e", size = 129218, upload-time = "2025-07-25T14:33:16.637Z" }, + { url = "https://files.pythonhosted.org/packages/da/84/e6b67f301b18adbbc346882f456bea44daebbd032ba725dbd7b741e3a7f1/orjson-3.11.1-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:1495692f1f1ba2467df429343388a0ed259382835922e124c0cfdd56b3d1f727", size = 132238, upload-time = "2025-07-25T14:33:17.934Z" }, + { url = "https://files.pythonhosted.org/packages/84/78/a45a86e29d9b2f391f9d00b22da51bc4b46b86b788fd42df2c5fcf3e8005/orjson-3.11.1-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:08c6a762fca63ca4dc04f66c48ea5d2428db55839fec996890e1bfaf057b658c", size = 130998, upload-time = "2025-07-25T14:33:19.282Z" }, + { url = "https://files.pythonhosted.org/packages/ea/8f/6eb3ee6760d93b2ce996a8529164ee1f5bafbdf64b74c7314b68db622b32/orjson-3.11.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9e26794fe3976810b2c01fda29bd9ac7c91a3c1284b29cc9a383989f7b614037", size = 130559, upload-time = "2025-07-25T14:33:20.589Z" }, + { url = "https://files.pythonhosted.org/packages/1b/78/9572ae94bdba6813917c9387e7834224c011ea6b4530ade07d718fd31598/orjson-3.11.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4b4b4f8f0b1d3ef8dc73e55363a0ffe012a42f4e2f1a140bf559698dca39b3fa", size = 404231, upload-time = "2025-07-25T14:33:22.019Z" }, + { url = "https://files.pythonhosted.org/packages/1f/a3/68381ad0757e084927c5ee6cfdeab1c6c89405949ee493db557e60871c4c/orjson-3.11.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:848be553ea35aa89bfefbed2e27c8a41244c862956ab8ba00dc0b27e84fd58de", size = 146658, upload-time = "2025-07-25T14:33:23.675Z" }, + { url = "https://files.pythonhosted.org/packages/00/db/fac56acf77aab778296c3f541a3eec643266f28ecd71d6c0cba251e47655/orjson-3.11.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c964c29711a4b1df52f8d9966f015402a6cf87753a406c1c4405c407dd66fd45", size = 135443, upload-time = "2025-07-25T14:33:25.04Z" }, + { url = "https://files.pythonhosted.org/packages/76/b1/326fa4b87426197ead61c1eec2eeb3babc9eb33b480ac1f93894e40c8c08/orjson-3.11.1-cp314-cp314-win32.whl", hash = "sha256:33aada2e6b6bc9c540d396528b91e666cedb383740fee6e6a917f561b390ecb1", size = 136643, upload-time = "2025-07-25T14:33:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/0f/8e/2987ae2109f3bfd39680f8a187d1bc09ad7f8fb019dcdc719b08c7242ade/orjson-3.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:68e10fd804e44e36188b9952543e3fa22f5aa8394da1b5283ca2b423735c06e8", size = 131324, upload-time = "2025-07-25T14:33:27.896Z" }, + { url = "https://files.pythonhosted.org/packages/21/5f/253e08e6974752b124fbf3a4de3ad53baa766b0cb4a333d47706d307e396/orjson-3.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:f3cf6c07f8b32127d836be8e1c55d4f34843f7df346536da768e9f73f22078a1", size = 126605, upload-time = "2025-07-25T14:33:29.244Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/6f/75aa71f8a14267117adeeed5d21b204770189c0a0025acbdc03c337b28fc/pandas-2.3.1.tar.gz", hash = "sha256:0a95b9ac964fe83ce317827f80304d37388ea77616b1425f0ae41c9d2d0d7bb2", size = 4487493, upload-time = "2025-07-07T19:20:04.079Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/de/b8445e0f5d217a99fe0eeb2f4988070908979bec3587c0633e5428ab596c/pandas-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:689968e841136f9e542020698ee1c4fbe9caa2ed2213ae2388dc7b81721510d3", size = 11588172, upload-time = "2025-07-07T19:18:52.054Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e0/801cdb3564e65a5ac041ab99ea6f1d802a6c325bb6e58c79c06a3f1cd010/pandas-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:025e92411c16cbe5bb2a4abc99732a6b132f439b8aab23a59fa593eb00704232", size = 10717365, upload-time = "2025-07-07T19:18:54.785Z" }, + { url = "https://files.pythonhosted.org/packages/51/a5/c76a8311833c24ae61a376dbf360eb1b1c9247a5d9c1e8b356563b31b80c/pandas-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b7ff55f31c4fcb3e316e8f7fa194566b286d6ac430afec0d461163312c5841e", size = 11280411, upload-time = "2025-07-07T19:18:57.045Z" }, + { url = "https://files.pythonhosted.org/packages/da/01/e383018feba0a1ead6cf5fe8728e5d767fee02f06a3d800e82c489e5daaf/pandas-2.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7dcb79bf373a47d2a40cf7232928eb7540155abbc460925c2c96d2d30b006eb4", size = 11988013, upload-time = "2025-07-07T19:18:59.771Z" }, + { url = "https://files.pythonhosted.org/packages/5b/14/cec7760d7c9507f11c97d64f29022e12a6cc4fc03ac694535e89f88ad2ec/pandas-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:56a342b231e8862c96bdb6ab97170e203ce511f4d0429589c8ede1ee8ece48b8", size = 12767210, upload-time = "2025-07-07T19:19:02.944Z" }, + { url = "https://files.pythonhosted.org/packages/50/b9/6e2d2c6728ed29fb3d4d4d302504fb66f1a543e37eb2e43f352a86365cdf/pandas-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ca7ed14832bce68baef331f4d7f294411bed8efd032f8109d690df45e00c4679", size = 13440571, upload-time = "2025-07-07T19:19:06.82Z" }, + { url = "https://files.pythonhosted.org/packages/80/a5/3a92893e7399a691bad7664d977cb5e7c81cf666c81f89ea76ba2bff483d/pandas-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:ac942bfd0aca577bef61f2bc8da8147c4ef6879965ef883d8e8d5d2dc3e744b8", size = 10987601, upload-time = "2025-07-07T19:19:09.589Z" }, + { url = "https://files.pythonhosted.org/packages/32/ed/ff0a67a2c5505e1854e6715586ac6693dd860fbf52ef9f81edee200266e7/pandas-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9026bd4a80108fac2239294a15ef9003c4ee191a0f64b90f170b40cfb7cf2d22", size = 11531393, upload-time = "2025-07-07T19:19:12.245Z" }, + { url = "https://files.pythonhosted.org/packages/c7/db/d8f24a7cc9fb0972adab0cc80b6817e8bef888cfd0024eeb5a21c0bb5c4a/pandas-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6de8547d4fdb12421e2d047a2c446c623ff4c11f47fddb6b9169eb98ffba485a", size = 10668750, upload-time = "2025-07-07T19:19:14.612Z" }, + { url = "https://files.pythonhosted.org/packages/0f/b0/80f6ec783313f1e2356b28b4fd8d2148c378370045da918c73145e6aab50/pandas-2.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:782647ddc63c83133b2506912cc6b108140a38a37292102aaa19c81c83db2928", size = 11342004, upload-time = "2025-07-07T19:19:16.857Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e2/20a317688435470872885e7fc8f95109ae9683dec7c50be29b56911515a5/pandas-2.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ba6aff74075311fc88504b1db890187a3cd0f887a5b10f5525f8e2ef55bfdb9", size = 12050869, upload-time = "2025-07-07T19:19:19.265Z" }, + { url = "https://files.pythonhosted.org/packages/55/79/20d746b0a96c67203a5bee5fb4e00ac49c3e8009a39e1f78de264ecc5729/pandas-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e5635178b387bd2ba4ac040f82bc2ef6e6b500483975c4ebacd34bec945fda12", size = 12750218, upload-time = "2025-07-07T19:19:21.547Z" }, + { url = "https://files.pythonhosted.org/packages/7c/0f/145c8b41e48dbf03dd18fdd7f24f8ba95b8254a97a3379048378f33e7838/pandas-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f3bf5ec947526106399a9e1d26d40ee2b259c66422efdf4de63c848492d91bb", size = 13416763, upload-time = "2025-07-07T19:19:23.939Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c0/54415af59db5cdd86a3d3bf79863e8cc3fa9ed265f0745254061ac09d5f2/pandas-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:1c78cf43c8fde236342a1cb2c34bcff89564a7bfed7e474ed2fffa6aed03a956", size = 10987482, upload-time = "2025-07-07T19:19:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/48/64/2fd2e400073a1230e13b8cd604c9bc95d9e3b962e5d44088ead2e8f0cfec/pandas-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8dfc17328e8da77be3cf9f47509e5637ba8f137148ed0e9b5241e1baf526e20a", size = 12029159, upload-time = "2025-07-07T19:19:26.362Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0a/d84fd79b0293b7ef88c760d7dca69828d867c89b6d9bc52d6a27e4d87316/pandas-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ec6c851509364c59a5344458ab935e6451b31b818be467eb24b0fe89bd05b6b9", size = 11393287, upload-time = "2025-07-07T19:19:29.157Z" }, + { url = "https://files.pythonhosted.org/packages/50/ae/ff885d2b6e88f3c7520bb74ba319268b42f05d7e583b5dded9837da2723f/pandas-2.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:911580460fc4884d9b05254b38a6bfadddfcc6aaef856fb5859e7ca202e45275", size = 11309381, upload-time = "2025-07-07T19:19:31.436Z" }, + { url = "https://files.pythonhosted.org/packages/85/86/1fa345fc17caf5d7780d2699985c03dbe186c68fee00b526813939062bb0/pandas-2.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f4d6feeba91744872a600e6edbbd5b033005b431d5ae8379abee5bcfa479fab", size = 11883998, upload-time = "2025-07-07T19:19:34.267Z" }, + { url = "https://files.pythonhosted.org/packages/81/aa/e58541a49b5e6310d89474333e994ee57fea97c8aaa8fc7f00b873059bbf/pandas-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fe37e757f462d31a9cd7580236a82f353f5713a80e059a29753cf938c6775d96", size = 12704705, upload-time = "2025-07-07T19:19:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/d5/f9/07086f5b0f2a19872554abeea7658200824f5835c58a106fa8f2ae96a46c/pandas-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5db9637dbc24b631ff3707269ae4559bce4b7fd75c1c4d7e13f40edc42df4444", size = 13189044, upload-time = "2025-07-07T19:19:39.999Z" }, +] + +[[package]] +name = "pillow" +version = "11.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, + { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, + { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, + { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, + { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, + { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, + { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, + { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, + { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, + { url = "https://files.pythonhosted.org/packages/01/f4/91d5b3ffa718df2f53b0dc109877993e511f4fd055d7e9508682e8aba092/pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c", size = 5278474, upload-time = "2025-07-01T09:14:41.843Z" }, + { url = "https://files.pythonhosted.org/packages/f9/0e/37d7d3eca6c879fbd9dba21268427dffda1ab00d4eb05b32923d4fbe3b12/pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd", size = 4686038, upload-time = "2025-07-01T09:14:44.008Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, + { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, + { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, + { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841, upload-time = "2025-07-01T09:14:54.142Z" }, + { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450, upload-time = "2025-07-01T09:14:56.436Z" }, + { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055, upload-time = "2025-07-01T09:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/dd/80/a8a2ac21dda2e82480852978416cfacd439a4b490a501a288ecf4fe2532d/pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e", size = 5281110, upload-time = "2025-07-01T09:14:59.79Z" }, + { url = "https://files.pythonhosted.org/packages/44/d6/b79754ca790f315918732e18f82a8146d33bcd7f4494380457ea89eb883d/pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d", size = 4689547, upload-time = "2025-07-01T09:15:01.648Z" }, + { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, + { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, + { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, + { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, + { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546, upload-time = "2025-07-01T09:15:11.311Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102, upload-time = "2025-07-01T09:15:13.164Z" }, + { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803, upload-time = "2025-07-01T09:15:15.695Z" }, + { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520, upload-time = "2025-07-01T09:15:17.429Z" }, + { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116, upload-time = "2025-07-01T09:15:19.423Z" }, + { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, + { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699, upload-time = "2025-07-01T09:15:23.186Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789, upload-time = "2025-07-01T09:15:25.1Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386, upload-time = "2025-07-01T09:15:27.378Z" }, + { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911, upload-time = "2025-07-01T09:15:29.294Z" }, + { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383, upload-time = "2025-07-01T09:15:31.128Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385, upload-time = "2025-07-01T09:15:33.328Z" }, + { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129, upload-time = "2025-07-01T09:15:35.194Z" }, + { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580, upload-time = "2025-07-01T09:15:37.114Z" }, + { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860, upload-time = "2025-07-03T13:10:50.248Z" }, + { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694, upload-time = "2025-07-03T13:10:56.432Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888, upload-time = "2025-07-01T09:15:39.436Z" }, + { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330, upload-time = "2025-07-01T09:15:41.269Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089, upload-time = "2025-07-01T09:15:43.13Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206, upload-time = "2025-07-01T09:15:44.937Z" }, + { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370, upload-time = "2025-07-01T09:15:46.673Z" }, + { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500, upload-time = "2025-07-01T09:15:48.512Z" }, + { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, +] + +[[package]] +name = "propcache" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload-time = "2025-06-09T22:56:06.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload-time = "2025-06-09T22:54:30.551Z" }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload-time = "2025-06-09T22:54:32.296Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload-time = "2025-06-09T22:54:33.929Z" }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload-time = "2025-06-09T22:54:35.186Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload-time = "2025-06-09T22:54:36.708Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload-time = "2025-06-09T22:54:38.062Z" }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload-time = "2025-06-09T22:54:39.634Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload-time = "2025-06-09T22:54:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload-time = "2025-06-09T22:54:43.038Z" }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload-time = "2025-06-09T22:54:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload-time = "2025-06-09T22:54:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload-time = "2025-06-09T22:54:47.63Z" }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload-time = "2025-06-09T22:54:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload-time = "2025-06-09T22:54:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload-time = "2025-06-09T22:54:52.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload-time = "2025-06-09T22:54:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286, upload-time = "2025-06-09T22:54:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425, upload-time = "2025-06-09T22:54:55.642Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846, upload-time = "2025-06-09T22:54:57.246Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871, upload-time = "2025-06-09T22:54:58.975Z" }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720, upload-time = "2025-06-09T22:55:00.471Z" }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203, upload-time = "2025-06-09T22:55:01.834Z" }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365, upload-time = "2025-06-09T22:55:03.199Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016, upload-time = "2025-06-09T22:55:04.518Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596, upload-time = "2025-06-09T22:55:05.942Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977, upload-time = "2025-06-09T22:55:07.792Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220, upload-time = "2025-06-09T22:55:09.173Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642, upload-time = "2025-06-09T22:55:10.62Z" }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789, upload-time = "2025-06-09T22:55:12.029Z" }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880, upload-time = "2025-06-09T22:55:13.45Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220, upload-time = "2025-06-09T22:55:15.284Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678, upload-time = "2025-06-09T22:55:16.445Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560, upload-time = "2025-06-09T22:55:17.598Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676, upload-time = "2025-06-09T22:55:18.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701, upload-time = "2025-06-09T22:55:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934, upload-time = "2025-06-09T22:55:21.5Z" }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316, upload-time = "2025-06-09T22:55:22.918Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619, upload-time = "2025-06-09T22:55:24.651Z" }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896, upload-time = "2025-06-09T22:55:26.049Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111, upload-time = "2025-06-09T22:55:27.381Z" }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334, upload-time = "2025-06-09T22:55:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026, upload-time = "2025-06-09T22:55:30.184Z" }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724, upload-time = "2025-06-09T22:55:31.646Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868, upload-time = "2025-06-09T22:55:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322, upload-time = "2025-06-09T22:55:35.065Z" }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778, upload-time = "2025-06-09T22:55:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175, upload-time = "2025-06-09T22:55:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857, upload-time = "2025-06-09T22:55:39.687Z" }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload-time = "2025-06-09T22:56:04.484Z" }, +] + +[[package]] +name = "protobuf" +version = "6.31.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/f3/b9655a711b32c19720253f6f06326faf90580834e2e83f840472d752bc8b/protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a", size = 441797, upload-time = "2025-05-28T19:25:54.947Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/6f/6ab8e4bf962fd5570d3deaa2d5c38f0a363f57b4501047b5ebeb83ab1125/protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9", size = 423603, upload-time = "2025-05-28T19:25:41.198Z" }, + { url = "https://files.pythonhosted.org/packages/44/3a/b15c4347dd4bf3a1b0ee882f384623e2063bb5cf9fa9d57990a4f7df2fb6/protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447", size = 435283, upload-time = "2025-05-28T19:25:44.275Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c9/b9689a2a250264a84e66c46d8862ba788ee7a641cdca39bccf64f59284b7/protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402", size = 425604, upload-time = "2025-05-28T19:25:45.702Z" }, + { url = "https://files.pythonhosted.org/packages/76/a1/7a5a94032c83375e4fe7e7f56e3976ea6ac90c5e85fac8576409e25c39c3/protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39", size = 322115, upload-time = "2025-05-28T19:25:47.128Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b1/b59d405d64d31999244643d88c45c8241c58f17cc887e73bcb90602327f8/protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6", size = 321070, upload-time = "2025-05-28T19:25:50.036Z" }, + { url = "https://files.pythonhosted.org/packages/f7/af/ab3c51ab7507a7325e98ffe691d9495ee3d3aa5f589afad65ec920d39821/protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e", size = 168724, upload-time = "2025-05-28T19:25:53.926Z" }, +] + +[[package]] +name = "pyarrow" +version = "21.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ef/c2/ea068b8f00905c06329a3dfcd40d0fcc2b7d0f2e355bdb25b65e0a0e4cd4/pyarrow-21.0.0.tar.gz", hash = "sha256:5051f2dccf0e283ff56335760cbc8622cf52264d67e359d5569541ac11b6d5bc", size = 1133487, upload-time = "2025-07-18T00:57:31.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/d4/d4f817b21aacc30195cf6a46ba041dd1be827efa4a623cc8bf39a1c2a0c0/pyarrow-21.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3a302f0e0963db37e0a24a70c56cf91a4faa0bca51c23812279ca2e23481fccd", size = 31160305, upload-time = "2025-07-18T00:55:35.373Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9c/dcd38ce6e4b4d9a19e1d36914cb8e2b1da4e6003dd075474c4cfcdfe0601/pyarrow-21.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:b6b27cf01e243871390474a211a7922bfbe3bda21e39bc9160daf0da3fe48876", size = 32684264, upload-time = "2025-07-18T00:55:39.303Z" }, + { url = "https://files.pythonhosted.org/packages/4f/74/2a2d9f8d7a59b639523454bec12dba35ae3d0a07d8ab529dc0809f74b23c/pyarrow-21.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:e72a8ec6b868e258a2cd2672d91f2860ad532d590ce94cdf7d5e7ec674ccf03d", size = 41108099, upload-time = "2025-07-18T00:55:42.889Z" }, + { url = "https://files.pythonhosted.org/packages/ad/90/2660332eeb31303c13b653ea566a9918484b6e4d6b9d2d46879a33ab0622/pyarrow-21.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b7ae0bbdc8c6674259b25bef5d2a1d6af5d39d7200c819cf99e07f7dfef1c51e", size = 42829529, upload-time = "2025-07-18T00:55:47.069Z" }, + { url = "https://files.pythonhosted.org/packages/33/27/1a93a25c92717f6aa0fca06eb4700860577d016cd3ae51aad0e0488ac899/pyarrow-21.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:58c30a1729f82d201627c173d91bd431db88ea74dcaa3885855bc6203e433b82", size = 43367883, upload-time = "2025-07-18T00:55:53.069Z" }, + { url = "https://files.pythonhosted.org/packages/05/d9/4d09d919f35d599bc05c6950095e358c3e15148ead26292dfca1fb659b0c/pyarrow-21.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:072116f65604b822a7f22945a7a6e581cfa28e3454fdcc6939d4ff6090126623", size = 45133802, upload-time = "2025-07-18T00:55:57.714Z" }, + { url = "https://files.pythonhosted.org/packages/71/30/f3795b6e192c3ab881325ffe172e526499eb3780e306a15103a2764916a2/pyarrow-21.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:cf56ec8b0a5c8c9d7021d6fd754e688104f9ebebf1bf4449613c9531f5346a18", size = 26203175, upload-time = "2025-07-18T00:56:01.364Z" }, + { url = "https://files.pythonhosted.org/packages/16/ca/c7eaa8e62db8fb37ce942b1ea0c6d7abfe3786ca193957afa25e71b81b66/pyarrow-21.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e99310a4ebd4479bcd1964dff9e14af33746300cb014aa4a3781738ac63baf4a", size = 31154306, upload-time = "2025-07-18T00:56:04.42Z" }, + { url = "https://files.pythonhosted.org/packages/ce/e8/e87d9e3b2489302b3a1aea709aaca4b781c5252fcb812a17ab6275a9a484/pyarrow-21.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:d2fe8e7f3ce329a71b7ddd7498b3cfac0eeb200c2789bd840234f0dc271a8efe", size = 32680622, upload-time = "2025-07-18T00:56:07.505Z" }, + { url = "https://files.pythonhosted.org/packages/84/52/79095d73a742aa0aba370c7942b1b655f598069489ab387fe47261a849e1/pyarrow-21.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f522e5709379d72fb3da7785aa489ff0bb87448a9dc5a75f45763a795a089ebd", size = 41104094, upload-time = "2025-07-18T00:56:10.994Z" }, + { url = "https://files.pythonhosted.org/packages/89/4b/7782438b551dbb0468892a276b8c789b8bbdb25ea5c5eb27faadd753e037/pyarrow-21.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:69cbbdf0631396e9925e048cfa5bce4e8c3d3b41562bbd70c685a8eb53a91e61", size = 42825576, upload-time = "2025-07-18T00:56:15.569Z" }, + { url = "https://files.pythonhosted.org/packages/b3/62/0f29de6e0a1e33518dec92c65be0351d32d7ca351e51ec5f4f837a9aab91/pyarrow-21.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:731c7022587006b755d0bdb27626a1a3bb004bb56b11fb30d98b6c1b4718579d", size = 43368342, upload-time = "2025-07-18T00:56:19.531Z" }, + { url = "https://files.pythonhosted.org/packages/90/c7/0fa1f3f29cf75f339768cc698c8ad4ddd2481c1742e9741459911c9ac477/pyarrow-21.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dc56bc708f2d8ac71bd1dcb927e458c93cec10b98eb4120206a4091db7b67b99", size = 45131218, upload-time = "2025-07-18T00:56:23.347Z" }, + { url = "https://files.pythonhosted.org/packages/01/63/581f2076465e67b23bc5a37d4a2abff8362d389d29d8105832e82c9c811c/pyarrow-21.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:186aa00bca62139f75b7de8420f745f2af12941595bbbfa7ed3870ff63e25636", size = 26087551, upload-time = "2025-07-18T00:56:26.758Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ab/357d0d9648bb8241ee7348e564f2479d206ebe6e1c47ac5027c2e31ecd39/pyarrow-21.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:a7a102574faa3f421141a64c10216e078df467ab9576684d5cd696952546e2da", size = 31290064, upload-time = "2025-07-18T00:56:30.214Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8a/5685d62a990e4cac2043fc76b4661bf38d06efed55cf45a334b455bd2759/pyarrow-21.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:1e005378c4a2c6db3ada3ad4c217b381f6c886f0a80d6a316fe586b90f77efd7", size = 32727837, upload-time = "2025-07-18T00:56:33.935Z" }, + { url = "https://files.pythonhosted.org/packages/fc/de/c0828ee09525c2bafefd3e736a248ebe764d07d0fd762d4f0929dbc516c9/pyarrow-21.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:65f8e85f79031449ec8706b74504a316805217b35b6099155dd7e227eef0d4b6", size = 41014158, upload-time = "2025-07-18T00:56:37.528Z" }, + { url = "https://files.pythonhosted.org/packages/6e/26/a2865c420c50b7a3748320b614f3484bfcde8347b2639b2b903b21ce6a72/pyarrow-21.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:3a81486adc665c7eb1a2bde0224cfca6ceaba344a82a971ef059678417880eb8", size = 42667885, upload-time = "2025-07-18T00:56:41.483Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f9/4ee798dc902533159250fb4321267730bc0a107d8c6889e07c3add4fe3a5/pyarrow-21.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fc0d2f88b81dcf3ccf9a6ae17f89183762c8a94a5bdcfa09e05cfe413acf0503", size = 43276625, upload-time = "2025-07-18T00:56:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/5a/da/e02544d6997037a4b0d22d8e5f66bc9315c3671371a8b18c79ade1cefe14/pyarrow-21.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6299449adf89df38537837487a4f8d3bd91ec94354fdd2a7d30bc11c48ef6e79", size = 44951890, upload-time = "2025-07-18T00:56:52.568Z" }, + { url = "https://files.pythonhosted.org/packages/e5/4e/519c1bc1876625fe6b71e9a28287c43ec2f20f73c658b9ae1d485c0c206e/pyarrow-21.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10", size = 26371006, upload-time = "2025-07-18T00:56:56.379Z" }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload-time = "2024-03-30T13:22:22.564Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" }, +] + +[[package]] +name = "pydantic" +version = "2.11.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782, upload-time = "2025-06-14T08:33:14.905Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload-time = "2025-04-23T18:33:52.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload-time = "2025-04-23T18:31:25.863Z" }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload-time = "2025-04-23T18:31:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload-time = "2025-04-23T18:31:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload-time = "2025-04-23T18:31:31.025Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload-time = "2025-04-23T18:31:32.514Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload-time = "2025-04-23T18:31:33.958Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload-time = "2025-04-23T18:31:39.095Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload-time = "2025-04-23T18:31:41.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload-time = "2025-04-23T18:31:42.757Z" }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload-time = "2025-04-23T18:31:44.304Z" }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload-time = "2025-04-23T18:31:45.891Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload-time = "2025-04-23T18:31:47.819Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload-time = "2025-04-23T18:31:49.635Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload-time = "2025-04-23T18:31:51.609Z" }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload-time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload-time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload-time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload-time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload-time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload-time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload-time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload-time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload-time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload-time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload-time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload-time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload-time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload-time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload-time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload-time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload-time = "2025-04-23T18:32:25.088Z" }, +] + +[[package]] +name = "pydeck" +version = "0.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/ca/40e14e196864a0f61a92abb14d09b3d3da98f94ccb03b49cf51688140dab/pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605", size = 3832240, upload-time = "2024-05-10T15:36:21.153Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038", size = 6900403, upload-time = "2024-05-10T15:36:17.36Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "regex" +version = "2025.7.34" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/de/e13fa6dc61d78b30ba47481f99933a3b49a57779d625c392d8036770a60d/regex-2025.7.34.tar.gz", hash = "sha256:9ead9765217afd04a86822dfcd4ed2747dfe426e887da413b15ff0ac2457e21a", size = 400714, upload-time = "2025-07-31T00:21:16.262Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/f0/31d62596c75a33f979317658e8d261574785c6cd8672c06741ce2e2e2070/regex-2025.7.34-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7f7211a746aced993bef487de69307a38c5ddd79257d7be83f7b202cb59ddb50", size = 485492, upload-time = "2025-07-31T00:19:35.57Z" }, + { url = "https://files.pythonhosted.org/packages/d8/16/b818d223f1c9758c3434be89aa1a01aae798e0e0df36c1f143d1963dd1ee/regex-2025.7.34-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fb31080f2bd0681484b275461b202b5ad182f52c9ec606052020fe13eb13a72f", size = 290000, upload-time = "2025-07-31T00:19:37.175Z" }, + { url = "https://files.pythonhosted.org/packages/cd/70/69506d53397b4bd6954061bae75677ad34deb7f6ca3ba199660d6f728ff5/regex-2025.7.34-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0200a5150c4cf61e407038f4b4d5cdad13e86345dac29ff9dab3d75d905cf130", size = 286072, upload-time = "2025-07-31T00:19:38.612Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/536a216d5f66084fb577bb0543b5cb7de3272eb70a157f0c3a542f1c2551/regex-2025.7.34-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:739a74970e736df0773788377969c9fea3876c2fc13d0563f98e5503e5185f46", size = 797341, upload-time = "2025-07-31T00:19:40.119Z" }, + { url = "https://files.pythonhosted.org/packages/26/af/733f8168449e56e8f404bb807ea7189f59507cbea1b67a7bbcd92f8bf844/regex-2025.7.34-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4fef81b2f7ea6a2029161ed6dea9ae13834c28eb5a95b8771828194a026621e4", size = 862556, upload-time = "2025-07-31T00:19:41.556Z" }, + { url = "https://files.pythonhosted.org/packages/19/dd/59c464d58c06c4f7d87de4ab1f590e430821345a40c5d345d449a636d15f/regex-2025.7.34-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ea74cf81fe61a7e9d77989050d0089a927ab758c29dac4e8e1b6c06fccf3ebf0", size = 910762, upload-time = "2025-07-31T00:19:43Z" }, + { url = "https://files.pythonhosted.org/packages/37/a8/b05ccf33ceca0815a1e253693b2c86544932ebcc0049c16b0fbdf18b688b/regex-2025.7.34-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4636a7f3b65a5f340ed9ddf53585c42e3ff37101d383ed321bfe5660481744b", size = 801892, upload-time = "2025-07-31T00:19:44.645Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9a/b993cb2e634cc22810afd1652dba0cae156c40d4864285ff486c73cd1996/regex-2025.7.34-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cef962d7834437fe8d3da6f9bfc6f93f20f218266dcefec0560ed7765f5fe01", size = 786551, upload-time = "2025-07-31T00:19:46.127Z" }, + { url = "https://files.pythonhosted.org/packages/2d/79/7849d67910a0de4e26834b5bb816e028e35473f3d7ae563552ea04f58ca2/regex-2025.7.34-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:cbe1698e5b80298dbce8df4d8d1182279fbdaf1044e864cbc9d53c20e4a2be77", size = 856457, upload-time = "2025-07-31T00:19:47.562Z" }, + { url = "https://files.pythonhosted.org/packages/91/c6/de516bc082524b27e45cb4f54e28bd800c01efb26d15646a65b87b13a91e/regex-2025.7.34-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:32b9f9bcf0f605eb094b08e8da72e44badabb63dde6b83bd530580b488d1c6da", size = 848902, upload-time = "2025-07-31T00:19:49.312Z" }, + { url = "https://files.pythonhosted.org/packages/7d/22/519ff8ba15f732db099b126f039586bd372da6cd4efb810d5d66a5daeda1/regex-2025.7.34-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:524c868ba527eab4e8744a9287809579f54ae8c62fbf07d62aacd89f6026b282", size = 788038, upload-time = "2025-07-31T00:19:50.794Z" }, + { url = "https://files.pythonhosted.org/packages/3f/7d/aabb467d8f57d8149895d133c88eb809a1a6a0fe262c1d508eb9dfabb6f9/regex-2025.7.34-cp312-cp312-win32.whl", hash = "sha256:d600e58ee6d036081c89696d2bdd55d507498a7180df2e19945c6642fac59588", size = 264417, upload-time = "2025-07-31T00:19:52.292Z" }, + { url = "https://files.pythonhosted.org/packages/3b/39/bd922b55a4fc5ad5c13753274e5b536f5b06ec8eb9747675668491c7ab7a/regex-2025.7.34-cp312-cp312-win_amd64.whl", hash = "sha256:9a9ab52a466a9b4b91564437b36417b76033e8778e5af8f36be835d8cb370d62", size = 275387, upload-time = "2025-07-31T00:19:53.593Z" }, + { url = "https://files.pythonhosted.org/packages/f7/3c/c61d2fdcecb754a40475a3d1ef9a000911d3e3fc75c096acf44b0dfb786a/regex-2025.7.34-cp312-cp312-win_arm64.whl", hash = "sha256:c83aec91af9c6fbf7c743274fd952272403ad9a9db05fe9bfc9df8d12b45f176", size = 268482, upload-time = "2025-07-31T00:19:55.183Z" }, + { url = "https://files.pythonhosted.org/packages/15/16/b709b2119975035169a25aa8e4940ca177b1a2e25e14f8d996d09130368e/regex-2025.7.34-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c3c9740a77aeef3f5e3aaab92403946a8d34437db930a0280e7e81ddcada61f5", size = 485334, upload-time = "2025-07-31T00:19:56.58Z" }, + { url = "https://files.pythonhosted.org/packages/94/a6/c09136046be0595f0331bc58a0e5f89c2d324cf734e0b0ec53cf4b12a636/regex-2025.7.34-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:69ed3bc611540f2ea70a4080f853741ec698be556b1df404599f8724690edbcd", size = 289942, upload-time = "2025-07-31T00:19:57.943Z" }, + { url = "https://files.pythonhosted.org/packages/36/91/08fc0fd0f40bdfb0e0df4134ee37cfb16e66a1044ac56d36911fd01c69d2/regex-2025.7.34-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d03c6f9dcd562c56527c42b8530aad93193e0b3254a588be1f2ed378cdfdea1b", size = 285991, upload-time = "2025-07-31T00:19:59.837Z" }, + { url = "https://files.pythonhosted.org/packages/be/2f/99dc8f6f756606f0c214d14c7b6c17270b6bbe26d5c1f05cde9dbb1c551f/regex-2025.7.34-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6164b1d99dee1dfad33f301f174d8139d4368a9fb50bf0a3603b2eaf579963ad", size = 797415, upload-time = "2025-07-31T00:20:01.668Z" }, + { url = "https://files.pythonhosted.org/packages/62/cf/2fcdca1110495458ba4e95c52ce73b361cf1cafd8a53b5c31542cde9a15b/regex-2025.7.34-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1e4f4f62599b8142362f164ce776f19d79bdd21273e86920a7b604a4275b4f59", size = 862487, upload-time = "2025-07-31T00:20:03.142Z" }, + { url = "https://files.pythonhosted.org/packages/90/38/899105dd27fed394e3fae45607c1983e138273ec167e47882fc401f112b9/regex-2025.7.34-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:72a26dcc6a59c057b292f39d41465d8233a10fd69121fa24f8f43ec6294e5415", size = 910717, upload-time = "2025-07-31T00:20:04.727Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f6/4716198dbd0bcc9c45625ac4c81a435d1c4d8ad662e8576dac06bab35b17/regex-2025.7.34-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5273fddf7a3e602695c92716c420c377599ed3c853ea669c1fe26218867002f", size = 801943, upload-time = "2025-07-31T00:20:07.1Z" }, + { url = "https://files.pythonhosted.org/packages/40/5d/cff8896d27e4e3dd11dd72ac78797c7987eb50fe4debc2c0f2f1682eb06d/regex-2025.7.34-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c1844be23cd40135b3a5a4dd298e1e0c0cb36757364dd6cdc6025770363e06c1", size = 786664, upload-time = "2025-07-31T00:20:08.818Z" }, + { url = "https://files.pythonhosted.org/packages/10/29/758bf83cf7b4c34f07ac3423ea03cee3eb3176941641e4ccc05620f6c0b8/regex-2025.7.34-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dde35e2afbbe2272f8abee3b9fe6772d9b5a07d82607b5788e8508974059925c", size = 856457, upload-time = "2025-07-31T00:20:10.328Z" }, + { url = "https://files.pythonhosted.org/packages/d7/30/c19d212b619963c5b460bfed0ea69a092c6a43cba52a973d46c27b3e2975/regex-2025.7.34-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f6e8e7af516a7549412ce57613e859c3be27d55341a894aacaa11703a4c31a", size = 849008, upload-time = "2025-07-31T00:20:11.823Z" }, + { url = "https://files.pythonhosted.org/packages/9e/b8/3c35da3b12c87e3cc00010ef6c3a4ae787cff0bc381aa3d251def219969a/regex-2025.7.34-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:469142fb94a869beb25b5f18ea87646d21def10fbacb0bcb749224f3509476f0", size = 788101, upload-time = "2025-07-31T00:20:13.729Z" }, + { url = "https://files.pythonhosted.org/packages/47/80/2f46677c0b3c2b723b2c358d19f9346e714113865da0f5f736ca1a883bde/regex-2025.7.34-cp313-cp313-win32.whl", hash = "sha256:da7507d083ee33ccea1310447410c27ca11fb9ef18c95899ca57ff60a7e4d8f1", size = 264401, upload-time = "2025-07-31T00:20:15.233Z" }, + { url = "https://files.pythonhosted.org/packages/be/fa/917d64dd074682606a003cba33585c28138c77d848ef72fc77cbb1183849/regex-2025.7.34-cp313-cp313-win_amd64.whl", hash = "sha256:9d644de5520441e5f7e2db63aec2748948cc39ed4d7a87fd5db578ea4043d997", size = 275368, upload-time = "2025-07-31T00:20:16.711Z" }, + { url = "https://files.pythonhosted.org/packages/65/cd/f94383666704170a2154a5df7b16be28f0c27a266bffcd843e58bc84120f/regex-2025.7.34-cp313-cp313-win_arm64.whl", hash = "sha256:7bf1c5503a9f2cbd2f52d7e260acb3131b07b6273c470abb78568174fe6bde3f", size = 268482, upload-time = "2025-07-31T00:20:18.189Z" }, + { url = "https://files.pythonhosted.org/packages/ac/23/6376f3a23cf2f3c00514b1cdd8c990afb4dfbac3cb4a68b633c6b7e2e307/regex-2025.7.34-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:8283afe7042d8270cecf27cca558873168e771183d4d593e3c5fe5f12402212a", size = 485385, upload-time = "2025-07-31T00:20:19.692Z" }, + { url = "https://files.pythonhosted.org/packages/73/5b/6d4d3a0b4d312adbfd6d5694c8dddcf1396708976dd87e4d00af439d962b/regex-2025.7.34-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6c053f9647e3421dd2f5dff8172eb7b4eec129df9d1d2f7133a4386319b47435", size = 289788, upload-time = "2025-07-31T00:20:21.941Z" }, + { url = "https://files.pythonhosted.org/packages/92/71/5862ac9913746e5054d01cb9fb8125b3d0802c0706ef547cae1e7f4428fa/regex-2025.7.34-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a16dd56bbcb7d10e62861c3cd000290ddff28ea142ffb5eb3470f183628011ac", size = 286136, upload-time = "2025-07-31T00:20:26.146Z" }, + { url = "https://files.pythonhosted.org/packages/27/df/5b505dc447eb71278eba10d5ec940769ca89c1af70f0468bfbcb98035dc2/regex-2025.7.34-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69c593ff5a24c0d5c1112b0df9b09eae42b33c014bdca7022d6523b210b69f72", size = 797753, upload-time = "2025-07-31T00:20:27.919Z" }, + { url = "https://files.pythonhosted.org/packages/86/38/3e3dc953d13998fa047e9a2414b556201dbd7147034fbac129392363253b/regex-2025.7.34-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98d0ce170fcde1a03b5df19c5650db22ab58af375aaa6ff07978a85c9f250f0e", size = 863263, upload-time = "2025-07-31T00:20:29.803Z" }, + { url = "https://files.pythonhosted.org/packages/68/e5/3ff66b29dde12f5b874dda2d9dec7245c2051f2528d8c2a797901497f140/regex-2025.7.34-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d72765a4bff8c43711d5b0f5b452991a9947853dfa471972169b3cc0ba1d0751", size = 910103, upload-time = "2025-07-31T00:20:31.313Z" }, + { url = "https://files.pythonhosted.org/packages/9e/fe/14176f2182125977fba3711adea73f472a11f3f9288c1317c59cd16ad5e6/regex-2025.7.34-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4494f8fd95a77eb434039ad8460e64d57baa0434f1395b7da44015bef650d0e4", size = 801709, upload-time = "2025-07-31T00:20:33.323Z" }, + { url = "https://files.pythonhosted.org/packages/5a/0d/80d4e66ed24f1ba876a9e8e31b709f9fd22d5c266bf5f3ab3c1afe683d7d/regex-2025.7.34-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4f42b522259c66e918a0121a12429b2abcf696c6f967fa37bdc7b72e61469f98", size = 786726, upload-time = "2025-07-31T00:20:35.252Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/c3ebb30e04a56c046f5c85179dc173818551037daae2c0c940c7b19152cb/regex-2025.7.34-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:aaef1f056d96a0a5d53ad47d019d5b4c66fe4be2da87016e0d43b7242599ffc7", size = 857306, upload-time = "2025-07-31T00:20:37.12Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b2/a4dc5d8b14f90924f27f0ac4c4c4f5e195b723be98adecc884f6716614b6/regex-2025.7.34-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:656433e5b7dccc9bc0da6312da8eb897b81f5e560321ec413500e5367fcd5d47", size = 848494, upload-time = "2025-07-31T00:20:38.818Z" }, + { url = "https://files.pythonhosted.org/packages/0d/21/9ac6e07a4c5e8646a90b56b61f7e9dac11ae0747c857f91d3d2bc7c241d9/regex-2025.7.34-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e91eb2c62c39705e17b4d42d4b86c4e86c884c0d15d9c5a47d0835f8387add8e", size = 787850, upload-time = "2025-07-31T00:20:40.478Z" }, + { url = "https://files.pythonhosted.org/packages/be/6c/d51204e28e7bc54f9a03bb799b04730d7e54ff2718862b8d4e09e7110a6a/regex-2025.7.34-cp314-cp314-win32.whl", hash = "sha256:f978ddfb6216028c8f1d6b0f7ef779949498b64117fc35a939022f67f810bdcb", size = 269730, upload-time = "2025-07-31T00:20:42.253Z" }, + { url = "https://files.pythonhosted.org/packages/74/52/a7e92d02fa1fdef59d113098cb9f02c5d03289a0e9f9e5d4d6acccd10677/regex-2025.7.34-cp314-cp314-win_amd64.whl", hash = "sha256:4b7dc33b9b48fb37ead12ffc7bdb846ac72f99a80373c4da48f64b373a7abeae", size = 278640, upload-time = "2025-07-31T00:20:44.42Z" }, + { url = "https://files.pythonhosted.org/packages/d1/78/a815529b559b1771080faa90c3ab401730661f99d495ab0071649f139ebd/regex-2025.7.34-cp314-cp314-win_arm64.whl", hash = "sha256:4b8c4d39f451e64809912c82392933d80fe2e4a87eeef8859fcc5380d0173c64", size = 271757, upload-time = "2025-07-31T00:20:46.355Z" }, +] + +[[package]] +name = "requests" +version = "2.32.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.27.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/d9/991a0dee12d9fc53ed027e26a26a64b151d77252ac477e22666b9688bc16/rpds_py-0.27.0.tar.gz", hash = "sha256:8b23cf252f180cda89220b378d917180f29d313cd6a07b2431c0d3b776aae86f", size = 27420, upload-time = "2025-08-07T08:26:39.624Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/17/e67309ca1ac993fa1888a0d9b2f5ccc1f67196ace32e76c9f8e1dbbbd50c/rpds_py-0.27.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:19c990fdf5acecbf0623e906ae2e09ce1c58947197f9bced6bbd7482662231c4", size = 362611, upload-time = "2025-08-07T08:23:44.773Z" }, + { url = "https://files.pythonhosted.org/packages/93/2e/28c2fb84aa7aa5d75933d1862d0f7de6198ea22dfd9a0cca06e8a4e7509e/rpds_py-0.27.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6c27a7054b5224710fcfb1a626ec3ff4f28bcb89b899148c72873b18210e446b", size = 347680, upload-time = "2025-08-07T08:23:46.014Z" }, + { url = "https://files.pythonhosted.org/packages/44/3e/9834b4c8f4f5fe936b479e623832468aa4bd6beb8d014fecaee9eac6cdb1/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09965b314091829b378b60607022048953e25f0b396c2b70e7c4c81bcecf932e", size = 384600, upload-time = "2025-08-07T08:23:48Z" }, + { url = "https://files.pythonhosted.org/packages/19/78/744123c7b38865a965cd9e6f691fde7ef989a00a256fa8bf15b75240d12f/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:14f028eb47f59e9169bfdf9f7ceafd29dd64902141840633683d0bad5b04ff34", size = 400697, upload-time = "2025-08-07T08:23:49.407Z" }, + { url = "https://files.pythonhosted.org/packages/32/97/3c3d32fe7daee0a1f1a678b6d4dfb8c4dcf88197fa2441f9da7cb54a8466/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6168af0be75bba990a39f9431cdfae5f0ad501f4af32ae62e8856307200517b8", size = 517781, upload-time = "2025-08-07T08:23:50.557Z" }, + { url = "https://files.pythonhosted.org/packages/b2/be/28f0e3e733680aa13ecec1212fc0f585928a206292f14f89c0b8a684cad1/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab47fe727c13c09d0e6f508e3a49e545008e23bf762a245b020391b621f5b726", size = 406449, upload-time = "2025-08-07T08:23:51.732Z" }, + { url = "https://files.pythonhosted.org/packages/95/ae/5d15c83e337c082d0367053baeb40bfba683f42459f6ebff63a2fd7e5518/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fa01b3d5e3b7d97efab65bd3d88f164e289ec323a8c033c5c38e53ee25c007e", size = 386150, upload-time = "2025-08-07T08:23:52.822Z" }, + { url = "https://files.pythonhosted.org/packages/bf/65/944e95f95d5931112829e040912b25a77b2e7ed913ea5fe5746aa5c1ce75/rpds_py-0.27.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:6c135708e987f46053e0a1246a206f53717f9fadfba27174a9769ad4befba5c3", size = 406100, upload-time = "2025-08-07T08:23:54.339Z" }, + { url = "https://files.pythonhosted.org/packages/21/a4/1664b83fae02894533cd11dc0b9f91d673797c2185b7be0f7496107ed6c5/rpds_py-0.27.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc327f4497b7087d06204235199daf208fd01c82d80465dc5efa4ec9df1c5b4e", size = 421345, upload-time = "2025-08-07T08:23:55.832Z" }, + { url = "https://files.pythonhosted.org/packages/7c/26/b7303941c2b0823bfb34c71378249f8beedce57301f400acb04bb345d025/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e57906e38583a2cba67046a09c2637e23297618dc1f3caddbc493f2be97c93f", size = 561891, upload-time = "2025-08-07T08:23:56.951Z" }, + { url = "https://files.pythonhosted.org/packages/9b/c8/48623d64d4a5a028fa99576c768a6159db49ab907230edddc0b8468b998b/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f4f69d7a4300fbf91efb1fb4916421bd57804c01ab938ab50ac9c4aa2212f03", size = 591756, upload-time = "2025-08-07T08:23:58.146Z" }, + { url = "https://files.pythonhosted.org/packages/b3/51/18f62617e8e61cc66334c9fb44b1ad7baae3438662098efbc55fb3fda453/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b4c4fbbcff474e1e5f38be1bf04511c03d492d42eec0babda5d03af3b5589374", size = 557088, upload-time = "2025-08-07T08:23:59.6Z" }, + { url = "https://files.pythonhosted.org/packages/bd/4c/e84c3a276e2496a93d245516be6b49e20499aa8ca1c94d59fada0d79addc/rpds_py-0.27.0-cp312-cp312-win32.whl", hash = "sha256:27bac29bbbf39601b2aab474daf99dbc8e7176ca3389237a23944b17f8913d97", size = 221926, upload-time = "2025-08-07T08:24:00.695Z" }, + { url = "https://files.pythonhosted.org/packages/83/89/9d0fbcef64340db0605eb0a0044f258076f3ae0a3b108983b2c614d96212/rpds_py-0.27.0-cp312-cp312-win_amd64.whl", hash = "sha256:8a06aa1197ec0281eb1d7daf6073e199eb832fe591ffa329b88bae28f25f5fe5", size = 233235, upload-time = "2025-08-07T08:24:01.846Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b0/e177aa9f39cbab060f96de4a09df77d494f0279604dc2f509263e21b05f9/rpds_py-0.27.0-cp312-cp312-win_arm64.whl", hash = "sha256:e14aab02258cb776a108107bd15f5b5e4a1bbaa61ef33b36693dfab6f89d54f9", size = 223315, upload-time = "2025-08-07T08:24:03.337Z" }, + { url = "https://files.pythonhosted.org/packages/81/d2/dfdfd42565a923b9e5a29f93501664f5b984a802967d48d49200ad71be36/rpds_py-0.27.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:443d239d02d9ae55b74015234f2cd8eb09e59fbba30bf60baeb3123ad4c6d5ff", size = 362133, upload-time = "2025-08-07T08:24:04.508Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4a/0a2e2460c4b66021d349ce9f6331df1d6c75d7eea90df9785d333a49df04/rpds_py-0.27.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b8a7acf04fda1f30f1007f3cc96d29d8cf0a53e626e4e1655fdf4eabc082d367", size = 347128, upload-time = "2025-08-07T08:24:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/35/8d/7d1e4390dfe09d4213b3175a3f5a817514355cb3524593380733204f20b9/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d0f92b78cfc3b74a42239fdd8c1266f4715b573204c234d2f9fc3fc7a24f185", size = 384027, upload-time = "2025-08-07T08:24:06.841Z" }, + { url = "https://files.pythonhosted.org/packages/c1/65/78499d1a62172891c8cd45de737b2a4b84a414b6ad8315ab3ac4945a5b61/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ce4ed8e0c7dbc5b19352b9c2c6131dd23b95fa8698b5cdd076307a33626b72dc", size = 399973, upload-time = "2025-08-07T08:24:08.143Z" }, + { url = "https://files.pythonhosted.org/packages/10/a1/1c67c1d8cc889107b19570bb01f75cf49852068e95e6aee80d22915406fc/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fde355b02934cc6b07200cc3b27ab0c15870a757d1a72fd401aa92e2ea3c6bfe", size = 515295, upload-time = "2025-08-07T08:24:09.711Z" }, + { url = "https://files.pythonhosted.org/packages/df/27/700ec88e748436b6c7c4a2262d66e80f8c21ab585d5e98c45e02f13f21c0/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13bbc4846ae4c993f07c93feb21a24d8ec637573d567a924b1001e81c8ae80f9", size = 406737, upload-time = "2025-08-07T08:24:11.182Z" }, + { url = "https://files.pythonhosted.org/packages/33/cc/6b0ee8f0ba3f2df2daac1beda17fde5cf10897a7d466f252bd184ef20162/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be0744661afbc4099fef7f4e604e7f1ea1be1dd7284f357924af12a705cc7d5c", size = 385898, upload-time = "2025-08-07T08:24:12.798Z" }, + { url = "https://files.pythonhosted.org/packages/e8/7e/c927b37d7d33c0a0ebf249cc268dc2fcec52864c1b6309ecb960497f2285/rpds_py-0.27.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:069e0384a54f427bd65d7fda83b68a90606a3835901aaff42185fcd94f5a9295", size = 405785, upload-time = "2025-08-07T08:24:14.906Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/8ed50746d909dcf402af3fa58b83d5a590ed43e07251d6b08fad1a535ba6/rpds_py-0.27.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4bc262ace5a1a7dc3e2eac2fa97b8257ae795389f688b5adf22c5db1e2431c43", size = 419760, upload-time = "2025-08-07T08:24:16.129Z" }, + { url = "https://files.pythonhosted.org/packages/d3/60/2b2071aee781cb3bd49f94d5d35686990b925e9b9f3e3d149235a6f5d5c1/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2fe6e18e5c8581f0361b35ae575043c7029d0a92cb3429e6e596c2cdde251432", size = 561201, upload-time = "2025-08-07T08:24:17.645Z" }, + { url = "https://files.pythonhosted.org/packages/98/1f/27b67304272521aaea02be293fecedce13fa351a4e41cdb9290576fc6d81/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d93ebdb82363d2e7bec64eecdc3632b59e84bd270d74fe5be1659f7787052f9b", size = 591021, upload-time = "2025-08-07T08:24:18.999Z" }, + { url = "https://files.pythonhosted.org/packages/db/9b/a2fadf823164dd085b1f894be6443b0762a54a7af6f36e98e8fcda69ee50/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0954e3a92e1d62e83a54ea7b3fdc9efa5d61acef8488a8a3d31fdafbfb00460d", size = 556368, upload-time = "2025-08-07T08:24:20.54Z" }, + { url = "https://files.pythonhosted.org/packages/24/f3/6d135d46a129cda2e3e6d4c5e91e2cc26ea0428c6cf152763f3f10b6dd05/rpds_py-0.27.0-cp313-cp313-win32.whl", hash = "sha256:2cff9bdd6c7b906cc562a505c04a57d92e82d37200027e8d362518df427f96cd", size = 221236, upload-time = "2025-08-07T08:24:22.144Z" }, + { url = "https://files.pythonhosted.org/packages/c5/44/65d7494f5448ecc755b545d78b188440f81da98b50ea0447ab5ebfdf9bd6/rpds_py-0.27.0-cp313-cp313-win_amd64.whl", hash = "sha256:dc79d192fb76fc0c84f2c58672c17bbbc383fd26c3cdc29daae16ce3d927e8b2", size = 232634, upload-time = "2025-08-07T08:24:23.642Z" }, + { url = "https://files.pythonhosted.org/packages/70/d9/23852410fadab2abb611733933401de42a1964ce6600a3badae35fbd573e/rpds_py-0.27.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b3a5c8089eed498a3af23ce87a80805ff98f6ef8f7bdb70bd1b7dae5105f6ac", size = 222783, upload-time = "2025-08-07T08:24:25.098Z" }, + { url = "https://files.pythonhosted.org/packages/15/75/03447917f78512b34463f4ef11066516067099a0c466545655503bed0c77/rpds_py-0.27.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:90fb790138c1a89a2e58c9282fe1089638401f2f3b8dddd758499041bc6e0774", size = 359154, upload-time = "2025-08-07T08:24:26.249Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fc/4dac4fa756451f2122ddaf136e2c6aeb758dc6fdbe9ccc4bc95c98451d50/rpds_py-0.27.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:010c4843a3b92b54373e3d2291a7447d6c3fc29f591772cc2ea0e9f5c1da434b", size = 343909, upload-time = "2025-08-07T08:24:27.405Z" }, + { url = "https://files.pythonhosted.org/packages/7b/81/723c1ed8e6f57ed9d8c0c07578747a2d3d554aaefc1ab89f4e42cfeefa07/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9ce7a9e967afc0a2af7caa0d15a3e9c1054815f73d6a8cb9225b61921b419bd", size = 379340, upload-time = "2025-08-07T08:24:28.714Z" }, + { url = "https://files.pythonhosted.org/packages/98/16/7e3740413de71818ce1997df82ba5f94bae9fff90c0a578c0e24658e6201/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aa0bf113d15e8abdfee92aa4db86761b709a09954083afcb5bf0f952d6065fdb", size = 391655, upload-time = "2025-08-07T08:24:30.223Z" }, + { url = "https://files.pythonhosted.org/packages/e0/63/2a9f510e124d80660f60ecce07953f3f2d5f0b96192c1365443859b9c87f/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb91d252b35004a84670dfeafadb042528b19842a0080d8b53e5ec1128e8f433", size = 513017, upload-time = "2025-08-07T08:24:31.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/4e/cf6ff311d09776c53ea1b4f2e6700b9d43bb4e99551006817ade4bbd6f78/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db8a6313dbac934193fc17fe7610f70cd8181c542a91382531bef5ed785e5615", size = 402058, upload-time = "2025-08-07T08:24:32.613Z" }, + { url = "https://files.pythonhosted.org/packages/88/11/5e36096d474cb10f2a2d68b22af60a3bc4164fd8db15078769a568d9d3ac/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce96ab0bdfcef1b8c371ada2100767ace6804ea35aacce0aef3aeb4f3f499ca8", size = 383474, upload-time = "2025-08-07T08:24:33.767Z" }, + { url = "https://files.pythonhosted.org/packages/db/a2/3dff02805b06058760b5eaa6d8cb8db3eb3e46c9e452453ad5fc5b5ad9fe/rpds_py-0.27.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:7451ede3560086abe1aa27dcdcf55cd15c96b56f543fb12e5826eee6f721f858", size = 400067, upload-time = "2025-08-07T08:24:35.021Z" }, + { url = "https://files.pythonhosted.org/packages/67/87/eed7369b0b265518e21ea836456a4ed4a6744c8c12422ce05bce760bb3cf/rpds_py-0.27.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:32196b5a99821476537b3f7732432d64d93a58d680a52c5e12a190ee0135d8b5", size = 412085, upload-time = "2025-08-07T08:24:36.267Z" }, + { url = "https://files.pythonhosted.org/packages/8b/48/f50b2ab2fbb422fbb389fe296e70b7a6b5ea31b263ada5c61377e710a924/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a029be818059870664157194e46ce0e995082ac49926f1423c1f058534d2aaa9", size = 555928, upload-time = "2025-08-07T08:24:37.573Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/b18eb51045d06887666c3560cd4bbb6819127b43d758f5adb82b5f56f7d1/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3841f66c1ffdc6cebce8aed64e36db71466f1dc23c0d9a5592e2a782a3042c79", size = 585527, upload-time = "2025-08-07T08:24:39.391Z" }, + { url = "https://files.pythonhosted.org/packages/be/03/a3dd6470fc76499959b00ae56295b76b4bdf7c6ffc60d62006b1217567e1/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:42894616da0fc0dcb2ec08a77896c3f56e9cb2f4b66acd76fc8992c3557ceb1c", size = 554211, upload-time = "2025-08-07T08:24:40.6Z" }, + { url = "https://files.pythonhosted.org/packages/bf/d1/ee5fd1be395a07423ac4ca0bcc05280bf95db2b155d03adefeb47d5ebf7e/rpds_py-0.27.0-cp313-cp313t-win32.whl", hash = "sha256:b1fef1f13c842a39a03409e30ca0bf87b39a1e2a305a9924deadb75a43105d23", size = 216624, upload-time = "2025-08-07T08:24:42.204Z" }, + { url = "https://files.pythonhosted.org/packages/1c/94/4814c4c858833bf46706f87349c37ca45e154da7dbbec9ff09f1abeb08cc/rpds_py-0.27.0-cp313-cp313t-win_amd64.whl", hash = "sha256:183f5e221ba3e283cd36fdfbe311d95cd87699a083330b4f792543987167eff1", size = 230007, upload-time = "2025-08-07T08:24:43.329Z" }, + { url = "https://files.pythonhosted.org/packages/0e/a5/8fffe1c7dc7c055aa02df310f9fb71cfc693a4d5ccc5de2d3456ea5fb022/rpds_py-0.27.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:f3cd110e02c5bf17d8fb562f6c9df5c20e73029d587cf8602a2da6c5ef1e32cb", size = 362595, upload-time = "2025-08-07T08:24:44.478Z" }, + { url = "https://files.pythonhosted.org/packages/bc/c7/4e4253fd2d4bb0edbc0b0b10d9f280612ca4f0f990e3c04c599000fe7d71/rpds_py-0.27.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8d0e09cf4863c74106b5265c2c310f36146e2b445ff7b3018a56799f28f39f6f", size = 347252, upload-time = "2025-08-07T08:24:45.678Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c8/3d1a954d30f0174dd6baf18b57c215da03cf7846a9d6e0143304e784cddc/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f689ab822f9b5eb6dfc69893b4b9366db1d2420f7db1f6a2adf2a9ca15ad64", size = 384886, upload-time = "2025-08-07T08:24:46.86Z" }, + { url = "https://files.pythonhosted.org/packages/e0/52/3c5835f2df389832b28f9276dd5395b5a965cea34226e7c88c8fbec2093c/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e36c80c49853b3ffda7aa1831bf175c13356b210c73128c861f3aa93c3cc4015", size = 399716, upload-time = "2025-08-07T08:24:48.174Z" }, + { url = "https://files.pythonhosted.org/packages/40/73/176e46992461a1749686a2a441e24df51ff86b99c2d34bf39f2a5273b987/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6de6a7f622860af0146cb9ee148682ff4d0cea0b8fd3ad51ce4d40efb2f061d0", size = 517030, upload-time = "2025-08-07T08:24:49.52Z" }, + { url = "https://files.pythonhosted.org/packages/79/2a/7266c75840e8c6e70effeb0d38922a45720904f2cd695e68a0150e5407e2/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4045e2fc4b37ec4b48e8907a5819bdd3380708c139d7cc358f03a3653abedb89", size = 408448, upload-time = "2025-08-07T08:24:50.727Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5f/a7efc572b8e235093dc6cf39f4dbc8a7f08e65fdbcec7ff4daeb3585eef1/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da162b718b12c4219eeeeb68a5b7552fbc7aadedf2efee440f88b9c0e54b45d", size = 387320, upload-time = "2025-08-07T08:24:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/a2/eb/9ff6bc92efe57cf5a2cb74dee20453ba444b6fdc85275d8c99e0d27239d1/rpds_py-0.27.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:0665be515767dc727ffa5f74bd2ef60b0ff85dad6bb8f50d91eaa6b5fb226f51", size = 407414, upload-time = "2025-08-07T08:24:53.664Z" }, + { url = "https://files.pythonhosted.org/packages/fb/bd/3b9b19b00d5c6e1bd0f418c229ab0f8d3b110ddf7ec5d9d689ef783d0268/rpds_py-0.27.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:203f581accef67300a942e49a37d74c12ceeef4514874c7cede21b012613ca2c", size = 420766, upload-time = "2025-08-07T08:24:55.917Z" }, + { url = "https://files.pythonhosted.org/packages/17/6b/521a7b1079ce16258c70805166e3ac6ec4ee2139d023fe07954dc9b2d568/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7873b65686a6471c0037139aa000d23fe94628e0daaa27b6e40607c90e3f5ec4", size = 562409, upload-time = "2025-08-07T08:24:57.17Z" }, + { url = "https://files.pythonhosted.org/packages/8b/bf/65db5bfb14ccc55e39de8419a659d05a2a9cd232f0a699a516bb0991da7b/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:249ab91ceaa6b41abc5f19513cb95b45c6f956f6b89f1fe3d99c81255a849f9e", size = 590793, upload-time = "2025-08-07T08:24:58.388Z" }, + { url = "https://files.pythonhosted.org/packages/db/b8/82d368b378325191ba7aae8f40f009b78057b598d4394d1f2cdabaf67b3f/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d2f184336bc1d6abfaaa1262ed42739c3789b1e3a65a29916a615307d22ffd2e", size = 558178, upload-time = "2025-08-07T08:24:59.756Z" }, + { url = "https://files.pythonhosted.org/packages/f6/ff/f270bddbfbc3812500f8131b1ebbd97afd014cd554b604a3f73f03133a36/rpds_py-0.27.0-cp314-cp314-win32.whl", hash = "sha256:d3c622c39f04d5751408f5b801ecb527e6e0a471b367f420a877f7a660d583f6", size = 222355, upload-time = "2025-08-07T08:25:01.027Z" }, + { url = "https://files.pythonhosted.org/packages/bf/20/fdab055b1460c02ed356a0e0b0a78c1dd32dc64e82a544f7b31c9ac643dc/rpds_py-0.27.0-cp314-cp314-win_amd64.whl", hash = "sha256:cf824aceaeffff029ccfba0da637d432ca71ab21f13e7f6f5179cd88ebc77a8a", size = 234007, upload-time = "2025-08-07T08:25:02.268Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a8/694c060005421797a3be4943dab8347c76c2b429a9bef68fb2c87c9e70c7/rpds_py-0.27.0-cp314-cp314-win_arm64.whl", hash = "sha256:86aca1616922b40d8ac1b3073a1ead4255a2f13405e5700c01f7c8d29a03972d", size = 223527, upload-time = "2025-08-07T08:25:03.45Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f9/77f4c90f79d2c5ca8ce6ec6a76cb4734ee247de6b3a4f337e289e1f00372/rpds_py-0.27.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:341d8acb6724c0c17bdf714319c393bb27f6d23d39bc74f94221b3e59fc31828", size = 359469, upload-time = "2025-08-07T08:25:04.648Z" }, + { url = "https://files.pythonhosted.org/packages/c0/22/b97878d2f1284286fef4172069e84b0b42b546ea7d053e5fb7adb9ac6494/rpds_py-0.27.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6b96b0b784fe5fd03beffff2b1533dc0d85e92bab8d1b2c24ef3a5dc8fac5669", size = 343960, upload-time = "2025-08-07T08:25:05.863Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b0/dfd55b5bb480eda0578ae94ef256d3061d20b19a0f5e18c482f03e65464f/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c431bfb91478d7cbe368d0a699978050d3b112d7f1d440a41e90faa325557fd", size = 380201, upload-time = "2025-08-07T08:25:07.513Z" }, + { url = "https://files.pythonhosted.org/packages/28/22/e1fa64e50d58ad2b2053077e3ec81a979147c43428de9e6de68ddf6aff4e/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20e222a44ae9f507d0f2678ee3dd0c45ec1e930f6875d99b8459631c24058aec", size = 392111, upload-time = "2025-08-07T08:25:09.149Z" }, + { url = "https://files.pythonhosted.org/packages/49/f9/43ab7a43e97aedf6cea6af70fdcbe18abbbc41d4ae6cdec1bfc23bbad403/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:184f0d7b342967f6cda94a07d0e1fae177d11d0b8f17d73e06e36ac02889f303", size = 515863, upload-time = "2025-08-07T08:25:10.431Z" }, + { url = "https://files.pythonhosted.org/packages/38/9b/9bd59dcc636cd04d86a2d20ad967770bf348f5eb5922a8f29b547c074243/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a00c91104c173c9043bc46f7b30ee5e6d2f6b1149f11f545580f5d6fdff42c0b", size = 402398, upload-time = "2025-08-07T08:25:11.819Z" }, + { url = "https://files.pythonhosted.org/packages/71/bf/f099328c6c85667aba6b66fa5c35a8882db06dcd462ea214be72813a0dd2/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7a37dd208f0d658e0487522078b1ed68cd6bce20ef4b5a915d2809b9094b410", size = 384665, upload-time = "2025-08-07T08:25:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c5/9c1f03121ece6634818490bd3c8be2c82a70928a19de03467fb25a3ae2a8/rpds_py-0.27.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:92f3b3ec3e6008a1fe00b7c0946a170f161ac00645cde35e3c9a68c2475e8156", size = 400405, upload-time = "2025-08-07T08:25:14.417Z" }, + { url = "https://files.pythonhosted.org/packages/b5/b8/e25d54af3e63ac94f0c16d8fe143779fe71ff209445a0c00d0f6984b6b2c/rpds_py-0.27.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b3db5fae5cbce2131b7420a3f83553d4d89514c03d67804ced36161fe8b6b2", size = 413179, upload-time = "2025-08-07T08:25:15.664Z" }, + { url = "https://files.pythonhosted.org/packages/f9/d1/406b3316433fe49c3021546293a04bc33f1478e3ec7950215a7fce1a1208/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5355527adaa713ab693cbce7c1e0ec71682f599f61b128cf19d07e5c13c9b1f1", size = 556895, upload-time = "2025-08-07T08:25:17.061Z" }, + { url = "https://files.pythonhosted.org/packages/5f/bc/3697c0c21fcb9a54d46ae3b735eb2365eea0c2be076b8f770f98e07998de/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fcc01c57ce6e70b728af02b2401c5bc853a9e14eb07deda30624374f0aebfe42", size = 585464, upload-time = "2025-08-07T08:25:18.406Z" }, + { url = "https://files.pythonhosted.org/packages/63/09/ee1bb5536f99f42c839b177d552f6114aa3142d82f49cef49261ed28dbe0/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3001013dae10f806380ba739d40dee11db1ecb91684febb8406a87c2ded23dae", size = 555090, upload-time = "2025-08-07T08:25:20.461Z" }, + { url = "https://files.pythonhosted.org/packages/7d/2c/363eada9e89f7059199d3724135a86c47082cbf72790d6ba2f336d146ddb/rpds_py-0.27.0-cp314-cp314t-win32.whl", hash = "sha256:0f401c369186a5743694dd9fc08cba66cf70908757552e1f714bfc5219c655b5", size = 218001, upload-time = "2025-08-07T08:25:21.761Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3f/d6c216ed5199c9ef79e2a33955601f454ed1e7420a93b89670133bca5ace/rpds_py-0.27.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8a1dca5507fa1337f75dcd5070218b20bc68cf8844271c923c1b79dfcbc20391", size = 230993, upload-time = "2025-08-07T08:25:23.34Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "streamlit" +version = "1.48.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "altair" }, + { name = "blinker" }, + { name = "cachetools" }, + { name = "click" }, + { name = "gitpython" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "protobuf" }, + { name = "pyarrow" }, + { name = "pydeck" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "toml" }, + { name = "tornado" }, + { name = "typing-extensions" }, + { name = "watchdog", marker = "sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b8/9f/373ba8d9f1190cce0a1b04cd9e77fd933c8238506aa1e3440eefabfc16f3/streamlit-1.48.0.tar.gz", hash = "sha256:64da4819f4b897c8d1e9eb6396f4618b2eb5029d25af61472422d4eb0688bb75", size = 9526680, upload-time = "2025-08-05T23:13:48.852Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/92/095c67f3d17b6116c2b1882bb5ac719939154ee5bc7e7610ee325159a101/streamlit-1.48.0-py3-none-any.whl", hash = "sha256:0f2bc697a1a4d2199384d8bb3966aa0b25904c9345e6d6ad6fbb69bd284c03a2", size = 9928889, upload-time = "2025-08-05T23:13:44.285Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload-time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" }, +] + +[[package]] +name = "tiktoken" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/86/ad0155a37c4f310935d5ac0b1ccf9bdb635dcb906e0a9a26b616dd55825a/tiktoken-0.11.0.tar.gz", hash = "sha256:3c518641aee1c52247c2b97e74d8d07d780092af79d5911a6ab5e79359d9b06a", size = 37648, upload-time = "2025-08-08T23:58:08.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/9e/eceddeffc169fc75fe0fd4f38471309f11cb1906f9b8aa39be4f5817df65/tiktoken-0.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fd9e6b23e860973cf9526544e220b223c60badf5b62e80a33509d6d40e6c8f5d", size = 1055199, upload-time = "2025-08-08T23:57:45.076Z" }, + { url = "https://files.pythonhosted.org/packages/4f/cf/5f02bfefffdc6b54e5094d2897bc80efd43050e5b09b576fd85936ee54bf/tiktoken-0.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6a76d53cee2da71ee2731c9caa747398762bda19d7f92665e882fef229cb0b5b", size = 996655, upload-time = "2025-08-08T23:57:46.304Z" }, + { url = "https://files.pythonhosted.org/packages/65/8e/c769b45ef379bc360c9978c4f6914c79fd432400a6733a8afc7ed7b0726a/tiktoken-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ef72aab3ea240646e642413cb363b73869fed4e604dcfd69eec63dc54d603e8", size = 1128867, upload-time = "2025-08-08T23:57:47.438Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2d/4d77f6feb9292bfdd23d5813e442b3bba883f42d0ac78ef5fdc56873f756/tiktoken-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f929255c705efec7a28bf515e29dc74220b2f07544a8c81b8d69e8efc4578bd", size = 1183308, upload-time = "2025-08-08T23:57:48.566Z" }, + { url = "https://files.pythonhosted.org/packages/7a/65/7ff0a65d3bb0fc5a1fb6cc71b03e0f6e71a68c5eea230d1ff1ba3fd6df49/tiktoken-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61f1d15822e4404953d499fd1dcc62817a12ae9fb1e4898033ec8fe3915fdf8e", size = 1244301, upload-time = "2025-08-08T23:57:49.642Z" }, + { url = "https://files.pythonhosted.org/packages/f5/6e/5b71578799b72e5bdcef206a214c3ce860d999d579a3b56e74a6c8989ee2/tiktoken-0.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:45927a71ab6643dfd3ef57d515a5db3d199137adf551f66453be098502838b0f", size = 884282, upload-time = "2025-08-08T23:57:50.759Z" }, + { url = "https://files.pythonhosted.org/packages/cc/cd/a9034bcee638716d9310443818d73c6387a6a96db93cbcb0819b77f5b206/tiktoken-0.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a5f3f25ffb152ee7fec78e90a5e5ea5b03b4ea240beed03305615847f7a6ace2", size = 1055339, upload-time = "2025-08-08T23:57:51.802Z" }, + { url = "https://files.pythonhosted.org/packages/f1/91/9922b345f611b4e92581f234e64e9661e1c524875c8eadd513c4b2088472/tiktoken-0.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7dc6e9ad16a2a75b4c4be7208055a1f707c9510541d94d9cc31f7fbdc8db41d8", size = 997080, upload-time = "2025-08-08T23:57:53.442Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9d/49cd047c71336bc4b4af460ac213ec1c457da67712bde59b892e84f1859f/tiktoken-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a0517634d67a8a48fd4a4ad73930c3022629a85a217d256a6e9b8b47439d1e4", size = 1128501, upload-time = "2025-08-08T23:57:54.808Z" }, + { url = "https://files.pythonhosted.org/packages/52/d5/a0dcdb40dd2ea357e83cb36258967f0ae96f5dd40c722d6e382ceee6bba9/tiktoken-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fb4effe60574675118b73c6fbfd3b5868e5d7a1f570d6cc0d18724b09ecf318", size = 1182743, upload-time = "2025-08-08T23:57:56.307Z" }, + { url = "https://files.pythonhosted.org/packages/3b/17/a0fc51aefb66b7b5261ca1314afa83df0106b033f783f9a7bcbe8e741494/tiktoken-0.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:94f984c9831fd32688aef4348803b0905d4ae9c432303087bae370dc1381a2b8", size = 1244057, upload-time = "2025-08-08T23:57:57.628Z" }, + { url = "https://files.pythonhosted.org/packages/50/79/bcf350609f3a10f09fe4fc207f132085e497fdd3612f3925ab24d86a0ca0/tiktoken-0.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:2177ffda31dec4023356a441793fed82f7af5291120751dee4d696414f54db0c", size = 883901, upload-time = "2025-08-08T23:57:59.359Z" }, +] + +[[package]] +name = "toml" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f", size = 22253, upload-time = "2020-11-01T01:40:22.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821, upload-time = "2025-08-08T18:27:00.78Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563, upload-time = "2025-08-08T18:26:42.945Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729, upload-time = "2025-08-08T18:26:44.473Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295, upload-time = "2025-08-08T18:26:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644, upload-time = "2025-08-08T18:26:47.625Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878, upload-time = "2025-08-08T18:26:50.599Z" }, + { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549, upload-time = "2025-08-08T18:26:51.864Z" }, + { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973, upload-time = "2025-08-08T18:26:53.625Z" }, + { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954, upload-time = "2025-08-08T18:26:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023, upload-time = "2025-08-08T18:26:56.677Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427, upload-time = "2025-08-08T18:26:57.91Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456, upload-time = "2025-08-08T18:26:59.207Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673, upload-time = "2025-07-04T13:28:34.16Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906, upload-time = "2025-07-04T13:28:32.743Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726, upload-time = "2025-05-21T18:55:23.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + +[[package]] +name = "yarl" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload-time = "2025-06-10T00:46:09.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload-time = "2025-06-10T00:43:44.369Z" }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload-time = "2025-06-10T00:43:46.295Z" }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload-time = "2025-06-10T00:43:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload-time = "2025-06-10T00:43:49.924Z" }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload-time = "2025-06-10T00:43:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload-time = "2025-06-10T00:43:53.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload-time = "2025-06-10T00:43:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload-time = "2025-06-10T00:43:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload-time = "2025-06-10T00:43:59.773Z" }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload-time = "2025-06-10T00:44:02.051Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload-time = "2025-06-10T00:44:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload-time = "2025-06-10T00:44:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload-time = "2025-06-10T00:44:08.379Z" }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload-time = "2025-06-10T00:44:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload-time = "2025-06-10T00:44:12.834Z" }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload-time = "2025-06-10T00:44:14.731Z" }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload-time = "2025-06-10T00:44:16.716Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811, upload-time = "2025-06-10T00:44:18.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078, upload-time = "2025-06-10T00:44:20.635Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748, upload-time = "2025-06-10T00:44:22.34Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595, upload-time = "2025-06-10T00:44:24.314Z" }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616, upload-time = "2025-06-10T00:44:26.167Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324, upload-time = "2025-06-10T00:44:27.915Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676, upload-time = "2025-06-10T00:44:30.041Z" }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614, upload-time = "2025-06-10T00:44:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766, upload-time = "2025-06-10T00:44:34.494Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615, upload-time = "2025-06-10T00:44:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982, upload-time = "2025-06-10T00:44:39.141Z" }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792, upload-time = "2025-06-10T00:44:40.934Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049, upload-time = "2025-06-10T00:44:42.854Z" }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774, upload-time = "2025-06-10T00:44:45.275Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252, upload-time = "2025-06-10T00:44:47.31Z" }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198, upload-time = "2025-06-10T00:44:49.164Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346, upload-time = "2025-06-10T00:44:51.182Z" }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826, upload-time = "2025-06-10T00:44:52.883Z" }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217, upload-time = "2025-06-10T00:44:54.658Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700, upload-time = "2025-06-10T00:44:56.784Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644, upload-time = "2025-06-10T00:44:59.071Z" }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452, upload-time = "2025-06-10T00:45:01.605Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378, upload-time = "2025-06-10T00:45:03.946Z" }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261, upload-time = "2025-06-10T00:45:05.992Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987, upload-time = "2025-06-10T00:45:08.227Z" }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361, upload-time = "2025-06-10T00:45:10.11Z" }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460, upload-time = "2025-06-10T00:45:12.055Z" }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486, upload-time = "2025-06-10T00:45:13.995Z" }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219, upload-time = "2025-06-10T00:45:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693, upload-time = "2025-06-10T00:45:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803, upload-time = "2025-06-10T00:45:20.677Z" }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709, upload-time = "2025-06-10T00:45:23.221Z" }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591, upload-time = "2025-06-10T00:45:25.793Z" }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003, upload-time = "2025-06-10T00:45:27.752Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload-time = "2025-06-10T00:46:07.521Z" }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, +] + +[[package]] +name = "zstandard" +version = "0.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload-time = "2024-07-15T00:18:06.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/83/f23338c963bd9de687d47bf32efe9fd30164e722ba27fb59df33e6b1719b/zstandard-0.23.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094", size = 788713, upload-time = "2024-07-15T00:15:35.815Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b3/1a028f6750fd9227ee0b937a278a434ab7f7fdc3066c3173f64366fe2466/zstandard-0.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8", size = 633459, upload-time = "2024-07-15T00:15:37.995Z" }, + { url = "https://files.pythonhosted.org/packages/26/af/36d89aae0c1f95a0a98e50711bc5d92c144939efc1f81a2fcd3e78d7f4c1/zstandard-0.23.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1", size = 4945707, upload-time = "2024-07-15T00:15:39.872Z" }, + { url = "https://files.pythonhosted.org/packages/cd/2e/2051f5c772f4dfc0aae3741d5fc72c3dcfe3aaeb461cc231668a4db1ce14/zstandard-0.23.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072", size = 5306545, upload-time = "2024-07-15T00:15:41.75Z" }, + { url = "https://files.pythonhosted.org/packages/0a/9e/a11c97b087f89cab030fa71206963090d2fecd8eb83e67bb8f3ffb84c024/zstandard-0.23.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20", size = 5337533, upload-time = "2024-07-15T00:15:44.114Z" }, + { url = "https://files.pythonhosted.org/packages/fc/79/edeb217c57fe1bf16d890aa91a1c2c96b28c07b46afed54a5dcf310c3f6f/zstandard-0.23.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373", size = 5436510, upload-time = "2024-07-15T00:15:46.509Z" }, + { url = "https://files.pythonhosted.org/packages/81/4f/c21383d97cb7a422ddf1ae824b53ce4b51063d0eeb2afa757eb40804a8ef/zstandard-0.23.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db", size = 4859973, upload-time = "2024-07-15T00:15:49.939Z" }, + { url = "https://files.pythonhosted.org/packages/ab/15/08d22e87753304405ccac8be2493a495f529edd81d39a0870621462276ef/zstandard-0.23.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772", size = 4936968, upload-time = "2024-07-15T00:15:52.025Z" }, + { url = "https://files.pythonhosted.org/packages/eb/fa/f3670a597949fe7dcf38119a39f7da49a8a84a6f0b1a2e46b2f71a0ab83f/zstandard-0.23.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105", size = 5467179, upload-time = "2024-07-15T00:15:54.971Z" }, + { url = "https://files.pythonhosted.org/packages/4e/a9/dad2ab22020211e380adc477a1dbf9f109b1f8d94c614944843e20dc2a99/zstandard-0.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba", size = 4848577, upload-time = "2024-07-15T00:15:57.634Z" }, + { url = "https://files.pythonhosted.org/packages/08/03/dd28b4484b0770f1e23478413e01bee476ae8227bbc81561f9c329e12564/zstandard-0.23.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd", size = 4693899, upload-time = "2024-07-15T00:16:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/2b/64/3da7497eb635d025841e958bcd66a86117ae320c3b14b0ae86e9e8627518/zstandard-0.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a", size = 5199964, upload-time = "2024-07-15T00:16:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/43/a4/d82decbab158a0e8a6ebb7fc98bc4d903266bce85b6e9aaedea1d288338c/zstandard-0.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90", size = 5655398, upload-time = "2024-07-15T00:16:06.694Z" }, + { url = "https://files.pythonhosted.org/packages/f2/61/ac78a1263bc83a5cf29e7458b77a568eda5a8f81980691bbc6eb6a0d45cc/zstandard-0.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35", size = 5191313, upload-time = "2024-07-15T00:16:09.758Z" }, + { url = "https://files.pythonhosted.org/packages/e7/54/967c478314e16af5baf849b6ee9d6ea724ae5b100eb506011f045d3d4e16/zstandard-0.23.0-cp312-cp312-win32.whl", hash = "sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d", size = 430877, upload-time = "2024-07-15T00:16:11.758Z" }, + { url = "https://files.pythonhosted.org/packages/75/37/872d74bd7739639c4553bf94c84af7d54d8211b626b352bc57f0fd8d1e3f/zstandard-0.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b", size = 495595, upload-time = "2024-07-15T00:16:13.731Z" }, + { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload-time = "2024-07-15T00:16:16.005Z" }, + { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload-time = "2024-07-15T00:16:17.897Z" }, + { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload-time = "2024-07-15T00:16:20.136Z" }, + { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload-time = "2024-07-15T00:16:23.398Z" }, + { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload-time = "2024-07-15T00:16:26.391Z" }, + { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload-time = "2024-07-15T00:16:29.018Z" }, + { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload-time = "2024-07-15T00:16:31.871Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload-time = "2024-07-15T00:16:34.593Z" }, + { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload-time = "2024-07-15T00:16:36.887Z" }, + { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload-time = "2024-07-15T00:16:39.709Z" }, + { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload-time = "2024-07-15T00:16:41.83Z" }, + { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload-time = "2024-07-15T00:16:44.287Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload-time = "2024-07-15T00:16:46.423Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload-time = "2024-07-15T00:16:49.053Z" }, + { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload-time = "2024-07-15T00:16:51.003Z" }, + { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload-time = "2024-07-15T00:16:53.135Z" }, +] diff --git a/basics/db.ipynb b/basics/db.ipynb new file mode 100644 index 0000000..bd2ae18 --- /dev/null +++ b/basics/db.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "158965c7", + "metadata": {}, + "source": [ + "MSSQL with Python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce2e4a03", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "!pip install mssql-python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c31f2f3", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "import mssql_python\n", + " \n", + "# Establish a connection\n", + "# Specify connection string\n", + "connection_string = \"YOUR_CONNECTION_STRING\"\n", + "# sample connection\n", + "# SERVER=;DATABASE=;UID=;PWD=;Encrypt=yes;\n", + "connection = mssql_python.connect(connection_string)\n", + " \n", + "# Execute a query\n", + "cursor = connection.cursor()\n", + "cursor.execute(\"SELECT * from customer\")\n", + "rows = cursor.fetchall()\n", + " \n", + "for row in rows:\n", + " print(row)\n", + " \n", + "# Close the connection\n", + "connection.close()" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/basics/merge_lists.py b/basics/merge_lists.py new file mode 100644 index 0000000..446d487 --- /dev/null +++ b/basics/merge_lists.py @@ -0,0 +1,8 @@ +def merge_lists(a: list, b:list)-> list: + return sorted(set(a + b)) + + +a = [1,2,3,4,2,7,5] +b = [4,1,9,8,7,6] +c = merge_lists(a, b) +print(c) \ No newline at end of file diff --git a/books/README.md b/books/README.md new file mode 100644 index 0000000..f4f505c --- /dev/null +++ b/books/README.md @@ -0,0 +1,18 @@ +# All Awesome Programming books +1. [Think Python](https://allendowney.github.io/ThinkPython/) +2. [Data Analysis in Python](https://wesmckinney.com/book/) + + +# Machine Learning Books +1. [ML Systems](https://www.mlsysbook.ai/) +2. [Machine Learning Projects in Python](https://assets.digitalocean.com/books/python/machine-learning-projects-python.pdf) + + +# LLMs and AI Books: +1. [Foundations of LLMs](https://arxiv.org/pdf/2501.09223) + + + + + +#### Star the repo if you like the content. diff --git a/interview-questions.md b/interview-questions.md new file mode 100644 index 0000000..d230482 --- /dev/null +++ b/interview-questions.md @@ -0,0 +1,137 @@ + +# Top 10 Python interview questions with answers! + +Here are the top 10 Python interview questions with concise answers and code examples where applicable: + +### 1. What is Python? What are its key features? + +Python is a high-level, interpreted, general-purpose programming language known for its simple, readable syntax. Key features include dynamic typing, automatic memory management, extensive libraries, and support for multiple programming paradigms (object-oriented, procedural, and functional)[^1_1]. + +### 2. How does Python handle memory management? + +Python uses **automatic memory management** with a built-in garbage collector. Memory is allocated and deallocated automatically as objects are created and destroyed. Reference counting and cyclic garbage collection are employed to manage and free memory efficiently[^1_1]. + +### 3. What is the difference between a Python list and a tuple? + +- **List**: Mutable, can be changed after creation. Syntax: `[^1_2][^1_3][^1_4]` +- **Tuple**: Immutable, cannot be changed after creation. Syntax: `(1, 2, 3)` + +Example: + +```python +my_list = [1, 2, 3] +my_tuple = (1, 2, 3) +my_list[^1_0] = 4 # Valid +# my_tuple[^1_0] = 4 # Raises TypeError +``` + + +### 4. What is the purpose of the `__init__` method in Python classes? + +`__init__` is the constructor method that initializes a new class instance's attributes when the object is created. + +Example: + +```python +class Dog: + def __init__(self, name): + self.name = name +d = Dog("Buddy") +``` + + +### 5. What are *args and **kwargs? + +- `*args` allows a function to accept any number of positional arguments. +- `**kwargs` allows any number of keyword arguments. + +Example: + +```python +def demo(*args, **kwargs): + print(args) + print(kwargs) +demo(1, 2, three=3, four=4) +# Output: (1, 2), {'three': 3, 'four': 4} +``` + + +### 6. What are list comprehensions? Give an example. + +List comprehensions provide a concise way to create lists using a single line of code. + +Example: + +```python +squares = [x*x for x in range(6)] +# Output: [0, 1, 4, 9, 16, 25] +``` + + +### 7. What is a Python decorator? + +A decorator is a function that modifies the behavior of another function without changing its code, usually prefixed with `@`. + +Example: + +```python +def decorator_func(func): + def wrapper(): + print("Before function call") + func() + print("After function call") + return wrapper + +@decorator_func +def say_hello(): + print("Hello!") +say_hello() +``` + + +### 8. What is a generator? How is it different from a regular function? + +A generator is a function that returns an iterator which yields one value at a time, using the `yield` statement. Generators don’t store all values in memory, making them memory efficient. + +Example: + +```python +def count_up_to(n): + count = 1 + while count <= n: + yield count + count += 1 +``` + + +### 9. How do you handle exceptions in Python? + +You use `try`, `except`, `else`, and `finally` blocks to handle exceptions. + +Example: + +```python +try: + x = 1 / 0 +except ZeroDivisionError: + print("You can't divide by zero!") +finally: + print("Execution complete") +``` + + +### 10. What is the difference between deep copy and shallow copy? + +- **Shallow copy:** Copies reference to objects only. Changes to nested objects affect both copies. +- **Deep copy:** Copies everything recursively. Changes in nested objects do not affect the original. + +Example: + +```python +import copy +lst1 = [[1, 2], [3, 4]] +lst2 = copy.copy(lst1) # Shallow copy +lst3 = copy.deepcopy(lst1) # Deep copy +``` + +These questions and answers cover concepts commonly tested in Python interviews. diff --git a/langchain/.env b/langchain/.env new file mode 100644 index 0000000..be2f10a --- /dev/null +++ b/langchain/.env @@ -0,0 +1,2 @@ +# Add your OpenAI API key which is required for model usage. +OPENAI_API_KEY=sk-projxxxxxxxxxxxxx diff --git a/langchain/Chinook.db b/langchain/Chinook.db new file mode 100644 index 0000000..8c687ff Binary files /dev/null and b/langchain/Chinook.db differ diff --git a/langchain/README.md b/langchain/README.md new file mode 100644 index 0000000..1ee6c5d --- /dev/null +++ b/langchain/README.md @@ -0,0 +1,12 @@ +## 1. Install all the dependencies +`uv sync` +## 2. Add your OpenAI API key to `.env` + +## 3. Start the jupyter lab server +`uv run jupyter lab` + + +🔗 Source +This example is sourced from Lesson 1: Create Agent of the LangChain Essentials Python course, available here: + +https://academy.langchain.com/courses/take/langchain-essentials-python/lessons/69388275-lesson-1-create-agent diff --git a/langchain/env_utils.py b/langchain/env_utils.py new file mode 100644 index 0000000..742d348 --- /dev/null +++ b/langchain/env_utils.py @@ -0,0 +1,134 @@ +# env_utils.py +import os +from dotenv import dotenv_values + +def summarize_value(value: str) -> str: + """Return masked form: ****last4 or boolean string.""" + lower = value.lower() + if lower in ("true", "false"): + return lower + return "****" + value[-4:] if len(value) > 4 else "****" + value + +def doublecheck_env(file_path: str): + """Check environment variables against a .env file and print summaries.""" + if not os.path.exists(file_path): + print(f"Did not find file {file_path}.") + print("This is used to double check the key settings for the notebook.") + print("This is just a check and is not required.\n") + return + + parsed = dotenv_values(file_path) + for key in parsed.keys(): + current = os.getenv(key) + if current is not None: + print(f"{key}={summarize_value(current)}") + else: + print(f"{key}=") + + + + +# ========== utility to check packages and python based on pyproject.toml ===================================== + +# Requires: pip install packaging +import sys, tomllib +from pathlib import Path +from importlib import metadata +from packaging.requirements import Requirement +from packaging.specifiers import SpecifierSet +from packaging.version import Version + +def _fmt_row(cols, widths): + return " | ".join(str(c).ljust(w) for c, w in zip(cols, widths)) + +def doublecheck_pkgs(pyproject_path="pyproject.toml", verbose=False): + p = Path(pyproject_path) + if not p.exists(): + print(f"ERROR: {pyproject_path} not found.") + return None + + # Load pyproject + python requirement + with p.open("rb") as f: + data = tomllib.load(f) + project = data.get("project", {}) + python_spec_str = project.get("requires-python") or ">=3.11" + + py_ver = Version(f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}") + py_ok = py_ver in SpecifierSet(python_spec_str) + + # Load deps (PEP 621) + deps = project.get("dependencies", []) + if not deps: + if verbose or not py_ok: + print("No [project].dependencies found in pyproject.toml.") + print(f"Python {py_ver} {'satisfies' if py_ok else 'DOES NOT satisfy'} requires-python: {python_spec_str}") + print(f"Executable: {sys.executable}") + return None + + # Evaluate deps + results = [] + problems = [] + for dep in deps: + try: + req = Requirement(dep) + name = req.name + spec = str(req.specifier) if req.specifier else "(any)" + except Exception: + name, spec = dep, "(unparsed)" + + rec = {"package": name, "required": spec, "installed": "-", "path": "-", "status": "❌ Missing"} + + try: + installed_ver = metadata.version(name) + rec["installed"] = installed_ver + try: + dist = metadata.distribution(name) + rec["path"] = str(dist.locate_file("")) + except Exception: + rec["path"] = "(unknown)" + + if spec not in ("(any)", "(unparsed)") and any(op in spec for op in "<>="): + sset = SpecifierSet(spec) + if Version(installed_ver) in sset: + rec["status"] = "✅ OK" + else: + rec["status"] = "⚠️ Version mismatch" + else: + rec["status"] = "✅ OK" + + except metadata.PackageNotFoundError: + # keep defaults: installed "-", status "❌ Missing" + pass + + results.append(rec) + if rec["status"] != "✅ OK": + problems.append(rec) + + should_print = verbose or (not py_ok) or bool(problems) + if should_print: + # Python status + print(f"Python {py_ver} {'satisfies' if py_ok else 'DOES NOT satisfy'} requires-python: {python_spec_str}") + + # Table (no hints column) + headers = ["package", "required", "installed", "status", "path"] + def short_path(s, maxlen=80): + s = str(s) + return s if len(s) <= maxlen else ("…" + s[-(maxlen-1):]) + rows = [[r["package"], r["required"], r["installed"], r["status"], short_path(r["path"])] for r in results] + widths = [max(len(h), *(len(str(row[i])) for row in rows)) for i, h in enumerate(headers)] + print(_fmt_row(headers, widths)) + print(_fmt_row(["-"*w for w in widths], widths)) + for row in rows: + print(_fmt_row(row, widths)) + + # Summarize issues without prescribing a tool + if problems: + print("\nIssues detected:") + for r in problems: + print(f"- {r['package']}: {r['status']} (required {r['required']}, installed {r['installed']}, path {r['path']})") + + if verbose or problems or not py_ok: + print("\nEnvironment:") + print(f"- Executable: {sys.executable}") + + return None diff --git a/langchain/my_L1_fast_agent.ipynb b/langchain/my_L1_fast_agent.ipynb new file mode 100644 index 0000000..2680c77 --- /dev/null +++ b/langchain/my_L1_fast_agent.ipynb @@ -0,0 +1,415 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "35e59623-ae71-4947-864b-4a750a2fa883", + "metadata": {}, + "source": [ + "# Fast Agent - Build a SQL Agent fast!\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "b0915e23-8230-4f65-9db6-4d60e9970021", + "metadata": {}, + "source": [ + "## Setup" + ] + }, + { + "cell_type": "markdown", + "id": "a6aa0345-502c-4484-b8cd-b32cde59872a", + "metadata": {}, + "source": [ + "Load and/or check for needed environmental variables" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "52e8812d-a873-494d-8583-ee742dcdd9e7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "OPENAI_API_KEY=****23oA\n", + "GPT_NANO=****nano\n", + "LANGSMITH_API_KEY=****a636\n", + "LANGSMITH_TRACING=true\n", + "LANGSMITH_PROJECT=****ials\n", + "GEMINI_API_KEY=****FD8k\n", + "Python 3.12.8 satisfies requires-python: >=3.11,<3.14\n", + "package | required | installed | status | path \n", + "---------------------- | -------- | --------- | ------ | --------------------------------------------------------------------------------\n", + "langgraph | >=1.0.0 | 1.0.1 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langchain | >=1.0.0 | 1.0.2 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langchain-core | >=1.0.0 | 1.0.1 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langchain-openai | >=1.0.0 | 1.0.1 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langchain-anthropic | >=1.0.0 | 1.0.0 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langchain-community | >=0.4 | 0.4.1 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "jupyter | >=1.0.0 | 1.1.1 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langgraph-cli | >=0.4.0 | 0.4.4 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "langchain-mcp-adapters | (any) | 0.1.11 | ✅ OK | …essentials/lca-langchainV1-essentials/python/.venv/lib/python3.12/site-packages\n", + "\n", + "Environment:\n", + "- Executable: /Users/afiz/learn/x/langchain_essentials/lca-langchainV1-essentials/python/.venv/bin/python\n" + ] + } + ], + "source": [ + "from dotenv import load_dotenv\n", + "from env_utils import doublecheck_env, doublecheck_pkgs\n", + "\n", + "# Load environment variables from .env\n", + "load_dotenv()\n", + "\n", + "# Check and print results\n", + "doublecheck_env(\".env\") # check environmental variables\n", + "doublecheck_pkgs(pyproject_path=\"pyproject.toml\", verbose=True) # check packages" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "1ba24dd6-7a31-4fba-8077-2bff96e1ed4a", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_community.utilities import SQLDatabase\n", + "\n", + "db = SQLDatabase.from_uri(\"sqlite:///Chinook.db\")" + ] + }, + { + "cell_type": "markdown", + "id": "ae0d70a9-e4c2-4d34-9492-c61ca8e03a49", + "metadata": {}, + "source": [ + "Define the runtime context to provide the agent and tools with access to the database." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "b49e1986-f13b-45da-b673-5c1a7d801f0a", + "metadata": {}, + "outputs": [], + "source": [ + "from dataclasses import dataclass\n", + "\n", + "from langchain_community.utilities import SQLDatabase\n", + "\n", + "\n", + "# define context structure to support dependency injection\n", + "@dataclass\n", + "class RuntimeContext:\n", + " db: SQLDatabase" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "5d7f0b2c-200a-4246-b547-aff9b5185562", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_core.tools import tool\n", + "from langgraph.runtime import get_runtime\n", + "\n", + "@tool\n", + "def execute_sql(query: str) -> str:\n", + " \"\"\"Execute a SQLite command and return results.\"\"\"\n", + " runtime = get_runtime(RuntimeContext)\n", + " db = runtime.context.db\n", + "\n", + " try:\n", + " return db.run(query)\n", + " except Exception as e:\n", + " return f\"Error: {e}\"" + ] + }, + { + "cell_type": "markdown", + "id": "f840a84a-c131-490d-80b6-75db5b341880", + "metadata": {}, + "source": [ + "Add a system prompt to define your agents behavior." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "29e1c020-db18-418a-8693-cb4ed21d4f58", + "metadata": {}, + "outputs": [], + "source": [ + "SYSTEM_PROMPT = \"\"\"You are a careful SQLite analyst.\n", + "\n", + "Rules:\n", + "- Think step-by-step.\n", + "- When you need data, call the tool `execute_sql` with ONE SELECT query.\n", + "- Read-only only; no INSERT/UPDATE/DELETE/ALTER/DROP/CREATE/REPLACE/TRUNCATE.\n", + "- Limit to 5 rows of output unless the user explicitly asks otherwise.\n", + "- If the tool returns 'Error:', revise the SQL and try again.\n", + "- Prefer explicit column lists; avoid SELECT *.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "c2aad1bb-d3bb-4ecc-b366-d6cb488388c6", + "metadata": {}, + "source": [ + "Create your agent! Add a model, tools, a prompt, and the runtime access, and go! You can choose many agents from our [integrations](https://docs.langchain.com/oss/python/integrations/providers) list. " + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "a26b4586-453a-4c10-9fae-4be3f4cb6cd4", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.agents import create_agent\n", + "\n", + "agent = create_agent(\n", + " model=\"openai:gpt-5-nano\",\n", + " tools=[execute_sql],\n", + " system_prompt=SYSTEM_PROMPT,\n", + " context_schema=RuntimeContext,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "3b468284-65de-47fa-be31-826b706159e4", + "metadata": {}, + "source": [ + "Here's a display of the agent ReAct Loop." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "8a1ac705-41b8-4a38-b346-c170b61651b8", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import Image, display\n", + "\n", + "display(Image(agent.get_graph(xray=True).draw_mermaid_png()))" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "a48e3902-d3d6-49a0-8f60-b8ba3d1f7400", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Please list all of the tables\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "Tool Calls:\n", + " execute_sql (call_zwkf4dho352acewNf0VDRQNX)\n", + " Call ID: call_zwkf4dho352acewNf0VDRQNX\n", + " Args:\n", + " query: SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' ORDER BY name ASC LIMIT 5;\n", + "=================================\u001b[1m Tool Message \u001b[0m=================================\n", + "Name: execute_sql\n", + "\n", + "[('Album',), ('Artist',), ('Customer',), ('Employee',), ('Genre',)]\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Here are the first 5 tables (excluding SQLite internal tables), in alphabetical order:\n", + "\n", + "- Album\n", + "- Artist\n", + "- Customer\n", + "- Employee\n", + "- Genre\n", + "\n", + "If you’d like me to show all tables (there may be more), say \"show all\" and I’ll fetch the complete list.\n" + ] + } + ], + "source": [ + "question = \"Please list all of the tables\"\n", + "\n", + "for step in agent.stream(\n", + " {\"messages\": question},\n", + " context={\"db\": db},\n", + " stream_mode=\"values\",\n", + "):\n", + " step[\"messages\"][-1].pretty_print()" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "e30a2273-1dd3-47e8-a38e-05ed4b750000", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Which table has the largest number of entries?\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "Tool Calls:\n", + " execute_sql (call_4GyyDJTRgQjlMgCxDgMTSKb4)\n", + " Call ID: call_4GyyDJTRgQjlMgCxDgMTSKb4\n", + " Args:\n", + " query: SELECT name AS table_name\n", + "FROM sqlite_master\n", + "WHERE type='table'\n", + " AND name NOT LIKE 'sqlite_%'\n", + "ORDER BY name ASC\n", + "LIMIT 5;\n", + "=================================\u001b[1m Tool Message \u001b[0m=================================\n", + "Name: execute_sql\n", + "\n", + "[('Album',), ('Artist',), ('Customer',), ('Employee',), ('Genre',)]\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "Tool Calls:\n", + " execute_sql (call_wBN1eh7SfxokOyjuFs1FVNsA)\n", + " Call ID: call_wBN1eh7SfxokOyjuFs1FVNsA\n", + " Args:\n", + " query: SELECT table_name, cnt FROM (\n", + " SELECT 'Album' AS table_name, COUNT(*) AS cnt FROM Album\n", + " UNION ALL\n", + " SELECT 'Artist', COUNT(*) FROM Artist\n", + " UNION ALL\n", + " SELECT 'Customer', COUNT(*) FROM Customer\n", + " UNION ALL\n", + " SELECT 'Employee', COUNT(*) FROM Employee\n", + " UNION ALL\n", + " SELECT 'Genre', COUNT(*) FROM Genre\n", + ") AS counts\n", + "ORDER BY cnt DESC\n", + "LIMIT 1;\n", + "=================================\u001b[1m Tool Message \u001b[0m=================================\n", + "Name: execute_sql\n", + "\n", + "[('Album', 347)]\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "\n", + "Album has the largest number of entries among the considered tables, with 347 rows.\n", + "\n", + "If you want the absolute maximum across all tables in the database (excluding system tables), I can check that next.\n" + ] + } + ], + "source": [ + "question = \"Which table has the largest number of entries?\"\n", + "\n", + "for step in agent.stream(\n", + " {\"messages\": question},\n", + " context=RuntimeContext(db=db),\n", + " stream_mode=\"values\",\n", + "):\n", + " step[\"messages\"][-1].pretty_print()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7797b8f4-3d52-405c-a16e-baa2a71127df", + "metadata": {}, + "outputs": [], + "source": [ + "question = \"Which Genre on average has the longest tracks?\"\n", + "\n", + "for step in agent.stream(\n", + " {\"messages\": question},\n", + " context=RuntimeContext(db=db),\n", + " stream_mode=\"values\",\n", + "):\n", + " step[\"messages\"][-1].pretty_print()" + ] + }, + { + "cell_type": "markdown", + "id": "06a7ea3b-bf5b-4fe0-bb39-a9ff214fb103", + "metadata": {}, + "source": [ + "**Create your own query here!** Add some questions of your own." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c03b7c7a-6f3d-4553-a2af-25652797ec4f", + "metadata": {}, + "outputs": [], + "source": [ + "question = \"TRY YOUR OWN QUERY HERE\"\n", + "\n", + "for step in agent.stream(\n", + " {\"messages\": question},\n", + " context={\"db\": db},\n", + " stream_mode=\"values\",\n", + "):\n", + " step[\"messages\"][-1].pretty_print()" + ] + }, + { + "cell_type": "markdown", + "id": "2a9cc553-7357-4d36-b88d-25eaf7462cf6", + "metadata": {}, + "source": [ + "### Let's try this Studio" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6d644bc-8334-4102-9df7-2a98ab0dc86f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/langchain/pyproject.toml b/langchain/pyproject.toml new file mode 100644 index 0000000..31753c1 --- /dev/null +++ b/langchain/pyproject.toml @@ -0,0 +1,58 @@ +[project] +# Only needed so uv/pip recognizes it as a project +name = "notebooks-to-explore" +version = "0.0.0" +description = "A collection of tutorial notebooks" +requires-python = ">=3.11,<3.14" + +# Dependencies you need in the notebooks +dependencies = [ + "langgraph>=1.0.0", + "langchain>=1.0.0", + "langchain-core>=1.0.0", + "langchain-openai>=1.0.0", + "langchain-anthropic>=1.0.0", + "langchain-community>=0.4", + "jupyter>=1.0.0", + "langgraph-cli[inmem]>=0.4.0", + "langchain-mcp-adapters", +] + +[project.optional-dependencies] +# Extra tools for development +dev = [ + "nbdime>=4.0.2", + "ruff>=0.6.1", + "mypy>=1.11.1" +] + +[tool.ruff] +# What to check +lint.select = [ + "E", # pycodestyle + "F", # pyflakes + "I", # isort + "D", # pydocstyle + "D401", # docstring first line imperative + "UP", # pyupgrade +] + +# Rules to ignore +lint.ignore = [ + "T201", # allow print() + "UP006", # keep using typing.List etc. + "UP007", # allow Union[X, Y] + "UP035", # ignore Self type suggestion + "D417", # don't require param docs + "E501", # ignore line length + "D101", # ignore docstring for these labs + "D103", # ignore docstring for these labs + "D202", # ignore extra space after docstring requirement +] + +[tool.ruff.lint.per-file-ignores] +"tests/*" = ["D", "UP"] + +[tool.ruff.lint.pydocstyle] +convention = "google" + diff --git a/langchain/requirements.txt b/langchain/requirements.txt new file mode 100644 index 0000000..97dc97d --- /dev/null +++ b/langchain/requirements.txt @@ -0,0 +1,8 @@ +langgraph>=1.0.0 +langchain>=1.0.0 +langchain-openai>=1.0.0 +langchain-anthropic>=1.0.0 +langchain-community>=0.4.0 +jupyter>=1.0.0 +langgraph-cli[inmem]>=0.4.0 +langchain-mcp-adapters diff --git a/langchain/uv.lock b/langchain/uv.lock new file mode 100644 index 0000000..4f0cbf0 --- /dev/null +++ b/langchain/uv.lock @@ -0,0 +1,3657 @@ +version = 1 +revision = 2 +requires-python = ">=3.11, <3.14" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/3b83ebba6b3207a7135e5fcaba49706f8a4b6008153b4e30540c982fae26/aiohttp-3.13.2.tar.gz", hash = "sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca", size = 7837994, upload-time = "2025-10-28T20:59:39.937Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/74/b321e7d7ca762638cdf8cdeceb39755d9c745aff7a64c8789be96ddf6e96/aiohttp-3.13.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0", size = 743409, upload-time = "2025-10-28T20:56:00.354Z" }, + { url = "https://files.pythonhosted.org/packages/99/3d/91524b905ec473beaf35158d17f82ef5a38033e5809fe8742e3657cdbb97/aiohttp-3.13.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb", size = 497006, upload-time = "2025-10-28T20:56:01.85Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d3/7f68bc02a67716fe80f063e19adbd80a642e30682ce74071269e17d2dba1/aiohttp-3.13.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9", size = 493195, upload-time = "2025-10-28T20:56:03.314Z" }, + { url = "https://files.pythonhosted.org/packages/98/31/913f774a4708775433b7375c4f867d58ba58ead833af96c8af3621a0d243/aiohttp-3.13.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613", size = 1747759, upload-time = "2025-10-28T20:56:04.904Z" }, + { url = "https://files.pythonhosted.org/packages/e8/63/04efe156f4326f31c7c4a97144f82132c3bb21859b7bb84748d452ccc17c/aiohttp-3.13.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead", size = 1704456, upload-time = "2025-10-28T20:56:06.986Z" }, + { url = "https://files.pythonhosted.org/packages/8e/02/4e16154d8e0a9cf4ae76f692941fd52543bbb148f02f098ca73cab9b1c1b/aiohttp-3.13.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780", size = 1807572, upload-time = "2025-10-28T20:56:08.558Z" }, + { url = "https://files.pythonhosted.org/packages/34/58/b0583defb38689e7f06798f0285b1ffb3a6fb371f38363ce5fd772112724/aiohttp-3.13.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a", size = 1895954, upload-time = "2025-10-28T20:56:10.545Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f3/083907ee3437425b4e376aa58b2c915eb1a33703ec0dc30040f7ae3368c6/aiohttp-3.13.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592", size = 1747092, upload-time = "2025-10-28T20:56:12.118Z" }, + { url = "https://files.pythonhosted.org/packages/ac/61/98a47319b4e425cc134e05e5f3fc512bf9a04bf65aafd9fdcda5d57ec693/aiohttp-3.13.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab", size = 1606815, upload-time = "2025-10-28T20:56:14.191Z" }, + { url = "https://files.pythonhosted.org/packages/97/4b/e78b854d82f66bb974189135d31fce265dee0f5344f64dd0d345158a5973/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30", size = 1723789, upload-time = "2025-10-28T20:56:16.101Z" }, + { url = "https://files.pythonhosted.org/packages/ed/fc/9d2ccc794fc9b9acd1379d625c3a8c64a45508b5091c546dea273a41929e/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40", size = 1718104, upload-time = "2025-10-28T20:56:17.655Z" }, + { url = "https://files.pythonhosted.org/packages/66/65/34564b8765ea5c7d79d23c9113135d1dd3609173da13084830f1507d56cf/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948", size = 1785584, upload-time = "2025-10-28T20:56:19.238Z" }, + { url = "https://files.pythonhosted.org/packages/30/be/f6a7a426e02fc82781afd62016417b3948e2207426d90a0e478790d1c8a4/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf", size = 1595126, upload-time = "2025-10-28T20:56:20.836Z" }, + { url = "https://files.pythonhosted.org/packages/e5/c7/8e22d5d28f94f67d2af496f14a83b3c155d915d1fe53d94b66d425ec5b42/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782", size = 1800665, upload-time = "2025-10-28T20:56:22.922Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/91133c8b68b1da9fc16555706aa7276fdf781ae2bb0876c838dd86b8116e/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8", size = 1739532, upload-time = "2025-10-28T20:56:25.924Z" }, + { url = "https://files.pythonhosted.org/packages/17/6b/3747644d26a998774b21a616016620293ddefa4d63af6286f389aedac844/aiohttp-3.13.2-cp311-cp311-win32.whl", hash = "sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec", size = 431876, upload-time = "2025-10-28T20:56:27.524Z" }, + { url = "https://files.pythonhosted.org/packages/c3/63/688462108c1a00eb9f05765331c107f95ae86f6b197b865d29e930b7e462/aiohttp-3.13.2-cp311-cp311-win_amd64.whl", hash = "sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c", size = 456205, upload-time = "2025-10-28T20:56:29.062Z" }, + { url = "https://files.pythonhosted.org/packages/29/9b/01f00e9856d0a73260e86dd8ed0c2234a466c5c1712ce1c281548df39777/aiohttp-3.13.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b", size = 737623, upload-time = "2025-10-28T20:56:30.797Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1b/4be39c445e2b2bd0aab4ba736deb649fabf14f6757f405f0c9685019b9e9/aiohttp-3.13.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc", size = 492664, upload-time = "2025-10-28T20:56:32.708Z" }, + { url = "https://files.pythonhosted.org/packages/28/66/d35dcfea8050e131cdd731dff36434390479b4045a8d0b9d7111b0a968f1/aiohttp-3.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7", size = 491808, upload-time = "2025-10-28T20:56:34.57Z" }, + { url = "https://files.pythonhosted.org/packages/00/29/8e4609b93e10a853b65f8291e64985de66d4f5848c5637cddc70e98f01f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb", size = 1738863, upload-time = "2025-10-28T20:56:36.377Z" }, + { url = "https://files.pythonhosted.org/packages/9d/fa/4ebdf4adcc0def75ced1a0d2d227577cd7b1b85beb7edad85fcc87693c75/aiohttp-3.13.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3", size = 1700586, upload-time = "2025-10-28T20:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/da/04/73f5f02ff348a3558763ff6abe99c223381b0bace05cd4530a0258e52597/aiohttp-3.13.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f", size = 1768625, upload-time = "2025-10-28T20:56:39.75Z" }, + { url = "https://files.pythonhosted.org/packages/f8/49/a825b79ffec124317265ca7d2344a86bcffeb960743487cb11988ffb3494/aiohttp-3.13.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6", size = 1867281, upload-time = "2025-10-28T20:56:41.471Z" }, + { url = "https://files.pythonhosted.org/packages/b9/48/adf56e05f81eac31edcfae45c90928f4ad50ef2e3ea72cb8376162a368f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e", size = 1752431, upload-time = "2025-10-28T20:56:43.162Z" }, + { url = "https://files.pythonhosted.org/packages/30/ab/593855356eead019a74e862f21523db09c27f12fd24af72dbc3555b9bfd9/aiohttp-3.13.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7", size = 1562846, upload-time = "2025-10-28T20:56:44.85Z" }, + { url = "https://files.pythonhosted.org/packages/39/0f/9f3d32271aa8dc35036e9668e31870a9d3b9542dd6b3e2c8a30931cb27ae/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d", size = 1699606, upload-time = "2025-10-28T20:56:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3c/52d2658c5699b6ef7692a3f7128b2d2d4d9775f2a68093f74bca06cf01e1/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b", size = 1720663, upload-time = "2025-10-28T20:56:48.528Z" }, + { url = "https://files.pythonhosted.org/packages/9b/d4/8f8f3ff1fb7fb9e3f04fcad4e89d8a1cd8fc7d05de67e3de5b15b33008ff/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8", size = 1737939, upload-time = "2025-10-28T20:56:50.77Z" }, + { url = "https://files.pythonhosted.org/packages/03/d3/ddd348f8a27a634daae39a1b8e291ff19c77867af438af844bf8b7e3231b/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16", size = 1555132, upload-time = "2025-10-28T20:56:52.568Z" }, + { url = "https://files.pythonhosted.org/packages/39/b8/46790692dc46218406f94374903ba47552f2f9f90dad554eed61bfb7b64c/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169", size = 1764802, upload-time = "2025-10-28T20:56:54.292Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e4/19ce547b58ab2a385e5f0b8aa3db38674785085abcf79b6e0edd1632b12f/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248", size = 1719512, upload-time = "2025-10-28T20:56:56.428Z" }, + { url = "https://files.pythonhosted.org/packages/70/30/6355a737fed29dcb6dfdd48682d5790cb5eab050f7b4e01f49b121d3acad/aiohttp-3.13.2-cp312-cp312-win32.whl", hash = "sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e", size = 426690, upload-time = "2025-10-28T20:56:58.736Z" }, + { url = "https://files.pythonhosted.org/packages/0a/0d/b10ac09069973d112de6ef980c1f6bb31cb7dcd0bc363acbdad58f927873/aiohttp-3.13.2-cp312-cp312-win_amd64.whl", hash = "sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45", size = 453465, upload-time = "2025-10-28T20:57:00.795Z" }, + { url = "https://files.pythonhosted.org/packages/bf/78/7e90ca79e5aa39f9694dcfd74f4720782d3c6828113bb1f3197f7e7c4a56/aiohttp-3.13.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be", size = 732139, upload-time = "2025-10-28T20:57:02.455Z" }, + { url = "https://files.pythonhosted.org/packages/db/ed/1f59215ab6853fbaa5c8495fa6cbc39edfc93553426152b75d82a5f32b76/aiohttp-3.13.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742", size = 490082, upload-time = "2025-10-28T20:57:04.784Z" }, + { url = "https://files.pythonhosted.org/packages/68/7b/fe0fe0f5e05e13629d893c760465173a15ad0039c0a5b0d0040995c8075e/aiohttp-3.13.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293", size = 489035, upload-time = "2025-10-28T20:57:06.894Z" }, + { url = "https://files.pythonhosted.org/packages/d2/04/db5279e38471b7ac801d7d36a57d1230feeee130bbe2a74f72731b23c2b1/aiohttp-3.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811", size = 1720387, upload-time = "2025-10-28T20:57:08.685Z" }, + { url = "https://files.pythonhosted.org/packages/31/07/8ea4326bd7dae2bd59828f69d7fdc6e04523caa55e4a70f4a8725a7e4ed2/aiohttp-3.13.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a", size = 1688314, upload-time = "2025-10-28T20:57:10.693Z" }, + { url = "https://files.pythonhosted.org/packages/48/ab/3d98007b5b87ffd519d065225438cc3b668b2f245572a8cb53da5dd2b1bc/aiohttp-3.13.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4", size = 1756317, upload-time = "2025-10-28T20:57:12.563Z" }, + { url = "https://files.pythonhosted.org/packages/97/3d/801ca172b3d857fafb7b50c7c03f91b72b867a13abca982ed6b3081774ef/aiohttp-3.13.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a", size = 1858539, upload-time = "2025-10-28T20:57:14.623Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0d/4764669bdf47bd472899b3d3db91fffbe925c8e3038ec591a2fd2ad6a14d/aiohttp-3.13.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e", size = 1739597, upload-time = "2025-10-28T20:57:16.399Z" }, + { url = "https://files.pythonhosted.org/packages/c4/52/7bd3c6693da58ba16e657eb904a5b6decfc48ecd06e9ac098591653b1566/aiohttp-3.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb", size = 1555006, upload-time = "2025-10-28T20:57:18.288Z" }, + { url = "https://files.pythonhosted.org/packages/48/30/9586667acec5993b6f41d2ebcf96e97a1255a85f62f3c653110a5de4d346/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded", size = 1683220, upload-time = "2025-10-28T20:57:20.241Z" }, + { url = "https://files.pythonhosted.org/packages/71/01/3afe4c96854cfd7b30d78333852e8e851dceaec1c40fd00fec90c6402dd2/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b", size = 1712570, upload-time = "2025-10-28T20:57:22.253Z" }, + { url = "https://files.pythonhosted.org/packages/11/2c/22799d8e720f4697a9e66fd9c02479e40a49de3de2f0bbe7f9f78a987808/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8", size = 1733407, upload-time = "2025-10-28T20:57:24.37Z" }, + { url = "https://files.pythonhosted.org/packages/34/cb/90f15dd029f07cebbd91f8238a8b363978b530cd128488085b5703683594/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04", size = 1550093, upload-time = "2025-10-28T20:57:26.257Z" }, + { url = "https://files.pythonhosted.org/packages/69/46/12dce9be9d3303ecbf4d30ad45a7683dc63d90733c2d9fe512be6716cd40/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476", size = 1758084, upload-time = "2025-10-28T20:57:28.349Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/0932b558da0c302ffd639fc6362a313b98fdf235dc417bc2493da8394df7/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23", size = 1716987, upload-time = "2025-10-28T20:57:30.233Z" }, + { url = "https://files.pythonhosted.org/packages/5d/8b/f5bd1a75003daed099baec373aed678f2e9b34f2ad40d85baa1368556396/aiohttp-3.13.2-cp313-cp313-win32.whl", hash = "sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254", size = 425859, upload-time = "2025-10-28T20:57:32.105Z" }, + { url = "https://files.pythonhosted.org/packages/5d/28/a8a9fc6957b2cee8902414e41816b5ab5536ecf43c3b1843c10e82c559b2/aiohttp-3.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a", size = 452192, upload-time = "2025-10-28T20:57:34.166Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anthropic" +version = "0.72.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "docstring-parser" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/07/61f3ca8e69c5dcdaec31b36b79a53ea21c5b4ca5e93c7df58c71f43bf8d8/anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a", size = 493721, upload-time = "2025-10-28T19:13:01.755Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/b7/160d4fb30080395b4143f1d1a4f6c646ba9105561108d2a434b606c03579/anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d", size = 357464, upload-time = "2025-10-28T19:13:00.215Z" }, +] + +[[package]] +name = "anyio" +version = "4.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094, upload-time = "2025-09-23T09:19:12.58Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/b3/9b1a8074496371342ec1e796a96f99c82c945a339cd81a8e73de28b4cf9e/anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc", size = 109097, upload-time = "2025-09-23T09:19:10.601Z" }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "argon2-cffi" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "argon2-cffi-bindings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/89/ce5af8a7d472a67cc819d5d998aa8c82c5d860608c4db9f46f1162d7dab9/argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1", size = 45706, upload-time = "2025-06-03T06:55:32.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741", size = 14657, upload-time = "2025-06-03T06:55:30.804Z" }, +] + +[[package]] +name = "argon2-cffi-bindings" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/2d/db8af0df73c1cf454f71b2bbe5e356b8c1f8041c979f505b3d3186e520a9/argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d", size = 1783441, upload-time = "2025-07-30T10:02:05.147Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/57/96b8b9f93166147826da5f90376e784a10582dd39a393c99bb62cfcf52f0/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:aecba1723ae35330a008418a91ea6cfcedf6d31e5fbaa056a166462ff066d500", size = 54121, upload-time = "2025-07-30T10:01:50.815Z" }, + { url = "https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2630b6240b495dfab90aebe159ff784d08ea999aa4b0d17efa734055a07d2f44", size = 29177, upload-time = "2025-07-30T10:01:51.681Z" }, + { url = "https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:7aef0c91e2c0fbca6fc68e7555aa60ef7008a739cbe045541e438373bc54d2b0", size = 31090, upload-time = "2025-07-30T10:01:53.184Z" }, + { url = "https://files.pythonhosted.org/packages/c1/93/44365f3d75053e53893ec6d733e4a5e3147502663554b4d864587c7828a7/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e021e87faa76ae0d413b619fe2b65ab9a037f24c60a1e6cc43457ae20de6dc6", size = 81246, upload-time = "2025-07-30T10:01:54.145Z" }, + { url = "https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e924cfc503018a714f94a49a149fdc0b644eaead5d1f089330399134fa028a", size = 87126, upload-time = "2025-07-30T10:01:55.074Z" }, + { url = "https://files.pythonhosted.org/packages/72/70/7a2993a12b0ffa2a9271259b79cc616e2389ed1a4d93842fac5a1f923ffd/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87b72589133f0346a1cb8d5ecca4b933e3c9b64656c9d175270a000e73b288d", size = 80343, upload-time = "2025-07-30T10:01:56.007Z" }, + { url = "https://files.pythonhosted.org/packages/78/9a/4e5157d893ffc712b74dbd868c7f62365618266982b64accab26bab01edc/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1db89609c06afa1a214a69a462ea741cf735b29a57530478c06eb81dd403de99", size = 86777, upload-time = "2025-07-30T10:01:56.943Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/15777dfde1c29d96de7f18edf4cc94c385646852e7c7b0320aa91ccca583/argon2_cffi_bindings-25.1.0-cp39-abi3-win32.whl", hash = "sha256:473bcb5f82924b1becbb637b63303ec8d10e84c8d241119419897a26116515d2", size = 27180, upload-time = "2025-07-30T10:01:57.759Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c6/a759ece8f1829d1f162261226fbfd2c6832b3ff7657384045286d2afa384/argon2_cffi_bindings-25.1.0-cp39-abi3-win_amd64.whl", hash = "sha256:a98cd7d17e9f7ce244c0803cad3c23a7d379c301ba618a5fa76a67d116618b98", size = 31715, upload-time = "2025-07-30T10:01:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/42/b9/f8d6fa329ab25128b7e98fd83a3cb34d9db5b059a9847eddb840a0af45dd/argon2_cffi_bindings-25.1.0-cp39-abi3-win_arm64.whl", hash = "sha256:b0fdbcf513833809c882823f98dc2f931cf659d9a1429616ac3adebb49f5db94", size = 27149, upload-time = "2025-07-30T10:01:59.329Z" }, +] + +[[package]] +name = "arrow" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload-time = "2025-10-18T17:46:46.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload-time = "2025-10-18T17:46:45.663Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978, upload-time = "2024-11-30T04:30:14.439Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, +] + +[[package]] +name = "async-lru" +version = "2.0.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/4d/71ec4d3939dc755264f680f6c2b4906423a304c3d18e96853f0a595dfe97/async_lru-2.0.5.tar.gz", hash = "sha256:481d52ccdd27275f42c43a928b4a50c3bfb2d67af4e78b170e3e0bb39c66e5bb", size = 10380, upload-time = "2025-03-16T17:25:36.919Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/49/d10027df9fce941cb8184e78a02857af36360d33e1721df81c5ed2179a1a/async_lru-2.0.5-py3-none-any.whl", hash = "sha256:ab95404d8d2605310d345932697371a5f40def0487c03d6d0ad9138de52c9943", size = 6069, upload-time = "2025-03-16T17:25:35.422Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "babel" +version = "2.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/e9/df2358efd7659577435e2177bfa69cba6c33216681af51a707193dec162a/beautifulsoup4-4.14.2.tar.gz", hash = "sha256:2a98ab9f944a11acee9cc848508ec28d9228abfd522ef0fad6a02a72e0ded69e", size = 625822, upload-time = "2025-09-29T10:05:42.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/fe/3aed5d0be4d404d12d36ab97e2f1791424d9ca39c2f754a6285d59a3b01d/beautifulsoup4-4.14.2-py3-none-any.whl", hash = "sha256:5ef6fa3a8cbece8488d66985560f97ed091e22bbc4e9c2338508a9d5de6d4515", size = 106392, upload-time = "2025-09-29T10:05:43.771Z" }, +] + +[[package]] +name = "bleach" +version = "6.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/18/3c8523962314be6bf4c8989c79ad9531c825210dd13a8669f6b84336e8bd/bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22", size = 203533, upload-time = "2025-10-27T17:57:39.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6", size = 164437, upload-time = "2025-10-27T17:57:37.538Z" }, +] + +[package.optional-dependencies] +css = [ + { name = "tinycss2" }, +] + +[[package]] +name = "blockbuster" +version = "1.5.25" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "forbiddenfruit", marker = "implementation_name == 'cpython'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/bc/57c49465decaeeedd58ce2d970b4cdfd93a74ba9993abff2dc498a31c283/blockbuster-1.5.25.tar.gz", hash = "sha256:b72f1d2aefdeecd2a820ddf1e1c8593bf00b96e9fdc4cd2199ebafd06f7cb8f0", size = 36058, upload-time = "2025-07-14T16:00:20.766Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/01/dccc277c014f171f61a6047bb22c684e16c7f2db6bb5c8cce1feaf41ec55/blockbuster-1.5.25-py3-none-any.whl", hash = "sha256:cb06229762273e0f5f3accdaed3d2c5a3b61b055e38843de202311ede21bb0f5", size = 13196, upload-time = "2025-07-14T16:00:19.396Z" }, +] + +[[package]] +name = "certifi" +version = "2025.10.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/5b/b6ce21586237c77ce67d01dc5507039d444b630dd76611bbca2d8e5dcd91/certifi-2025.10.5.tar.gz", hash = "sha256:47c09d31ccf2acf0be3f701ea53595ee7e0b8fa08801c6624be771df09ae7b43", size = 164519, upload-time = "2025-10-05T04:12:15.808Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/37/af0d2ef3967ac0d6113837b44a4f0bfe1328c2b9763bd5b1744520e5cfed/certifi-2025.10.5-py3-none-any.whl", hash = "sha256:0f212c2744a9bb6de0c56639a6f68afe01ecd92d91f14ae897c4fe7bbeeef0de", size = 163286, upload-time = "2025-10-05T04:12:14.03Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "click" +version = "8.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/61/de6cd827efad202d7057d93e0fed9294b96952e188f7384832791c7b2254/click-8.3.0.tar.gz", hash = "sha256:e7b8232224eba16f4ebe410c25ced9f7875cb5f3263ffc93cc3e8da705e229c4", size = 276943, upload-time = "2025-09-18T17:32:23.696Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl", hash = "sha256:9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc", size = 107295, upload-time = "2025-09-18T17:32:22.42Z" }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/39/069100b84d7418bc358d81669d5748efb14b9cceacd2f9c75f550424132f/cloudpickle-3.1.1.tar.gz", hash = "sha256:b216fa8ae4019d5482a8ac3c95d8f6346115d8835911fd4aefd1a445e4242c64", size = 22113, upload-time = "2025-01-14T17:02:05.085Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/e8/64c37fadfc2816a7701fa8a6ed8d87327c7d54eacfbfb6edab14a2f2be75/cloudpickle-3.1.1-py3-none-any.whl", hash = "sha256:c8c5a44295039331ee9dad40ba100a9c7297b6f988e50e87ccdf3765a668350e", size = 20992, upload-time = "2025-01-14T17:02:02.417Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "cryptography" +version = "44.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload-time = "2025-05-02T19:36:04.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload-time = "2025-05-02T19:34:50.665Z" }, + { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload-time = "2025-05-02T19:34:53.042Z" }, + { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload-time = "2025-05-02T19:34:54.675Z" }, + { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload-time = "2025-05-02T19:34:56.61Z" }, + { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload-time = "2025-05-02T19:34:58.591Z" }, + { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload-time = "2025-05-02T19:35:00.988Z" }, + { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload-time = "2025-05-02T19:35:03.091Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload-time = "2025-05-02T19:35:05.018Z" }, + { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload-time = "2025-05-02T19:35:07.187Z" }, + { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload-time = "2025-05-02T19:35:08.879Z" }, + { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload-time = "2025-05-02T19:35:10.41Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload-time = "2025-05-02T19:35:12.12Z" }, + { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload-time = "2025-05-02T19:35:13.775Z" }, + { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload-time = "2025-05-02T19:35:15.917Z" }, + { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload-time = "2025-05-02T19:35:18.138Z" }, + { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload-time = "2025-05-02T19:35:19.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload-time = "2025-05-02T19:35:21.449Z" }, + { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload-time = "2025-05-02T19:35:23.187Z" }, + { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload-time = "2025-05-02T19:35:25.426Z" }, + { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload-time = "2025-05-02T19:35:27.678Z" }, + { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload-time = "2025-05-02T19:35:29.312Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload-time = "2025-05-02T19:35:31.547Z" }, + { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload-time = "2025-05-02T19:35:33.805Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload-time = "2025-05-02T19:35:35.369Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4b/c11ad0b6c061902de5223892d680e89c06c7c4d606305eb8de56c5427ae6/cryptography-44.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:896530bc9107b226f265effa7ef3f21270f18a2026bc09fed1ebd7b66ddf6375", size = 3390230, upload-time = "2025-05-02T19:35:49.062Z" }, + { url = "https://files.pythonhosted.org/packages/58/11/0a6bf45d53b9b2290ea3cec30e78b78e6ca29dc101e2e296872a0ffe1335/cryptography-44.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9b4d4a5dbee05a2c390bf212e78b99434efec37b17a4bff42f50285c5c8c9647", size = 3895216, upload-time = "2025-05-02T19:35:51.351Z" }, + { url = "https://files.pythonhosted.org/packages/0a/27/b28cdeb7270e957f0077a2c2bfad1b38f72f1f6d699679f97b816ca33642/cryptography-44.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02f55fb4f8b79c1221b0961488eaae21015b69b210e18c386b69de182ebb1259", size = 4115044, upload-time = "2025-05-02T19:35:53.044Z" }, + { url = "https://files.pythonhosted.org/packages/35/b0/ec4082d3793f03cb248881fecefc26015813199b88f33e3e990a43f79835/cryptography-44.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:dd3db61b8fe5be220eee484a17233287d0be6932d056cf5738225b9c05ef4fff", size = 3898034, upload-time = "2025-05-02T19:35:54.72Z" }, + { url = "https://files.pythonhosted.org/packages/0b/7f/adf62e0b8e8d04d50c9a91282a57628c00c54d4ae75e2b02a223bd1f2613/cryptography-44.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:978631ec51a6bbc0b7e58f23b68a8ce9e5f09721940933e9c217068388789fe5", size = 4114449, upload-time = "2025-05-02T19:35:57.139Z" }, + { url = "https://files.pythonhosted.org/packages/87/62/d69eb4a8ee231f4bf733a92caf9da13f1c81a44e874b1d4080c25ecbb723/cryptography-44.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:5d20cc348cca3a8aa7312f42ab953a56e15323800ca3ab0706b8cd452a3a056c", size = 3134369, upload-time = "2025-05-02T19:35:58.907Z" }, +] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "marshmallow" }, + { name = "typing-inspect" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0", size = 32227, upload-time = "2024-06-09T16:20:19.103Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686, upload-time = "2024-06-09T16:20:16.715Z" }, +] + +[[package]] +name = "debugpy" +version = "1.8.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/ad/71e708ff4ca377c4230530d6a7aa7992592648c122a2cd2b321cf8b35a76/debugpy-1.8.17.tar.gz", hash = "sha256:fd723b47a8c08892b1a16b2c6239a8b96637c62a59b94bb5dab4bac592a58a8e", size = 1644129, upload-time = "2025-09-17T16:33:20.633Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d8/53/3af72b5c159278c4a0cf4cffa518675a0e73bdb7d1cac0239b815502d2ce/debugpy-1.8.17-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:d3fce3f0e3de262a3b67e69916d001f3e767661c6e1ee42553009d445d1cd840", size = 2207154, upload-time = "2025-09-17T16:33:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/8f/6d/204f407df45600e2245b4a39860ed4ba32552330a0b3f5f160ae4cc30072/debugpy-1.8.17-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:c6bdf134457ae0cac6fb68205776be635d31174eeac9541e1d0c062165c6461f", size = 3170322, upload-time = "2025-09-17T16:33:30.837Z" }, + { url = "https://files.pythonhosted.org/packages/f2/13/1b8f87d39cf83c6b713de2620c31205299e6065622e7dd37aff4808dd410/debugpy-1.8.17-cp311-cp311-win32.whl", hash = "sha256:e79a195f9e059edfe5d8bf6f3749b2599452d3e9380484cd261f6b7cd2c7c4da", size = 5155078, upload-time = "2025-09-17T16:33:33.331Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c5/c012c60a2922cc91caa9675d0ddfbb14ba59e1e36228355f41cab6483469/debugpy-1.8.17-cp311-cp311-win_amd64.whl", hash = "sha256:b532282ad4eca958b1b2d7dbcb2b7218e02cb934165859b918e3b6ba7772d3f4", size = 5179011, upload-time = "2025-09-17T16:33:35.711Z" }, + { url = "https://files.pythonhosted.org/packages/08/2b/9d8e65beb2751876c82e1aceb32f328c43ec872711fa80257c7674f45650/debugpy-1.8.17-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:f14467edef672195c6f6b8e27ce5005313cb5d03c9239059bc7182b60c176e2d", size = 2549522, upload-time = "2025-09-17T16:33:38.466Z" }, + { url = "https://files.pythonhosted.org/packages/b4/78/eb0d77f02971c05fca0eb7465b18058ba84bd957062f5eec82f941ac792a/debugpy-1.8.17-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:24693179ef9dfa20dca8605905a42b392be56d410c333af82f1c5dff807a64cc", size = 4309417, upload-time = "2025-09-17T16:33:41.299Z" }, + { url = "https://files.pythonhosted.org/packages/37/42/c40f1d8cc1fed1e75ea54298a382395b8b937d923fcf41ab0797a554f555/debugpy-1.8.17-cp312-cp312-win32.whl", hash = "sha256:6a4e9dacf2cbb60d2514ff7b04b4534b0139facbf2abdffe0639ddb6088e59cf", size = 5277130, upload-time = "2025-09-17T16:33:43.554Z" }, + { url = "https://files.pythonhosted.org/packages/72/22/84263b205baad32b81b36eac076de0cdbe09fe2d0637f5b32243dc7c925b/debugpy-1.8.17-cp312-cp312-win_amd64.whl", hash = "sha256:e8f8f61c518952fb15f74a302e068b48d9c4691768ade433e4adeea961993464", size = 5319053, upload-time = "2025-09-17T16:33:53.033Z" }, + { url = "https://files.pythonhosted.org/packages/50/76/597e5cb97d026274ba297af8d89138dfd9e695767ba0e0895edb20963f40/debugpy-1.8.17-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:857c1dd5d70042502aef1c6d1c2801211f3ea7e56f75e9c335f434afb403e464", size = 2538386, upload-time = "2025-09-17T16:33:54.594Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/ce5c34fcdfec493701f9d1532dba95b21b2f6394147234dce21160bd923f/debugpy-1.8.17-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:3bea3b0b12f3946e098cce9b43c3c46e317b567f79570c3f43f0b96d00788088", size = 4292100, upload-time = "2025-09-17T16:33:56.353Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/7873cf2146577ef71d2a20bf553f12df865922a6f87b9e8ee1df04f01785/debugpy-1.8.17-cp313-cp313-win32.whl", hash = "sha256:e34ee844c2f17b18556b5bbe59e1e2ff4e86a00282d2a46edab73fd7f18f4a83", size = 5277002, upload-time = "2025-09-17T16:33:58.231Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/18c79a1cee5ff539a94ec4aa290c1c069a5580fd5cfd2fb2e282f8e905da/debugpy-1.8.17-cp313-cp313-win_amd64.whl", hash = "sha256:6c5cd6f009ad4fca8e33e5238210dc1e5f42db07d4b6ab21ac7ffa904a196420", size = 5319047, upload-time = "2025-09-17T16:34:00.586Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d0/89247ec250369fc76db477720a26b2fce7ba079ff1380e4ab4529d2fe233/debugpy-1.8.17-py2.py3-none-any.whl", hash = "sha256:60c7dca6571efe660ccb7a9508d73ca14b8796c4ed484c2002abba714226cfef", size = 5283210, upload-time = "2025-09-17T16:34:25.835Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, +] + +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "forbiddenfruit" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/79/d4f20e91327c98096d605646bdc6a5ffedae820f38d378d3515c42ec5e60/forbiddenfruit-0.1.4.tar.gz", hash = "sha256:e3f7e66561a29ae129aac139a85d610dbf3dd896128187ed5454b6421f624253", size = 43756, upload-time = "2021-01-16T21:03:35.401Z" } + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload-time = "2021-03-11T07:16:29.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload-time = "2021-03-11T07:16:28.351Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" }, + { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" }, + { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" }, + { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" }, + { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.45" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.71.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/43/b25abe02db2911397819003029bef768f68a974f2ece483e6084d1a5f754/googleapis_common_protos-1.71.0.tar.gz", hash = "sha256:1aec01e574e29da63c80ba9f7bbf1ccfaacf1da877f23609fe236ca7c72a2e2e", size = 146454, upload-time = "2025-10-20T14:58:08.732Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/e8/eba9fece11d57a71e3e22ea672742c8f3cf23b35730c9e96db768b295216/googleapis_common_protos-1.71.0-py3-none-any.whl", hash = "sha256:59034a1d849dc4d18971997a72ac56246570afdd17f9369a0ff68218d50ab78c", size = 294576, upload-time = "2025-10-20T14:56:21.295Z" }, +] + +[[package]] +name = "greenlet" +version = "3.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/de/f28ced0a67749cac23fecb02b694f6473f47686dff6afaa211d186e2ef9c/greenlet-3.2.4-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:96378df1de302bc38e99c3a9aa311967b7dc80ced1dcc6f171e99842987882a2", size = 272305, upload-time = "2025-08-07T13:15:41.288Z" }, + { url = "https://files.pythonhosted.org/packages/09/16/2c3792cba130000bf2a31c5272999113f4764fd9d874fb257ff588ac779a/greenlet-3.2.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1ee8fae0519a337f2329cb78bd7a8e128ec0f881073d43f023c7b8d4831d5246", size = 632472, upload-time = "2025-08-07T13:42:55.044Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/95d48d7e3d433e6dae5b1682e4292242a53f22df82e6d3dda81b1701a960/greenlet-3.2.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:94abf90142c2a18151632371140b3dba4dee031633fe614cb592dbb6c9e17bc3", size = 644646, upload-time = "2025-08-07T13:45:26.523Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5e/405965351aef8c76b8ef7ad370e5da58d57ef6068df197548b015464001a/greenlet-3.2.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:4d1378601b85e2e5171b99be8d2dc85f594c79967599328f95c1dc1a40f1c633", size = 640519, upload-time = "2025-08-07T13:53:13.928Z" }, + { url = "https://files.pythonhosted.org/packages/25/5d/382753b52006ce0218297ec1b628e048c4e64b155379331f25a7316eb749/greenlet-3.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0db5594dce18db94f7d1650d7489909b57afde4c580806b8d9203b6e79cdc079", size = 639707, upload-time = "2025-08-07T13:18:27.146Z" }, + { url = "https://files.pythonhosted.org/packages/1f/8e/abdd3f14d735b2929290a018ecf133c901be4874b858dd1c604b9319f064/greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2523e5246274f54fdadbce8494458a2ebdcdbc7b802318466ac5606d3cded1f8", size = 587684, upload-time = "2025-08-07T13:18:25.164Z" }, + { url = "https://files.pythonhosted.org/packages/5d/65/deb2a69c3e5996439b0176f6651e0052542bb6c8f8ec2e3fba97c9768805/greenlet-3.2.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1987de92fec508535687fb807a5cea1560f6196285a4cde35c100b8cd632cc52", size = 1116647, upload-time = "2025-08-07T13:42:38.655Z" }, + { url = "https://files.pythonhosted.org/packages/3f/cc/b07000438a29ac5cfb2194bfc128151d52f333cee74dd7dfe3fb733fc16c/greenlet-3.2.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:55e9c5affaa6775e2c6b67659f3a71684de4c549b3dd9afca3bc773533d284fa", size = 1142073, upload-time = "2025-08-07T13:18:21.737Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0f/30aef242fcab550b0b3520b8e3561156857c94288f0332a79928c31a52cf/greenlet-3.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:9c40adce87eaa9ddb593ccb0fa6a07caf34015a29bf8d344811665b573138db9", size = 299100, upload-time = "2025-08-07T13:44:12.287Z" }, + { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" }, + { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" }, + { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" }, + { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" }, + { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" }, + { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, + { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" }, + { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" }, + { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, + { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191, upload-time = "2025-08-07T13:45:29.752Z" }, + { url = "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", size = 649516, upload-time = "2025-08-07T13:53:16.314Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", size = 652169, upload-time = "2025-08-07T13:18:32.861Z" }, + { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, + { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, + { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210, upload-time = "2025-08-07T13:18:24.072Z" }, + { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685, upload-time = "2025-08-07T13:24:38.824Z" }, +] + +[[package]] +name = "grpcio" +version = "1.76.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b6/e0/318c1ce3ae5a17894d5791e87aea147587c9e702f24122cc7a5c8bbaeeb1/grpcio-1.76.0.tar.gz", hash = "sha256:7be78388d6da1a25c0d5ec506523db58b18be22d9c37d8d3a32c08be4987bd73", size = 12785182, upload-time = "2025-10-21T16:23:12.106Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/00/8163a1beeb6971f66b4bbe6ac9457b97948beba8dd2fc8e1281dce7f79ec/grpcio-1.76.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2e1743fbd7f5fa713a1b0a8ac8ebabf0ec980b5d8809ec358d488e273b9cf02a", size = 5843567, upload-time = "2025-10-21T16:20:52.829Z" }, + { url = "https://files.pythonhosted.org/packages/10/c1/934202f5cf335e6d852530ce14ddb0fef21be612ba9ecbbcbd4d748ca32d/grpcio-1.76.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:a8c2cf1209497cf659a667d7dea88985e834c24b7c3b605e6254cbb5076d985c", size = 11848017, upload-time = "2025-10-21T16:20:56.705Z" }, + { url = "https://files.pythonhosted.org/packages/11/0b/8dec16b1863d74af6eb3543928600ec2195af49ca58b16334972f6775663/grpcio-1.76.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:08caea849a9d3c71a542827d6df9d5a69067b0a1efbea8a855633ff5d9571465", size = 6412027, upload-time = "2025-10-21T16:20:59.3Z" }, + { url = "https://files.pythonhosted.org/packages/d7/64/7b9e6e7ab910bea9d46f2c090380bab274a0b91fb0a2fe9b0cd399fffa12/grpcio-1.76.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f0e34c2079d47ae9f6188211db9e777c619a21d4faba6977774e8fa43b085e48", size = 7075913, upload-time = "2025-10-21T16:21:01.645Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/093c46e9546073cefa789bd76d44c5cb2abc824ca62af0c18be590ff13ba/grpcio-1.76.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8843114c0cfce61b40ad48df65abcfc00d4dba82eae8718fab5352390848c5da", size = 6615417, upload-time = "2025-10-21T16:21:03.844Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b6/5709a3a68500a9c03da6fb71740dcdd5ef245e39266461a03f31a57036d8/grpcio-1.76.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8eddfb4d203a237da6f3cc8a540dad0517d274b5a1e9e636fd8d2c79b5c1d397", size = 7199683, upload-time = "2025-10-21T16:21:06.195Z" }, + { url = "https://files.pythonhosted.org/packages/91/d3/4b1f2bf16ed52ce0b508161df3a2d186e4935379a159a834cb4a7d687429/grpcio-1.76.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:32483fe2aab2c3794101c2a159070584e5db11d0aa091b2c0ea9c4fc43d0d749", size = 8163109, upload-time = "2025-10-21T16:21:08.498Z" }, + { url = "https://files.pythonhosted.org/packages/5c/61/d9043f95f5f4cf085ac5dd6137b469d41befb04bd80280952ffa2a4c3f12/grpcio-1.76.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dcfe41187da8992c5f40aa8c5ec086fa3672834d2be57a32384c08d5a05b4c00", size = 7626676, upload-time = "2025-10-21T16:21:10.693Z" }, + { url = "https://files.pythonhosted.org/packages/36/95/fd9a5152ca02d8881e4dd419cdd790e11805979f499a2e5b96488b85cf27/grpcio-1.76.0-cp311-cp311-win32.whl", hash = "sha256:2107b0c024d1b35f4083f11245c0e23846ae64d02f40b2b226684840260ed054", size = 3997688, upload-time = "2025-10-21T16:21:12.746Z" }, + { url = "https://files.pythonhosted.org/packages/60/9c/5c359c8d4c9176cfa3c61ecd4efe5affe1f38d9bae81e81ac7186b4c9cc8/grpcio-1.76.0-cp311-cp311-win_amd64.whl", hash = "sha256:522175aba7af9113c48ec10cc471b9b9bd4f6ceb36aeb4544a8e2c80ed9d252d", size = 4709315, upload-time = "2025-10-21T16:21:15.26Z" }, + { url = "https://files.pythonhosted.org/packages/bf/05/8e29121994b8d959ffa0afd28996d452f291b48cfc0875619de0bde2c50c/grpcio-1.76.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:81fd9652b37b36f16138611c7e884eb82e0cec137c40d3ef7c3f9b3ed00f6ed8", size = 5799718, upload-time = "2025-10-21T16:21:17.939Z" }, + { url = "https://files.pythonhosted.org/packages/d9/75/11d0e66b3cdf998c996489581bdad8900db79ebd83513e45c19548f1cba4/grpcio-1.76.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:04bbe1bfe3a68bbfd4e52402ab7d4eb59d72d02647ae2042204326cf4bbad280", size = 11825627, upload-time = "2025-10-21T16:21:20.466Z" }, + { url = "https://files.pythonhosted.org/packages/28/50/2f0aa0498bc188048f5d9504dcc5c2c24f2eb1a9337cd0fa09a61a2e75f0/grpcio-1.76.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d388087771c837cdb6515539f43b9d4bf0b0f23593a24054ac16f7a960be16f4", size = 6359167, upload-time = "2025-10-21T16:21:23.122Z" }, + { url = "https://files.pythonhosted.org/packages/66/e5/bbf0bb97d29ede1d59d6588af40018cfc345b17ce979b7b45424628dc8bb/grpcio-1.76.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f8f757bebaaea112c00dba718fc0d3260052ce714e25804a03f93f5d1c6cc11", size = 7044267, upload-time = "2025-10-21T16:21:25.995Z" }, + { url = "https://files.pythonhosted.org/packages/f5/86/f6ec2164f743d9609691115ae8ece098c76b894ebe4f7c94a655c6b03e98/grpcio-1.76.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:980a846182ce88c4f2f7e2c22c56aefd515daeb36149d1c897f83cf57999e0b6", size = 6573963, upload-time = "2025-10-21T16:21:28.631Z" }, + { url = "https://files.pythonhosted.org/packages/60/bc/8d9d0d8505feccfdf38a766d262c71e73639c165b311c9457208b56d92ae/grpcio-1.76.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f92f88e6c033db65a5ae3d97905c8fea9c725b63e28d5a75cb73b49bda5024d8", size = 7164484, upload-time = "2025-10-21T16:21:30.837Z" }, + { url = "https://files.pythonhosted.org/packages/67/e6/5d6c2fc10b95edf6df9b8f19cf10a34263b7fd48493936fffd5085521292/grpcio-1.76.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4baf3cbe2f0be3289eb68ac8ae771156971848bb8aaff60bad42005539431980", size = 8127777, upload-time = "2025-10-21T16:21:33.577Z" }, + { url = "https://files.pythonhosted.org/packages/3f/c8/dce8ff21c86abe025efe304d9e31fdb0deaaa3b502b6a78141080f206da0/grpcio-1.76.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:615ba64c208aaceb5ec83bfdce7728b80bfeb8be97562944836a7a0a9647d882", size = 7594014, upload-time = "2025-10-21T16:21:41.882Z" }, + { url = "https://files.pythonhosted.org/packages/e0/42/ad28191ebf983a5d0ecef90bab66baa5a6b18f2bfdef9d0a63b1973d9f75/grpcio-1.76.0-cp312-cp312-win32.whl", hash = "sha256:45d59a649a82df5718fd9527ce775fd66d1af35e6d31abdcdc906a49c6822958", size = 3984750, upload-time = "2025-10-21T16:21:44.006Z" }, + { url = "https://files.pythonhosted.org/packages/9e/00/7bd478cbb851c04a48baccaa49b75abaa8e4122f7d86da797500cccdd771/grpcio-1.76.0-cp312-cp312-win_amd64.whl", hash = "sha256:c088e7a90b6017307f423efbb9d1ba97a22aa2170876223f9709e9d1de0b5347", size = 4704003, upload-time = "2025-10-21T16:21:46.244Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ed/71467ab770effc9e8cef5f2e7388beb2be26ed642d567697bb103a790c72/grpcio-1.76.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:26ef06c73eb53267c2b319f43e6634c7556ea37672029241a056629af27c10e2", size = 5807716, upload-time = "2025-10-21T16:21:48.475Z" }, + { url = "https://files.pythonhosted.org/packages/2c/85/c6ed56f9817fab03fa8a111ca91469941fb514e3e3ce6d793cb8f1e1347b/grpcio-1.76.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:45e0111e73f43f735d70786557dc38141185072d7ff8dc1829d6a77ac1471468", size = 11821522, upload-time = "2025-10-21T16:21:51.142Z" }, + { url = "https://files.pythonhosted.org/packages/ac/31/2b8a235ab40c39cbc141ef647f8a6eb7b0028f023015a4842933bc0d6831/grpcio-1.76.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:83d57312a58dcfe2a3a0f9d1389b299438909a02db60e2f2ea2ae2d8034909d3", size = 6362558, upload-time = "2025-10-21T16:21:54.213Z" }, + { url = "https://files.pythonhosted.org/packages/bd/64/9784eab483358e08847498ee56faf8ff6ea8e0a4592568d9f68edc97e9e9/grpcio-1.76.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3e2a27c89eb9ac3d81ec8835e12414d73536c6e620355d65102503064a4ed6eb", size = 7049990, upload-time = "2025-10-21T16:21:56.476Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/8c12319a6369434e7a184b987e8e9f3b49a114c489b8315f029e24de4837/grpcio-1.76.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61f69297cba3950a524f61c7c8ee12e55c486cb5f7db47ff9dcee33da6f0d3ae", size = 6575387, upload-time = "2025-10-21T16:21:59.051Z" }, + { url = "https://files.pythonhosted.org/packages/15/0f/f12c32b03f731f4a6242f771f63039df182c8b8e2cf8075b245b409259d4/grpcio-1.76.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6a15c17af8839b6801d554263c546c69c4d7718ad4321e3166175b37eaacca77", size = 7166668, upload-time = "2025-10-21T16:22:02.049Z" }, + { url = "https://files.pythonhosted.org/packages/ff/2d/3ec9ce0c2b1d92dd59d1c3264aaec9f0f7c817d6e8ac683b97198a36ed5a/grpcio-1.76.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:25a18e9810fbc7e7f03ec2516addc116a957f8cbb8cbc95ccc80faa072743d03", size = 8124928, upload-time = "2025-10-21T16:22:04.984Z" }, + { url = "https://files.pythonhosted.org/packages/1a/74/fd3317be5672f4856bcdd1a9e7b5e17554692d3db9a3b273879dc02d657d/grpcio-1.76.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:931091142fd8cc14edccc0845a79248bc155425eee9a98b2db2ea4f00a235a42", size = 7589983, upload-time = "2025-10-21T16:22:07.881Z" }, + { url = "https://files.pythonhosted.org/packages/45/bb/ca038cf420f405971f19821c8c15bcbc875505f6ffadafe9ffd77871dc4c/grpcio-1.76.0-cp313-cp313-win32.whl", hash = "sha256:5e8571632780e08526f118f74170ad8d50fb0a48c23a746bef2a6ebade3abd6f", size = 3984727, upload-time = "2025-10-21T16:22:10.032Z" }, + { url = "https://files.pythonhosted.org/packages/41/80/84087dc56437ced7cdd4b13d7875e7439a52a261e3ab4e06488ba6173b0a/grpcio-1.76.0-cp313-cp313-win_amd64.whl", hash = "sha256:f9f7bd5faab55f47231ad8dba7787866b69f5e93bc306e3915606779bbfb4ba8", size = 4702799, upload-time = "2025-10-21T16:22:12.709Z" }, +] + +[[package]] +name = "grpcio-tools" +version = "1.76.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "protobuf" }, + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a0/77/17d60d636ccd86a0db0eccc24d02967bbc3eea86b9db7324b04507ebaa40/grpcio_tools-1.76.0.tar.gz", hash = "sha256:ce80169b5e6adf3e8302f3ebb6cb0c3a9f08089133abca4b76ad67f751f5ad88", size = 5390807, upload-time = "2025-10-21T16:26:55.416Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/d1/efbeed1a864c846228c0a3b322e7a2d6545f025e35246aebf96496a36004/grpcio_tools-1.76.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:c6480f6af6833850a85cca1c6b435ef4ffd2ac8e88ef683b4065233827950243", size = 2545931, upload-time = "2025-10-21T16:24:50.201Z" }, + { url = "https://files.pythonhosted.org/packages/af/8e/f257c0f565d9d44658301238b01a9353bc6f3b272bb4191faacae042579d/grpcio_tools-1.76.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:c7c23fe1dc09818e16a48853477806ad77dd628b33996f78c05a293065f8210c", size = 5844794, upload-time = "2025-10-21T16:24:53.312Z" }, + { url = "https://files.pythonhosted.org/packages/c7/c0/6c1e89c67356cb20e19ed670c5099b13e40fd678cac584c778f931666a86/grpcio_tools-1.76.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fcdce7f7770ff052cd4e60161764b0b3498c909bde69138f8bd2e7b24a3ecd8f", size = 2591772, upload-time = "2025-10-21T16:24:55.729Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/5f33aa7bc3ddaad0cfd2f4e950ac4f1a310e8d0c7b1358622a581e8b7a2f/grpcio_tools-1.76.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b598fdcebffa931c7da5c9e90b5805fff7e9bc6cf238319358a1b85704c57d33", size = 2905140, upload-time = "2025-10-21T16:24:57.952Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3e/23e3a52a77368f47188ed83c34eb53866d3ce0f73835b2f6764844ae89eb/grpcio_tools-1.76.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6a9818ff884796b12dcf8db32126e40ec1098cacf5697f27af9cfccfca1c1fae", size = 2656475, upload-time = "2025-10-21T16:25:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/51/85/a74ae87ec7dbd3d2243881f5c548215aed1148660df7945be3a125ba9a21/grpcio_tools-1.76.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:105e53435b2eed3961da543db44a2a34479d98d18ea248219856f30a0ca4646b", size = 3106158, upload-time = "2025-10-21T16:25:03.642Z" }, + { url = "https://files.pythonhosted.org/packages/54/d5/a6ed1e5823bc5d55a1eb93e0c14ccee0b75951f914832ab51fb64d522a0f/grpcio_tools-1.76.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:454a1232c7f99410d92fa9923c7851fd4cdaf657ee194eac73ea1fe21b406d6e", size = 3654980, upload-time = "2025-10-21T16:25:05.717Z" }, + { url = "https://files.pythonhosted.org/packages/f9/29/c05d5501ba156a242079ef71d073116d2509c195b5e5e74c545f0a3a3a69/grpcio_tools-1.76.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ca9ccf667afc0268d45ab202af4556c72e57ea36ebddc93535e1a25cbd4f8aba", size = 3322658, upload-time = "2025-10-21T16:25:07.885Z" }, + { url = "https://files.pythonhosted.org/packages/02/b6/ee0317b91da19a7537d93c4161cbc2a45a165c8893209b0bbd470d830ffa/grpcio_tools-1.76.0-cp311-cp311-win32.whl", hash = "sha256:a83c87513b708228b4cad7619311daba65b40937745103cadca3db94a6472d9c", size = 993837, upload-time = "2025-10-21T16:25:10.133Z" }, + { url = "https://files.pythonhosted.org/packages/81/63/9623cadf0406b264737f16d4ed273bb2d65001d87fbd803b565c45d665d1/grpcio_tools-1.76.0-cp311-cp311-win_amd64.whl", hash = "sha256:2ce5e87ec71f2e4041dce4351f2a8e3b713e3bca6b54c69c3fbc6c7ad1f4c386", size = 1158634, upload-time = "2025-10-21T16:25:12.705Z" }, + { url = "https://files.pythonhosted.org/packages/4f/ca/a931c1439cabfe305c9afd07e233150cd0565aa062c20d1ee412ed188852/grpcio_tools-1.76.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:4ad555b8647de1ebaffb25170249f89057721ffb74f7da96834a07b4855bb46a", size = 2546852, upload-time = "2025-10-21T16:25:15.024Z" }, + { url = "https://files.pythonhosted.org/packages/4c/07/935cfbb7dccd602723482a86d43fbd992f91e9867bca0056a1e9f348473e/grpcio_tools-1.76.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:243af7c8fc7ff22a40a42eb8e0f6f66963c1920b75aae2a2ec503a9c3c8b31c1", size = 5841777, upload-time = "2025-10-21T16:25:17.425Z" }, + { url = "https://files.pythonhosted.org/packages/e4/92/8fcb5acebdccb647e0fa3f002576480459f6cf81e79692d7b3c4d6e29605/grpcio_tools-1.76.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8207b890f423142cc0025d041fb058f7286318df6a049565c27869d73534228b", size = 2594004, upload-time = "2025-10-21T16:25:19.809Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ea/64838e8113b7bfd4842b15c815a7354cb63242fdce9d6648d894b5d50897/grpcio_tools-1.76.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3dafa34c2626a6691d103877e8a145f54c34cf6530975f695b396ed2fc5c98f8", size = 2905563, upload-time = "2025-10-21T16:25:21.889Z" }, + { url = "https://files.pythonhosted.org/packages/a6/d6/53798827d821098219e58518b6db52161ce4985620850aa74ce3795da8a7/grpcio_tools-1.76.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:30f1d2dda6ece285b3d9084e94f66fa721ebdba14ae76b2bc4c581c8a166535c", size = 2656936, upload-time = "2025-10-21T16:25:24.369Z" }, + { url = "https://files.pythonhosted.org/packages/89/a3/d9c1cefc46a790eec520fe4e70e87279abb01a58b1a3b74cf93f62b824a2/grpcio_tools-1.76.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a889af059dc6dbb82d7b417aa581601316e364fe12eb54c1b8d95311ea50916d", size = 3109811, upload-time = "2025-10-21T16:25:26.711Z" }, + { url = "https://files.pythonhosted.org/packages/50/75/5997752644b73b5d59377d333a51c8a916606df077f5a487853e37dca289/grpcio_tools-1.76.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c3f2c3c44c56eb5d479ab178f0174595d0a974c37dade442f05bb73dfec02f31", size = 3658786, upload-time = "2025-10-21T16:25:28.819Z" }, + { url = "https://files.pythonhosted.org/packages/84/47/dcf8380df4bd7931ffba32fc6adc2de635b6569ca27fdec7121733797062/grpcio_tools-1.76.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:479ce02dff684046f909a487d452a83a96b4231f7c70a3b218a075d54e951f56", size = 3325144, upload-time = "2025-10-21T16:25:30.863Z" }, + { url = "https://files.pythonhosted.org/packages/04/88/ea3e5fdb874d8c2d04488e4b9d05056537fba70915593f0c283ac77df188/grpcio_tools-1.76.0-cp312-cp312-win32.whl", hash = "sha256:9ba4bb539936642a44418b38ee6c3e8823c037699e2cb282bd8a44d76a4be833", size = 993523, upload-time = "2025-10-21T16:25:32.594Z" }, + { url = "https://files.pythonhosted.org/packages/de/b1/ce7d59d147675ec191a55816be46bc47a343b5ff07279eef5817c09cc53e/grpcio_tools-1.76.0-cp312-cp312-win_amd64.whl", hash = "sha256:0cd489016766b05f9ed8a6b6596004b62c57d323f49593eac84add032a6d43f7", size = 1158493, upload-time = "2025-10-21T16:25:34.5Z" }, + { url = "https://files.pythonhosted.org/packages/13/01/b16fe73f129df49811d886dc99d3813a33cf4d1c6e101252b81c895e929f/grpcio_tools-1.76.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:ff48969f81858397ef33a36b326f2dbe2053a48b254593785707845db73c8f44", size = 2546312, upload-time = "2025-10-21T16:25:37.138Z" }, + { url = "https://files.pythonhosted.org/packages/25/17/2594c5feb76bb0b25bfbf91ec1075b276e1b2325e4bc7ea649a7b5dbf353/grpcio_tools-1.76.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:aa2f030fd0ef17926026ee8e2b700e388d3439155d145c568fa6b32693277613", size = 5839627, upload-time = "2025-10-21T16:25:40.082Z" }, + { url = "https://files.pythonhosted.org/packages/c7/c6/097b1aa26fbf72fb3cdb30138a2788529e4f10d8759de730a83f5c06726e/grpcio_tools-1.76.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bacbf3c54f88c38de8e28f8d9b97c90b76b105fb9ddef05d2c50df01b32b92af", size = 2592817, upload-time = "2025-10-21T16:25:42.301Z" }, + { url = "https://files.pythonhosted.org/packages/03/78/d1d985b48592a674509a85438c1a3d4c36304ddfc99d1b05d27233b51062/grpcio_tools-1.76.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0d4e4afe9a0e3c24fad2f1af45f98cf8700b2bfc4d790795756ba035d2ea7bdc", size = 2905186, upload-time = "2025-10-21T16:25:44.395Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0e/770afbb47f0b5f594b93a7b46a95b892abda5eebe60efb511e96cee52170/grpcio_tools-1.76.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fbbd4e1fc5af98001ceef5e780e8c10921d94941c3809238081e73818ef707f1", size = 2656188, upload-time = "2025-10-21T16:25:46.942Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2b/017c2fcf4c5d3cf00cf7d5ce21eb88521de0d89bdcf26538ad2862ec6d07/grpcio_tools-1.76.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b05efe5a59883ab8292d596657273a60e0c3e4f5a9723c32feb9fc3a06f2f3ef", size = 3109141, upload-time = "2025-10-21T16:25:49.137Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5f/2495f88e3d50c6f2c2da2752bad4fa3a30c52ece6c9d8b0c636cd8b1430b/grpcio_tools-1.76.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:be483b90e62b7892eb71fa1fc49750bee5b2ee35b5ec99dd2b32bed4bedb5d71", size = 3657892, upload-time = "2025-10-21T16:25:52.362Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1d/c4f39d31b19d9baf35d900bf3f969ce1c842f63a8560c8003ed2e5474760/grpcio_tools-1.76.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:630cd7fd3e8a63e20703a7ad816979073c2253e591b5422583c27cae2570de73", size = 3324778, upload-time = "2025-10-21T16:25:54.629Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b6/35ee3a6e4af85a93da28428f81f4b29bcb36f6986b486ad71910fcc02e25/grpcio_tools-1.76.0-cp313-cp313-win32.whl", hash = "sha256:eb2567280f9f6da5444043f0e84d8408c7a10df9ba3201026b30e40ef3814736", size = 993084, upload-time = "2025-10-21T16:25:56.52Z" }, + { url = "https://files.pythonhosted.org/packages/f3/7a/5bd72344d86ee860e5920c9a7553cfe3bc7b1fce79f18c00ac2497f5799f/grpcio_tools-1.76.0-cp313-cp313-win_amd64.whl", hash = "sha256:0071b1c0bd0f5f9d292dca4efab32c92725d418e57f9c60acdc33c0172af8b53", size = 1158151, upload-time = "2025-10-21T16:25:58.468Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" }, +] + +[[package]] +name = "ipykernel" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/a4/4948be6eb88628505b83a1f2f40d90254cab66abf2043b3c40fa07dfce0f/ipykernel-7.1.0.tar.gz", hash = "sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db", size = 174579, upload-time = "2025-10-27T09:46:39.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/17/20c2552266728ceba271967b87919664ecc0e33efca29c3efc6baf88c5f9/ipykernel-7.1.0-py3-none-any.whl", hash = "sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c", size = 117968, upload-time = "2025-10-27T09:46:37.805Z" }, +] + +[[package]] +name = "ipython" +version = "9.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, + { name = "typing-extensions", marker = "python_full_version < '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/34/29b18c62e39ee2f7a6a3bba7efd952729d8aadd45ca17efc34453b717665/ipython-9.6.0.tar.gz", hash = "sha256:5603d6d5d356378be5043e69441a072b50a5b33b4503428c77b04cb8ce7bc731", size = 4396932, upload-time = "2025-09-29T10:55:53.948Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/c5/d5e07995077e48220269c28a221e168c91123ad5ceee44d548f54a057fc0/ipython-9.6.0-py3-none-any.whl", hash = "sha256:5f77efafc886d2f023442479b8149e7d86547ad0a979e9da9f045d252f648196", size = 616170, upload-time = "2025-09-29T10:55:47.676Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "ipywidgets" +version = "8.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "comm" }, + { name = "ipython" }, + { name = "jupyterlab-widgets" }, + { name = "traitlets" }, + { name = "widgetsnbextension" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3e/48/d3dbac45c2814cb73812f98dd6b38bbcc957a4e7bb31d6ea9c03bf94ed87/ipywidgets-8.1.7.tar.gz", hash = "sha256:15f1ac050b9ccbefd45dccfbb2ef6bed0029d8278682d569d71b8dd96bee0376", size = 116721, upload-time = "2025-05-05T12:42:03.489Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/6a/9166369a2f092bd286d24e6307de555d63616e8ddb373ebad2b5635ca4cd/ipywidgets-8.1.7-py3-none-any.whl", hash = "sha256:764f2602d25471c213919b8a1997df04bef869251db4ca8efba1b76b1bd9f7bb", size = 139806, upload-time = "2025-05-05T12:41:56.833Z" }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload-time = "2020-11-01T11:00:00.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jiter" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/68/0357982493a7b20925aece061f7fb7a2678e3b232f8d73a6edb7e5304443/jiter-0.11.1.tar.gz", hash = "sha256:849dcfc76481c0ea0099391235b7ca97d7279e0fa4c86005457ac7c88e8b76dc", size = 168385, upload-time = "2025-10-17T11:31:15.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/34/c9e6cfe876f9a24f43ed53fe29f052ce02bd8d5f5a387dbf46ad3764bef0/jiter-0.11.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9b0088ff3c374ce8ce0168523ec8e97122ebb788f950cf7bb8e39c7dc6a876a2", size = 310160, upload-time = "2025-10-17T11:28:59.174Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9f/b06ec8181d7165858faf2ac5287c54fe52b2287760b7fe1ba9c06890255f/jiter-0.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74433962dd3c3090655e02e461267095d6c84f0741c7827de11022ef8d7ff661", size = 316573, upload-time = "2025-10-17T11:29:00.905Z" }, + { url = "https://files.pythonhosted.org/packages/66/49/3179d93090f2ed0c6b091a9c210f266d2d020d82c96f753260af536371d0/jiter-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d98030e345e6546df2cc2c08309c502466c66c4747b043f1a0d415fada862b8", size = 348998, upload-time = "2025-10-17T11:29:02.321Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/63db2c8eabda7a9cad65a2e808ca34aaa8689d98d498f5a2357d7a2e2cec/jiter-0.11.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d6db0b2e788db46bec2cf729a88b6dd36959af2abd9fa2312dfba5acdd96dcb", size = 363413, upload-time = "2025-10-17T11:29:03.787Z" }, + { url = "https://files.pythonhosted.org/packages/25/ff/3e6b3170c5053053c7baddb8d44e2bf11ff44cd71024a280a8438ae6ba32/jiter-0.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55678fbbda261eafe7289165dd2ddd0e922df5f9a1ae46d7c79a5a15242bd7d1", size = 487144, upload-time = "2025-10-17T11:29:05.37Z" }, + { url = "https://files.pythonhosted.org/packages/b0/50/b63fcadf699893269b997f4c2e88400bc68f085c6db698c6e5e69d63b2c1/jiter-0.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a6b74fae8e40497653b52ce6ca0f1b13457af769af6fb9c1113efc8b5b4d9be", size = 376215, upload-time = "2025-10-17T11:29:07.123Z" }, + { url = "https://files.pythonhosted.org/packages/39/8c/57a8a89401134167e87e73471b9cca321cf651c1fd78c45f3a0f16932213/jiter-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a55a453f8b035eb4f7852a79a065d616b7971a17f5e37a9296b4b38d3b619e4", size = 359163, upload-time = "2025-10-17T11:29:09.047Z" }, + { url = "https://files.pythonhosted.org/packages/4b/96/30b0cdbffbb6f753e25339d3dbbe26890c9ef119928314578201c758aace/jiter-0.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2638148099022e6bdb3f42904289cd2e403609356fb06eb36ddec2d50958bc29", size = 385344, upload-time = "2025-10-17T11:29:10.69Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d5/31dae27c1cc9410ad52bb514f11bfa4f286f7d6ef9d287b98b8831e156ec/jiter-0.11.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:252490567a5d990986f83b95a5f1ca1bf205ebd27b3e9e93bb7c2592380e29b9", size = 517972, upload-time = "2025-10-17T11:29:12.174Z" }, + { url = "https://files.pythonhosted.org/packages/61/1e/5905a7a3aceab80de13ab226fd690471a5e1ee7e554dc1015e55f1a6b896/jiter-0.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d431d52b0ca2436eea6195f0f48528202100c7deda354cb7aac0a302167594d5", size = 508408, upload-time = "2025-10-17T11:29:13.597Z" }, + { url = "https://files.pythonhosted.org/packages/91/12/1c49b97aa49077e136e8591cef7162f0d3e2860ae457a2d35868fd1521ef/jiter-0.11.1-cp311-cp311-win32.whl", hash = "sha256:db6f41e40f8bae20c86cb574b48c4fd9f28ee1c71cb044e9ec12e78ab757ba3a", size = 203937, upload-time = "2025-10-17T11:29:14.894Z" }, + { url = "https://files.pythonhosted.org/packages/6d/9d/2255f7c17134ee9892c7e013c32d5bcf4bce64eb115402c9fe5e727a67eb/jiter-0.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0cc407b8e6cdff01b06bb80f61225c8b090c3df108ebade5e0c3c10993735b19", size = 207589, upload-time = "2025-10-17T11:29:16.166Z" }, + { url = "https://files.pythonhosted.org/packages/3c/28/6307fc8f95afef84cae6caf5429fee58ef16a582c2ff4db317ceb3e352fa/jiter-0.11.1-cp311-cp311-win_arm64.whl", hash = "sha256:fe04ea475392a91896d1936367854d346724a1045a247e5d1c196410473b8869", size = 188391, upload-time = "2025-10-17T11:29:17.488Z" }, + { url = "https://files.pythonhosted.org/packages/15/8b/318e8af2c904a9d29af91f78c1e18f0592e189bbdb8a462902d31fe20682/jiter-0.11.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c92148eec91052538ce6823dfca9525f5cfc8b622d7f07e9891a280f61b8c96c", size = 305655, upload-time = "2025-10-17T11:29:18.859Z" }, + { url = "https://files.pythonhosted.org/packages/f7/29/6c7de6b5d6e511d9e736312c0c9bfcee8f9b6bef68182a08b1d78767e627/jiter-0.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ecd4da91b5415f183a6be8f7158d127bdd9e6a3174138293c0d48d6ea2f2009d", size = 315645, upload-time = "2025-10-17T11:29:20.889Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5f/ef9e5675511ee0eb7f98dd8c90509e1f7743dbb7c350071acae87b0145f3/jiter-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7e3ac25c00b9275684d47aa42febaa90a9958e19fd1726c4ecf755fbe5e553b", size = 348003, upload-time = "2025-10-17T11:29:22.712Z" }, + { url = "https://files.pythonhosted.org/packages/56/1b/abe8c4021010b0a320d3c62682769b700fb66f92c6db02d1a1381b3db025/jiter-0.11.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:57d7305c0a841858f866cd459cd9303f73883fb5e097257f3d4a3920722c69d4", size = 365122, upload-time = "2025-10-17T11:29:24.408Z" }, + { url = "https://files.pythonhosted.org/packages/2a/2d/4a18013939a4f24432f805fbd5a19893e64650b933edb057cd405275a538/jiter-0.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e86fa10e117dce22c547f31dd6d2a9a222707d54853d8de4e9a2279d2c97f239", size = 488360, upload-time = "2025-10-17T11:29:25.724Z" }, + { url = "https://files.pythonhosted.org/packages/f0/77/38124f5d02ac4131f0dfbcfd1a19a0fac305fa2c005bc4f9f0736914a1a4/jiter-0.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae5ef1d48aec7e01ee8420155d901bb1d192998fa811a65ebb82c043ee186711", size = 376884, upload-time = "2025-10-17T11:29:27.056Z" }, + { url = "https://files.pythonhosted.org/packages/7b/43/59fdc2f6267959b71dd23ce0bd8d4aeaf55566aa435a5d00f53d53c7eb24/jiter-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb68e7bf65c990531ad8715e57d50195daf7c8e6f1509e617b4e692af1108939", size = 358827, upload-time = "2025-10-17T11:29:28.698Z" }, + { url = "https://files.pythonhosted.org/packages/7d/d0/b3cc20ff5340775ea3bbaa0d665518eddecd4266ba7244c9cb480c0c82ec/jiter-0.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43b30c8154ded5845fa454ef954ee67bfccce629b2dea7d01f795b42bc2bda54", size = 385171, upload-time = "2025-10-17T11:29:30.078Z" }, + { url = "https://files.pythonhosted.org/packages/d2/bc/94dd1f3a61f4dc236f787a097360ec061ceeebebf4ea120b924d91391b10/jiter-0.11.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:586cafbd9dd1f3ce6a22b4a085eaa6be578e47ba9b18e198d4333e598a91db2d", size = 518359, upload-time = "2025-10-17T11:29:31.464Z" }, + { url = "https://files.pythonhosted.org/packages/7e/8c/12ee132bd67e25c75f542c227f5762491b9a316b0dad8e929c95076f773c/jiter-0.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:677cc2517d437a83bb30019fd4cf7cad74b465914c56ecac3440d597ac135250", size = 509205, upload-time = "2025-10-17T11:29:32.895Z" }, + { url = "https://files.pythonhosted.org/packages/39/d5/9de848928ce341d463c7e7273fce90ea6d0ea4343cd761f451860fa16b59/jiter-0.11.1-cp312-cp312-win32.whl", hash = "sha256:fa992af648fcee2b850a3286a35f62bbbaeddbb6dbda19a00d8fbc846a947b6e", size = 205448, upload-time = "2025-10-17T11:29:34.217Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/8002d78637e05009f5e3fb5288f9d57d65715c33b5d6aa20fd57670feef5/jiter-0.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:88b5cae9fa51efeb3d4bd4e52bfd4c85ccc9cac44282e2a9640893a042ba4d87", size = 204285, upload-time = "2025-10-17T11:29:35.446Z" }, + { url = "https://files.pythonhosted.org/packages/9f/a2/bb24d5587e4dff17ff796716542f663deee337358006a80c8af43ddc11e5/jiter-0.11.1-cp312-cp312-win_arm64.whl", hash = "sha256:9a6cae1ab335551917f882f2c3c1efe7617b71b4c02381e4382a8fc80a02588c", size = 188712, upload-time = "2025-10-17T11:29:37.027Z" }, + { url = "https://files.pythonhosted.org/packages/7c/4b/e4dd3c76424fad02a601d570f4f2a8438daea47ba081201a721a903d3f4c/jiter-0.11.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:71b6a920a5550f057d49d0e8bcc60945a8da998019e83f01adf110e226267663", size = 305272, upload-time = "2025-10-17T11:29:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/67/83/2cd3ad5364191130f4de80eacc907f693723beaab11a46c7d155b07a092c/jiter-0.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b3de72e925388453a5171be83379549300db01284f04d2a6f244d1d8de36f94", size = 314038, upload-time = "2025-10-17T11:29:40.563Z" }, + { url = "https://files.pythonhosted.org/packages/d3/3c/8e67d9ba524e97d2f04c8f406f8769a23205026b13b0938d16646d6e2d3e/jiter-0.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc19dd65a2bd3d9c044c5b4ebf657ca1e6003a97c0fc10f555aa4f7fb9821c00", size = 345977, upload-time = "2025-10-17T11:29:42.009Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/489ce64d992c29bccbffabb13961bbb0435e890d7f2d266d1f3df5e917d2/jiter-0.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d58faaa936743cd1464540562f60b7ce4fd927e695e8bc31b3da5b914baa9abd", size = 364503, upload-time = "2025-10-17T11:29:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/d4/c0/e321dd83ee231d05c8fe4b1a12caf1f0e8c7a949bf4724d58397104f10f2/jiter-0.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:902640c3103625317291cb73773413b4d71847cdf9383ba65528745ff89f1d14", size = 487092, upload-time = "2025-10-17T11:29:44.835Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5e/8f24ec49c8d37bd37f34ec0112e0b1a3b4b5a7b456c8efff1df5e189ad43/jiter-0.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30405f726e4c2ed487b176c09f8b877a957f535d60c1bf194abb8dadedb5836f", size = 376328, upload-time = "2025-10-17T11:29:46.175Z" }, + { url = "https://files.pythonhosted.org/packages/7f/70/ded107620e809327cf7050727e17ccfa79d6385a771b7fe38fb31318ef00/jiter-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3217f61728b0baadd2551844870f65219ac4a1285d5e1a4abddff3d51fdabe96", size = 356632, upload-time = "2025-10-17T11:29:47.454Z" }, + { url = "https://files.pythonhosted.org/packages/19/53/c26f7251613f6a9079275ee43c89b8a973a95ff27532c421abc2a87afb04/jiter-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1364cc90c03a8196f35f396f84029f12abe925415049204446db86598c8b72c", size = 384358, upload-time = "2025-10-17T11:29:49.377Z" }, + { url = "https://files.pythonhosted.org/packages/84/16/e0f2cc61e9c4d0b62f6c1bd9b9781d878a427656f88293e2a5335fa8ff07/jiter-0.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:53a54bf8e873820ab186b2dca9f6c3303f00d65ae5e7b7d6bda1b95aa472d646", size = 517279, upload-time = "2025-10-17T11:29:50.968Z" }, + { url = "https://files.pythonhosted.org/packages/60/5c/4cd095eaee68961bca3081acbe7c89e12ae24a5dae5fd5d2a13e01ed2542/jiter-0.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7e29aca023627b0e0c2392d4248f6414d566ff3974fa08ff2ac8dbb96dfee92a", size = 508276, upload-time = "2025-10-17T11:29:52.619Z" }, + { url = "https://files.pythonhosted.org/packages/4f/25/f459240e69b0e09a7706d96ce203ad615ca36b0fe832308d2b7123abf2d0/jiter-0.11.1-cp313-cp313-win32.whl", hash = "sha256:f153e31d8bca11363751e875c0a70b3d25160ecbaee7b51e457f14498fb39d8b", size = 205593, upload-time = "2025-10-17T11:29:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/7c/16/461bafe22bae79bab74e217a09c907481a46d520c36b7b9fe71ee8c9e983/jiter-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:f773f84080b667c69c4ea0403fc67bb08b07e2b7ce1ef335dea5868451e60fed", size = 203518, upload-time = "2025-10-17T11:29:55.216Z" }, + { url = "https://files.pythonhosted.org/packages/7b/72/c45de6e320edb4fa165b7b1a414193b3cae302dd82da2169d315dcc78b44/jiter-0.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:635ecd45c04e4c340d2187bcb1cea204c7cc9d32c1364d251564bf42e0e39c2d", size = 188062, upload-time = "2025-10-17T11:29:56.631Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/4a57922437ca8753ef823f434c2dec5028b237d84fa320f06a3ba1aec6e8/jiter-0.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d892b184da4d94d94ddb4031296931c74ec8b325513a541ebfd6dfb9ae89904b", size = 313814, upload-time = "2025-10-17T11:29:58.509Z" }, + { url = "https://files.pythonhosted.org/packages/76/50/62a0683dadca25490a4bedc6a88d59de9af2a3406dd5a576009a73a1d392/jiter-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa22c223a3041dacb2fcd37c70dfd648b44662b4a48e242592f95bda5ab09d58", size = 344987, upload-time = "2025-10-17T11:30:00.208Z" }, + { url = "https://files.pythonhosted.org/packages/da/00/2355dbfcbf6cdeaddfdca18287f0f38ae49446bb6378e4a5971e9356fc8a/jiter-0.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330e8e6a11ad4980cd66a0f4a3e0e2e0f646c911ce047014f984841924729789", size = 356399, upload-time = "2025-10-17T11:30:02.084Z" }, + { url = "https://files.pythonhosted.org/packages/c9/07/c2bd748d578fa933d894a55bff33f983bc27f75fc4e491b354bef7b78012/jiter-0.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:09e2e386ebf298547ca3a3704b729471f7ec666c2906c5c26c1a915ea24741ec", size = 203289, upload-time = "2025-10-17T11:30:03.656Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ee/ace64a853a1acbd318eb0ca167bad1cf5ee037207504b83a868a5849747b/jiter-0.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:fe4a431c291157e11cee7c34627990ea75e8d153894365a3bc84b7a959d23ca8", size = 188284, upload-time = "2025-10-17T11:30:05.046Z" }, + { url = "https://files.pythonhosted.org/packages/9d/51/bd41562dd284e2a18b6dc0a99d195fd4a3560d52ab192c42e56fe0316643/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:e642b5270e61dd02265866398707f90e365b5db2eb65a4f30c789d826682e1f6", size = 306871, upload-time = "2025-10-17T11:31:03.616Z" }, + { url = "https://files.pythonhosted.org/packages/ba/cb/64e7f21dd357e8cd6b3c919c26fac7fc198385bbd1d85bb3b5355600d787/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:464ba6d000585e4e2fd1e891f31f1231f497273414f5019e27c00a4b8f7a24ad", size = 301454, upload-time = "2025-10-17T11:31:05.338Z" }, + { url = "https://files.pythonhosted.org/packages/55/b0/54bdc00da4ef39801b1419a01035bd8857983de984fd3776b0be6b94add7/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:055568693ab35e0bf3a171b03bb40b2dcb10352359e0ab9b5ed0da2bf1eb6f6f", size = 336801, upload-time = "2025-10-17T11:31:06.893Z" }, + { url = "https://files.pythonhosted.org/packages/de/8f/87176ed071d42e9db415ed8be787ef4ef31a4fa27f52e6a4fbf34387bd28/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c69ea798d08a915ba4478113efa9e694971e410056392f4526d796f136d3fa", size = 343452, upload-time = "2025-10-17T11:31:08.259Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bc/950dd7f170c6394b6fdd73f989d9e729bd98907bcc4430ef080a72d06b77/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:0d4d6993edc83cf75e8c6828a8d6ce40a09ee87e38c7bfba6924f39e1337e21d", size = 302626, upload-time = "2025-10-17T11:31:09.645Z" }, + { url = "https://files.pythonhosted.org/packages/3a/65/43d7971ca82ee100b7b9b520573eeef7eabc0a45d490168ebb9a9b5bb8b2/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f78d151c83a87a6cf5461d5ee55bc730dd9ae227377ac6f115b922989b95f838", size = 297034, upload-time = "2025-10-17T11:31:10.975Z" }, + { url = "https://files.pythonhosted.org/packages/19/4c/000e1e0c0c67e96557a279f8969487ea2732d6c7311698819f977abae837/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9022974781155cd5521d5cb10997a03ee5e31e8454c9d999dcdccd253f2353f", size = 337328, upload-time = "2025-10-17T11:31:12.399Z" }, + { url = "https://files.pythonhosted.org/packages/d9/71/71408b02c6133153336d29fa3ba53000f1e1a3f78bb2fc2d1a1865d2e743/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18c77aaa9117510d5bdc6a946baf21b1f0cfa58ef04d31c8d016f206f2118960", size = 343697, upload-time = "2025-10-17T11:31:13.773Z" }, +] + +[[package]] +name = "json5" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/12/ae/929aee9619e9eba9015207a9d2c1c54db18311da7eb4dcf6d41ad6f0eb67/json5-0.12.1.tar.gz", hash = "sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990", size = 52191, upload-time = "2025-08-12T19:47:42.583Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/e2/05328bd2621be49a6fed9e3030b1e51a2d04537d3f816d211b9cc53c5262/json5-0.12.1-py3-none-any.whl", hash = "sha256:d9c9b3bc34a5f54d43c35e11ef7cb87d8bdd098c6ace87117a7b7e83e705c1d5", size = 36119, upload-time = "2025-08-12T19:47:41.131Z" }, +] + +[[package]] +name = "jsonpatch" +version = "1.33" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpointer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload-time = "2023-06-26T12:07:29.144Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload-time = "2023-06-16T21:01:28.466Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, +] + +[package.optional-dependencies] +format-nongpl = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "rfc3987-syntax" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[package]] +name = "jsonschema-rs" +version = "0.29.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/b4/33a9b25cad41d1e533c1ab7ff30eaec50628dd1bcb92171b99a2e944d61f/jsonschema_rs-0.29.1.tar.gz", hash = "sha256:a9f896a9e4517630374f175364705836c22f09d5bd5bbb06ec0611332b6702fd", size = 1406679, upload-time = "2025-02-08T21:25:12.639Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/e2/9c3af8c7d56ff1b6bac88137f60bf02f2814c60d1f658ef06b2ddc2a21b1/jsonschema_rs-0.29.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:b4458f1a027ab0c64e91edcb23c48220d60a503e741030bcf260fbbe12979ad2", size = 3828925, upload-time = "2025-02-08T21:24:07.289Z" }, + { url = "https://files.pythonhosted.org/packages/3f/29/f9377e55f10ef173c4cf1c2c88bc30e4a1a4ea1c60659c524903cac85a07/jsonschema_rs-0.29.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:faf3d90b5473bf654fd6ffb490bd6fdd2e54f4034f652d1749bee963b3104ce3", size = 1968915, upload-time = "2025-02-08T21:24:09.123Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/8c514ebab1d312a2422bece0a1ccca45b82a36131d4cb63e01b4469ac99a/jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e96919483960737ea5cd8d36e0752c63b875459f31ae14b3a6e80df925b74947", size = 2066366, upload-time = "2025-02-08T21:24:10.469Z" }, + { url = "https://files.pythonhosted.org/packages/05/3e/04c6b25ae1b53c8c72eaf35cdda4f84558ca4df011d370b5906a6f56ba7f/jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e70f1ff7281810327b354ecaeba6cdce7fe498483338207fe7edfae1b21c212", size = 2067599, upload-time = "2025-02-08T21:24:12.006Z" }, + { url = "https://files.pythonhosted.org/packages/1f/78/b9b8934e4db4f43f61e65c5f285432c2d07cb1935ad9df88d5080a4a311b/jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07fef0706a5df7ba5f301a6920b28b0a4013ac06623aed96a6180e95c110b82a", size = 2084926, upload-time = "2025-02-08T21:24:14.544Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ae/676d67d2583cdd50b07b5a0989b501aebf003b12232d14f87fc7fb991f2c/jsonschema_rs-0.29.1-cp311-cp311-win32.whl", hash = "sha256:07524370bdce055d4f106b7fed1afdfc86facd7d004cbb71adeaff3e06861bf6", size = 1704339, upload-time = "2025-02-08T21:24:16.145Z" }, + { url = "https://files.pythonhosted.org/packages/4b/3e/4767dce237d8ea2ff5f684699ef1b9dae5017dc41adaa6f3dc3a85b84608/jsonschema_rs-0.29.1-cp311-cp311-win_amd64.whl", hash = "sha256:36fa23c85333baa8ce5bf0564fb19de3d95b7640c0cab9e3205ddc44a62fdbf0", size = 1872253, upload-time = "2025-02-08T21:24:18.43Z" }, + { url = "https://files.pythonhosted.org/packages/7b/4a/67ea15558ab85e67d1438b2e5da63b8e89b273c457106cbc87f8f4959a3d/jsonschema_rs-0.29.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:9fe7529faa6a84d23e31b1f45853631e4d4d991c85f3d50e6d1df857bb52b72d", size = 3825206, upload-time = "2025-02-08T21:24:19.985Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2e/bc75ed65d11ba47200ade9795ebd88eb2e64c2852a36d9be640172563430/jsonschema_rs-0.29.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5d7e385298f250ed5ce4928fd59fabf2b238f8167f2c73b9414af8143dfd12e", size = 1966302, upload-time = "2025-02-08T21:24:21.673Z" }, + { url = "https://files.pythonhosted.org/packages/95/dd/4a90e96811f897de066c69d95bc0983138056b19cb169f2a99c736e21933/jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:64a29be0504731a2e3164f66f609b9999aa66a2df3179ecbfc8ead88e0524388", size = 2062846, upload-time = "2025-02-08T21:24:23.171Z" }, + { url = "https://files.pythonhosted.org/packages/21/91/61834396748a741021716751a786312b8a8319715e6c61421447a07c887c/jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e91defda5dfa87306543ee9b34d97553d9422c134998c0b64855b381f8b531d", size = 2065564, upload-time = "2025-02-08T21:24:24.574Z" }, + { url = "https://files.pythonhosted.org/packages/f0/2c/920d92e88b9bdb6cb14867a55e5572e7b78bfc8554f9c625caa516aa13dd/jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96f87680a6a1c16000c851d3578534ae3c154da894026c2a09a50f727bd623d4", size = 2083055, upload-time = "2025-02-08T21:24:26.834Z" }, + { url = "https://files.pythonhosted.org/packages/6d/0a/f4c1bea3193992fe4ff9ce330c6a594481caece06b1b67d30b15992bbf54/jsonschema_rs-0.29.1-cp312-cp312-win32.whl", hash = "sha256:bcfc0d52ecca6c1b2fbeede65c1ad1545de633045d42ad0c6699039f28b5fb71", size = 1701065, upload-time = "2025-02-08T21:24:28.282Z" }, + { url = "https://files.pythonhosted.org/packages/5e/89/3f89de071920208c0eb64b827a878d2e587f6a3431b58c02f63c3468b76e/jsonschema_rs-0.29.1-cp312-cp312-win_amd64.whl", hash = "sha256:a414c162d687ee19171e2d8aae821f396d2f84a966fd5c5c757bd47df0954452", size = 1871774, upload-time = "2025-02-08T21:24:30.824Z" }, + { url = "https://files.pythonhosted.org/packages/1b/9b/d642024e8b39753b789598363fd5998eb3053b52755a5df6a021d53741d5/jsonschema_rs-0.29.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0afee5f31a940dec350a33549ec03f2d1eda2da3049a15cd951a266a57ef97ee", size = 3824864, upload-time = "2025-02-08T21:24:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/aa/3d/48a7baa2373b941e89a12e720dae123fd0a663c28c4e82213a29c89a4715/jsonschema_rs-0.29.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:c38453a5718bcf2ad1b0163d128814c12829c45f958f9407c69009d8b94a1232", size = 1966084, upload-time = "2025-02-08T21:24:33.8Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e4/f260917a17bb28bb1dec6fa5e869223341fac2c92053aa9bd23c1caaefa0/jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5dc8bdb1067bf4f6d2f80001a636202dc2cea027b8579f1658ce8e736b06557f", size = 2062430, upload-time = "2025-02-08T21:24:35.174Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e7/61353403b76768601d802afa5b7b5902d52c33d1dd0f3159aafa47463634/jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bcfe23992623a540169d0845ea8678209aa2fe7179941dc7c512efc0c2b6b46", size = 2065443, upload-time = "2025-02-08T21:24:36.778Z" }, + { url = "https://files.pythonhosted.org/packages/40/ed/40b971a09f46a22aa956071ea159413046e9d5fcd280a5910da058acdeb2/jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f2a526c0deacd588864d3400a0997421dffef6fe1df5cfda4513a453c01ad42", size = 2082606, upload-time = "2025-02-08T21:24:38.388Z" }, + { url = "https://files.pythonhosted.org/packages/bc/59/1c142e1bfb87d57c18fb189149f7aa8edf751725d238d787015278b07600/jsonschema_rs-0.29.1-cp313-cp313-win32.whl", hash = "sha256:68acaefb54f921243552d15cfee3734d222125584243ca438de4444c5654a8a3", size = 1700666, upload-time = "2025-02-08T21:24:40.573Z" }, + { url = "https://files.pythonhosted.org/packages/13/e8/f0ad941286cd350b879dd2b3c848deecd27f0b3fbc0ff44f2809ad59718d/jsonschema_rs-0.29.1-cp313-cp313-win_amd64.whl", hash = "sha256:1c4e5a61ac760a2fc3856a129cc84aa6f8fba7b9bc07b19fe4101050a8ecc33c", size = 1871619, upload-time = "2025-02-08T21:24:42.286Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipywidgets" }, + { name = "jupyter-console" }, + { name = "jupyterlab" }, + { name = "nbconvert" }, + { name = "notebook" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/f3/af28ea964ab8bc1e472dba2e82627d36d470c51f5cd38c37502eeffaa25e/jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a", size = 5714959, upload-time = "2024-08-30T07:15:48.299Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/64/285f20a31679bf547b75602702f7800e74dbabae36ef324f716c02804753/jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83", size = 2657, upload-time = "2024-08-30T07:15:47.045Z" }, +] + +[[package]] +name = "jupyter-client" +version = "8.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019, upload-time = "2024-09-17T10:44:17.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105, upload-time = "2024-09-17T10:44:15.218Z" }, +] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "pyzmq" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/2d/e2fd31e2fc41c14e2bcb6c976ab732597e907523f6b2420305f9fc7fdbdb/jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539", size = 34363, upload-time = "2023-03-06T14:13:31.02Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/77/71d78d58f15c22db16328a476426f7ac4a60d3a5a7ba3b9627ee2f7903d4/jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485", size = 24510, upload-time = "2023-03-06T14:13:28.229Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupyter-events" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format-nongpl"] }, + { name = "packaging" }, + { name = "python-json-logger" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/c3/306d090461e4cf3cd91eceaff84bede12a8e52cd821c2d20c9a4fd728385/jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b", size = 62196, upload-time = "2025-02-03T17:23:41.485Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/48/577993f1f99c552f18a0428731a755e06171f9902fa118c379eb7c04ea22/jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb", size = 19430, upload-time = "2025-02-03T17:23:38.643Z" }, +] + +[[package]] +name = "jupyter-lsp" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/5a/9066c9f8e94ee517133cd98dba393459a16cd48bba71a82f16a65415206c/jupyter_lsp-2.3.0.tar.gz", hash = "sha256:458aa59339dc868fb784d73364f17dbce8836e906cd75fd471a325cba02e0245", size = 54823, upload-time = "2025-08-27T17:47:34.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/60/1f6cee0c46263de1173894f0fafcb3475ded276c472c14d25e0280c18d6d/jupyter_lsp-2.3.0-py3-none-any.whl", hash = "sha256:e914a3cb2addf48b1c7710914771aaf1819d46b2e5a79b0f917b5478ec93f34f", size = 76687, upload-time = "2025-08-27T17:47:33.15Z" }, +] + +[[package]] +name = "jupyter-server" +version = "2.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "argon2-cffi" }, + { name = "jinja2" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "jupyter-events" }, + { name = "jupyter-server-terminals" }, + { name = "nbconvert" }, + { name = "nbformat" }, + { name = "overrides", marker = "python_full_version < '3.12'" }, + { name = "packaging" }, + { name = "prometheus-client" }, + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "pyzmq" }, + { name = "send2trash" }, + { name = "terminado" }, + { name = "tornado" }, + { name = "traitlets" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/ac/e040ec363d7b6b1f11304cc9f209dac4517ece5d5e01821366b924a64a50/jupyter_server-2.17.0.tar.gz", hash = "sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5", size = 731949, upload-time = "2025-08-21T14:42:54.042Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/80/a24767e6ca280f5a49525d987bf3e4d7552bf67c8be07e8ccf20271f8568/jupyter_server-2.17.0-py3-none-any.whl", hash = "sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f", size = 388221, upload-time = "2025-08-21T14:42:52.034Z" }, +] + +[[package]] +name = "jupyter-server-mathjax" +version = "0.2.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/40/9a1b8c2a2e44e8e2392174cd8e52e0c976335f004301f61b66addea3243e/jupyter_server_mathjax-0.2.6.tar.gz", hash = "sha256:bb1e6b6dc0686c1fe386a22b5886163db548893a99c2810c36399e9c4ca23943", size = 2648665, upload-time = "2022-07-14T16:19:32.161Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/77/6a98cc88f1061c0206b427b602efb6fcb9bc369e958aee11676d5cfc4412/jupyter_server_mathjax-0.2.6-py3-none-any.whl", hash = "sha256:416389dde2010df46d5fbbb7adb087a5607111070af65a1445391040f2babb5e", size = 3120990, upload-time = "2022-07-14T16:19:29.517Z" }, +] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "terminado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/d5/562469734f476159e99a55426d697cbf8e7eb5efe89fb0e0b4f83a3d3459/jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269", size = 31430, upload-time = "2024-03-12T14:37:03.049Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/2d/2b32cdbe8d2a602f697a649798554e4f072115438e92249624e532e8aca6/jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa", size = 13656, upload-time = "2024-03-12T14:37:00.708Z" }, +] + +[[package]] +name = "jupyterlab" +version = "4.4.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "async-lru" }, + { name = "httpx" }, + { name = "ipykernel" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyter-lsp" }, + { name = "jupyter-server" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "packaging" }, + { name = "setuptools" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/5d/75c42a48ff5fc826a7dff3fe4004cda47c54f9d981c351efacfbc9139d3c/jupyterlab-4.4.10.tar.gz", hash = "sha256:521c017508af4e1d6d9d8a9d90f47a11c61197ad63b2178342489de42540a615", size = 22969303, upload-time = "2025-10-22T14:50:58.768Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/46/1eaa5db8d54a594bdade67afbcae42e9a2da676628be3eb39f36dcff6390/jupyterlab-4.4.10-py3-none-any.whl", hash = "sha256:65939ab4c8dcd0c42185c2d0d1a9d60b254dc8c46fc4fdb286b63c51e9358e07", size = 12293385, upload-time = "2025-10-22T14:50:54.075Z" }, +] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900, upload-time = "2023-11-23T09:26:37.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884, upload-time = "2023-11-23T09:26:34.325Z" }, +] + +[[package]] +name = "jupyterlab-server" +version = "2.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "jinja2" }, + { name = "json5" }, + { name = "jsonschema" }, + { name = "jupyter-server" }, + { name = "packaging" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/90153f189e421e93c4bb4f9e3f59802a1f01abd2ac5cf40b152d7f735232/jupyterlab_server-2.28.0.tar.gz", hash = "sha256:35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c", size = 76996, upload-time = "2025-10-22T13:59:18.37Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/07/a000fe835f76b7e1143242ab1122e6362ef1c03f23f83a045c38859c2ae0/jupyterlab_server-2.28.0-py3-none-any.whl", hash = "sha256:e4355b148fdcf34d312bbbc80f22467d6d20460e8b8736bf235577dd18506968", size = 59830, upload-time = "2025-10-22T13:59:16.767Z" }, +] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/7d/160595ca88ee87ac6ba95d82177d29ec60aaa63821d3077babb22ce031a5/jupyterlab_widgets-3.0.15.tar.gz", hash = "sha256:2920888a0c2922351a9202817957a68c07d99673504d6cd37345299e971bb08b", size = 213149, upload-time = "2025-05-05T12:32:31.004Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/6a/ca128561b22b60bd5a0c4ea26649e68c8556b82bc70a0c396eebc977fe86/jupyterlab_widgets-3.0.15-py3-none-any.whl", hash = "sha256:d59023d7d7ef71400d51e6fee9a88867f6e65e10a4201605d2d7f3e8f012a31c", size = 216571, upload-time = "2025-05-05T12:32:29.534Z" }, +] + +[[package]] +name = "langchain" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langgraph" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/d6/bdf9ea27a92ed4685497c2659b5c7f703ba63bac4bd92351ca09bab3b924/langchain-1.0.2.tar.gz", hash = "sha256:22f814c7b4f5f76e945c35924ff288f6dfbe33747db2a029162ef1d4f8566493", size = 473869, upload-time = "2025-10-21T21:08:26.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/06/0e03587da37173c29a58bf17312793c2453df9ca2912e9adfe869c120437/langchain-1.0.2-py3-none-any.whl", hash = "sha256:e0c5647ea47cde7feb9534f56f4496c7f86a45084ad9bd152e7b19739f210ead", size = 107831, upload-time = "2025-10-21T21:08:25.009Z" }, +] + +[[package]] +name = "langchain-anthropic" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anthropic" }, + { name = "langchain-core" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/65/89ea83fe8e89381d31e8137b294f1858dea27f82c535553928783f8e669c/langchain_anthropic-1.0.0.tar.gz", hash = "sha256:a4f1168d119fb620f9c36e3db5c9fe632d1a0daee026d1c99234820cea714f32", size = 700946, upload-time = "2025-10-17T14:07:20.021Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/59/96b4edcca672875af4e60c3cafc2b6bbd6e9656a965dfb3543c758c0fbce/langchain_anthropic-1.0.0-py3-none-any.whl", hash = "sha256:455094c91d5c1d573830d023c964e1f2f8232e9c6c95df20468c8f9dc4ff9a50", size = 46403, upload-time = "2025-10-17T14:07:19.04Z" }, +] + +[[package]] +name = "langchain-classic" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langchain-text-splitters" }, + { name = "langsmith" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/b1/a66babeccb2c05ed89690a534296688c0349bee7a71641e91ecc2afd72fd/langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5", size = 10514930, upload-time = "2025-10-17T16:02:47.887Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/74/246f809a3741c21982f985ca0113ec92d3c84896308561cc4414823f6951/langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33", size = 1040701, upload-time = "2025-10-17T16:02:46.35Z" }, +] + +[[package]] +name = "langchain-community" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "dataclasses-json" }, + { name = "httpx-sse" }, + { name = "langchain-classic" }, + { name = "langchain-core" }, + { name = "langsmith" }, + { name = "numpy" }, + { name = "pydantic-settings" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy" }, + { name = "tenacity" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/97/a03585d42b9bdb6fbd935282d6e3348b10322a24e6ce12d0c99eb461d9af/langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85", size = 33241144, upload-time = "2025-10-27T15:20:32.504Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/a4/c4fde67f193401512337456cabc2148f2c43316e445f5decd9f8806e2992/langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a", size = 2533285, upload-time = "2025-10-27T15:20:30.767Z" }, +] + +[[package]] +name = "langchain-core" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpatch" }, + { name = "langsmith" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "tenacity" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e7/37/1bc4badb93eaa32406a7afdef011336b21719d21ce5ecebf35409a524f8c/langchain_core-1.0.1.tar.gz", hash = "sha256:d769e8d25854466abb672a721143a01bea11cc6ee2d7dae776aa092556db0a26", size = 764566, upload-time = "2025-10-24T16:39:35.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/54/3cdbe9d151d06cd689b5aa937ac11403b64bbfe76486fda6431a24061721/langchain_core-1.0.1-py3-none-any.whl", hash = "sha256:c7ce58fc487359c44166e255cc0009ef30290da0b6307b75091152847919661e", size = 467122, upload-time = "2025-10-24T16:39:33.788Z" }, +] + +[[package]] +name = "langchain-mcp-adapters" +version = "0.1.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "mcp" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/4e/b84af2e379edfb51db78edcfc6eab7dca798f2ce9d74b73e29f5f207685c/langchain_mcp_adapters-0.1.11.tar.gz", hash = "sha256:a217c49086b162344749f7f99a148fc12482e2da8e0260b2e35fc93afb31b38d", size = 23061, upload-time = "2025-10-03T14:53:13.98Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/cc/5f9b23cce308b2c30246e31712bf1a53ae49d97bab8b3d9bc9cfe364f82c/langchain_mcp_adapters-0.1.11-py3-none-any.whl", hash = "sha256:7b35921e9487bcb3ea3d94bf10341316ac897e2997e8a16032ae514834a9685d", size = 15751, upload-time = "2025-10-03T14:53:12.358Z" }, +] + +[[package]] +name = "langchain-openai" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "openai" }, + { name = "tiktoken" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/50/eaa53ac18f63b3e92e6c3a30269714cff477af5a568f486254779a9973f1/langchain_openai-1.0.1.tar.gz", hash = "sha256:78aff09a631fccca08a64f5fc669b325d0f5821490acce024e5da4cf0a08e0d0", size = 1025305, upload-time = "2025-10-21T15:45:06.095Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/c0/06d74093e3e798eb464ef76f53d031235b87feccdadbbf6f7b8409043e4d/langchain_openai-1.0.1-py3-none-any.whl", hash = "sha256:9b61309a7268e7c1c614c554cfd66401519e7434aaefc52de7e251887aceb5f7", size = 81898, upload-time = "2025-10-21T15:45:04.957Z" }, +] + +[[package]] +name = "langchain-text-splitters" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/2e/c833dcc379c1c086453708ef5eef7d4d1f808559ca4458bd6569d5d83ad7/langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744", size = 264257, upload-time = "2025-10-17T14:33:41.743Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/97/d362353ab04f865af6f81d4d46e7aa428734aa032de0017934b771fc34b7/langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e", size = 33851, upload-time = "2025-10-17T14:33:40.46Z" }, +] + +[[package]] +name = "langgraph" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langgraph-checkpoint" }, + { name = "langgraph-prebuilt" }, + { name = "langgraph-sdk" }, + { name = "pydantic" }, + { name = "xxhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/7c/a0f4211f751b8b37aae2d88c6243ceb14027ca9ebf00ac8f3b210657af6a/langgraph-1.0.1.tar.gz", hash = "sha256:4985b32ceabb046a802621660836355dfcf2402c5876675dc353db684aa8f563", size = 480245, upload-time = "2025-10-20T18:51:59.839Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/3c/acc0956a0da96b25a2c5c1a85168eacf1253639a04ed391d7a7bcaae5d6c/langgraph-1.0.1-py3-none-any.whl", hash = "sha256:892f04f64f4889abc80140265cc6bd57823dd8e327a5eef4968875f2cd9013bd", size = 155415, upload-time = "2025-10-20T18:51:58.321Z" }, +] + +[[package]] +name = "langgraph-api" +version = "0.4.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpickle" }, + { name = "cryptography" }, + { name = "grpcio" }, + { name = "grpcio-tools" }, + { name = "httpx" }, + { name = "jsonschema-rs" }, + { name = "langchain-core" }, + { name = "langgraph" }, + { name = "langgraph-checkpoint" }, + { name = "langgraph-runtime-inmem" }, + { name = "langgraph-sdk" }, + { name = "langsmith" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-http" }, + { name = "opentelemetry-sdk" }, + { name = "orjson" }, + { name = "protobuf" }, + { name = "pyjwt" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "structlog" }, + { name = "tenacity" }, + { name = "truststore" }, + { name = "uvicorn" }, + { name = "watchfiles" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/47/0918d3e46d67baff427d14e3d24e87772046ba568021a2d21a2d3396bd36/langgraph_api-0.4.46.tar.gz", hash = "sha256:b1c544216cb512c42422a03dd0c95407ea44e37454959e3ee273425f1bb7329b", size = 342137, upload-time = "2025-10-21T21:40:19.043Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/a6/0e7f6a2326ef5d0505372cff67619868d86eb7033f8fcb18bc0226e1a84f/langgraph_api-0.4.46-py3-none-any.whl", hash = "sha256:e61aa4eff6d22e6fd75d56687944d83e35ed6fa8c01ba2e2c9a53ba5d4d083a8", size = 256638, upload-time = "2025-10-21T21:40:17.215Z" }, +] + +[[package]] +name = "langgraph-checkpoint" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "ormsgpack" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/cb/2a6dad2f0a14317580cc122e2a60e7f0ecabb50aaa6dc5b7a6a2c94cead7/langgraph_checkpoint-3.0.0.tar.gz", hash = "sha256:f738695ad938878d8f4775d907d9629e9fcd345b1950196effb08f088c52369e", size = 132132, upload-time = "2025-10-20T18:35:49.132Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/2a/2efe0b5a72c41e3a936c81c5f5d8693987a1b260287ff1bbebaae1b7b888/langgraph_checkpoint-3.0.0-py3-none-any.whl", hash = "sha256:560beb83e629784ab689212a3d60834fb3196b4bbe1d6ac18e5cad5d85d46010", size = 46060, upload-time = "2025-10-20T18:35:48.255Z" }, +] + +[[package]] +name = "langgraph-cli" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "langgraph-sdk" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/d3/8799897f41ade873787f6184b7d0fd58b05260d3b80211b9ef917afe28da/langgraph_cli-0.4.4.tar.gz", hash = "sha256:bcc959c9270115e6b1be3971d98924552731d67ef2d4f2d05eadccf9b53d00a5", size = 781327, upload-time = "2025-10-17T00:46:53.095Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/e0/25e157e65015b8195a74fa0be3e67e2c7db71b2ab066a8b59c8b99647cda/langgraph_cli-0.4.4-py3-none-any.whl", hash = "sha256:661889c202b3e3900ae5b49bea915d6717c452fd48066f3e5cfc229d84454cfc", size = 38319, upload-time = "2025-10-17T00:46:51.802Z" }, +] + +[package.optional-dependencies] +inmem = [ + { name = "langgraph-api" }, + { name = "langgraph-runtime-inmem" }, + { name = "python-dotenv" }, +] + +[[package]] +name = "langgraph-prebuilt" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langgraph-checkpoint" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/b6/2bcb992acf67713a3557e51c1955854672ec6c1abe6ba51173a87eb8d825/langgraph_prebuilt-1.0.1.tar.gz", hash = "sha256:ecbfb9024d9d7ed9652dde24eef894650aaab96bf79228e862c503e2a060b469", size = 119918, upload-time = "2025-10-20T18:49:55.991Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/47/9ffd10882403020ea866e381de7f8e504a78f606a914af7f8244456c7783/langgraph_prebuilt-1.0.1-py3-none-any.whl", hash = "sha256:8c02e023538f7ef6ad5ed76219ba1ab4f6de0e31b749e4d278f57a8a95eec9f7", size = 28458, upload-time = "2025-10-20T18:49:54.723Z" }, +] + +[[package]] +name = "langgraph-runtime-inmem" +version = "0.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blockbuster" }, + { name = "langgraph" }, + { name = "langgraph-checkpoint" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "structlog" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/01/f4e7e31a5ad02f06ca000f32e8712ded0b794c628ab57958a78befe90f8e/langgraph_runtime_inmem-0.14.1.tar.gz", hash = "sha256:388813170c747fc5bfa11a45d768ed68435672b8a97b54ebffa331d24fa79cbc", size = 81912, upload-time = "2025-09-25T19:47:11.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/d2/e4ab52882f53215d1751742e36701c7c9b993800a78a7ee74c51b6ebdc73/langgraph_runtime_inmem-0.14.1-py3-none-any.whl", hash = "sha256:08666a5a90a6039eb1e17680893c1f55ada02d24321fdc384431e5ac6e5d4138", size = 33925, upload-time = "2025-09-25T19:47:10.677Z" }, +] + +[[package]] +name = "langgraph-sdk" +version = "0.2.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "orjson" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/d8/40e01190a73c564a4744e29a6c902f78d34d43dad9b652a363a92a67059c/langgraph_sdk-0.2.9.tar.gz", hash = "sha256:b3bd04c6be4fa382996cd2be8fbc1e7cc94857d2bc6b6f4599a7f2a245975303", size = 99802, upload-time = "2025-09-20T18:49:14.734Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/05/b2d34e16638241e6f27a6946d28160d4b8b641383787646d41a3727e0896/langgraph_sdk-0.2.9-py3-none-any.whl", hash = "sha256:fbf302edadbf0fb343596f91c597794e936ef68eebc0d3e1d358b6f9f72a1429", size = 56752, upload-time = "2025-09-20T18:49:13.346Z" }, +] + +[[package]] +name = "langsmith" +version = "0.4.38" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "orjson", marker = "platform_python_implementation != 'PyPy'" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "zstandard" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/21/f1ba48412c64bf3bb8feb532fc9d247b396935b5d8242332d44a4195ec2d/langsmith-0.4.38.tar.gz", hash = "sha256:3aa57f9c16a5880256cd1eab0452533c1fb5ee14ec5250e23ed919cc2b07f6d3", size = 942789, upload-time = "2025-10-23T22:28:20.458Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/2b/7e0248f65e35800ea8e4e3dbb3bcc36c61b81f5b8abeddaceec8320ab491/langsmith-0.4.38-py3-none-any.whl", hash = "sha256:326232a24b1c6dd308a3188557cc023adf8fb14144263b2982c115a6be5141e7", size = 397341, upload-time = "2025-10-23T22:28:18.333Z" }, +] + +[[package]] +name = "lark" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, +] + +[[package]] +name = "marshmallow" +version = "3.26.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/5e/5e53d26b42ab75491cda89b871dab9e97c840bf12c63ec58a1919710cd06/marshmallow-3.26.1.tar.gz", hash = "sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6", size = 221825, upload-time = "2025-02-03T15:32:25.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/75/51952c7b2d3873b44a0028b1bd26a25078c18f92f256608e8d1dc61b39fd/marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c", size = 50878, upload-time = "2025-02-03T15:32:22.295Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + +[[package]] +name = "mcp" +version = "1.19.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/2b/916852a5668f45d8787378461eaa1244876d77575ffef024483c94c0649c/mcp-1.19.0.tar.gz", hash = "sha256:213de0d3cd63f71bc08ffe9cc8d4409cc87acffd383f6195d2ce0457c021b5c1", size = 444163, upload-time = "2025-10-24T01:11:15.839Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/a3/3e71a875a08b6a830b88c40bc413bff01f1650f1efe8a054b5e90a9d4f56/mcp-1.19.0-py3-none-any.whl", hash = "sha256:f5907fe1c0167255f916718f376d05f09a830a215327a3ccdd5ec8a519f2e572", size = 170105, upload-time = "2025-10-24T01:11:14.151Z" }, +] + +[[package]] +name = "mistune" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/02/a7fb8b21d4d55ac93cdcde9d3638da5dd0ebdd3a4fed76c7725e10b81cbe/mistune-3.1.4.tar.gz", hash = "sha256:b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164", size = 94588, upload-time = "2025-08-29T07:20:43.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/f0/8282d9641415e9e33df173516226b404d367a0fc55e1a60424a152913abc/mistune-3.1.4-py3-none-any.whl", hash = "sha256:93691da911e5d9d2e23bc54472892aff676df27a75274962ff9edc210364266d", size = 53481, upload-time = "2025-08-29T07:20:42.218Z" }, +] + +[[package]] +name = "multidict" +version = "6.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/80/1e/5492c365f222f907de1039b91f922b93fa4f764c713ee858d235495d8f50/multidict-6.7.0.tar.gz", hash = "sha256:c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5", size = 101834, upload-time = "2025-10-06T14:52:30.657Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/9e/5c727587644d67b2ed479041e4b1c58e30afc011e3d45d25bbe35781217c/multidict-6.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4d409aa42a94c0b3fa617708ef5276dfe81012ba6753a0370fcc9d0195d0a1fc", size = 76604, upload-time = "2025-10-06T14:48:54.277Z" }, + { url = "https://files.pythonhosted.org/packages/17/e4/67b5c27bd17c085a5ea8f1ec05b8a3e5cba0ca734bfcad5560fb129e70ca/multidict-6.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14c9e076eede3b54c636f8ce1c9c252b5f057c62131211f0ceeec273810c9721", size = 44715, upload-time = "2025-10-06T14:48:55.445Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/866a5d77be6ea435711bef2a4291eed11032679b6b28b56b4776ab06ba3e/multidict-6.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c09703000a9d0fa3c3404b27041e574cc7f4df4c6563873246d0e11812a94b6", size = 44332, upload-time = "2025-10-06T14:48:56.706Z" }, + { url = "https://files.pythonhosted.org/packages/31/61/0c2d50241ada71ff61a79518db85ada85fdabfcf395d5968dae1cbda04e5/multidict-6.7.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a265acbb7bb33a3a2d626afbe756371dce0279e7b17f4f4eda406459c2b5ff1c", size = 245212, upload-time = "2025-10-06T14:48:58.042Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e0/919666a4e4b57fff1b57f279be1c9316e6cdc5de8a8b525d76f6598fefc7/multidict-6.7.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51cb455de290ae462593e5b1cb1118c5c22ea7f0d3620d9940bf695cea5a4bd7", size = 246671, upload-time = "2025-10-06T14:49:00.004Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cc/d027d9c5a520f3321b65adea289b965e7bcbd2c34402663f482648c716ce/multidict-6.7.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:db99677b4457c7a5c5a949353e125ba72d62b35f74e26da141530fbb012218a7", size = 225491, upload-time = "2025-10-06T14:49:01.393Z" }, + { url = "https://files.pythonhosted.org/packages/75/c4/bbd633980ce6155a28ff04e6a6492dd3335858394d7bb752d8b108708558/multidict-6.7.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f470f68adc395e0183b92a2f4689264d1ea4b40504a24d9882c27375e6662bb9", size = 257322, upload-time = "2025-10-06T14:49:02.745Z" }, + { url = "https://files.pythonhosted.org/packages/4c/6d/d622322d344f1f053eae47e033b0b3f965af01212de21b10bcf91be991fb/multidict-6.7.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0db4956f82723cc1c270de9c6e799b4c341d327762ec78ef82bb962f79cc07d8", size = 254694, upload-time = "2025-10-06T14:49:04.15Z" }, + { url = "https://files.pythonhosted.org/packages/a8/9f/78f8761c2705d4c6d7516faed63c0ebdac569f6db1bef95e0d5218fdc146/multidict-6.7.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e56d780c238f9e1ae66a22d2adf8d16f485381878250db8d496623cd38b22bd", size = 246715, upload-time = "2025-10-06T14:49:05.967Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/950818e04f91b9c2b95aab3d923d9eabd01689d0dcd889563988e9ea0fd8/multidict-6.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d14baca2ee12c1a64740d4531356ba50b82543017f3ad6de0deb943c5979abb", size = 243189, upload-time = "2025-10-06T14:49:07.37Z" }, + { url = "https://files.pythonhosted.org/packages/7a/3d/77c79e1934cad2ee74991840f8a0110966d9599b3af95964c0cd79bb905b/multidict-6.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:295a92a76188917c7f99cda95858c822f9e4aae5824246bba9b6b44004ddd0a6", size = 237845, upload-time = "2025-10-06T14:49:08.759Z" }, + { url = "https://files.pythonhosted.org/packages/63/1b/834ce32a0a97a3b70f86437f685f880136677ac00d8bce0027e9fd9c2db7/multidict-6.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39f1719f57adbb767ef592a50ae5ebb794220d1188f9ca93de471336401c34d2", size = 246374, upload-time = "2025-10-06T14:49:10.574Z" }, + { url = "https://files.pythonhosted.org/packages/23/ef/43d1c3ba205b5dec93dc97f3fba179dfa47910fc73aaaea4f7ceb41cec2a/multidict-6.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0a13fb8e748dfc94749f622de065dd5c1def7e0d2216dba72b1d8069a389c6ff", size = 253345, upload-time = "2025-10-06T14:49:12.331Z" }, + { url = "https://files.pythonhosted.org/packages/6b/03/eaf95bcc2d19ead522001f6a650ef32811aa9e3624ff0ad37c445c7a588c/multidict-6.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e3aa16de190d29a0ea1b48253c57d99a68492c8dd8948638073ab9e74dc9410b", size = 246940, upload-time = "2025-10-06T14:49:13.821Z" }, + { url = "https://files.pythonhosted.org/packages/e8/df/ec8a5fd66ea6cd6f525b1fcbb23511b033c3e9bc42b81384834ffa484a62/multidict-6.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a048ce45dcdaaf1defb76b2e684f997fb5abf74437b6cb7b22ddad934a964e34", size = 242229, upload-time = "2025-10-06T14:49:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/8a/a2/59b405d59fd39ec86d1142630e9049243015a5f5291ba49cadf3c090c541/multidict-6.7.0-cp311-cp311-win32.whl", hash = "sha256:a90af66facec4cebe4181b9e62a68be65e45ac9b52b67de9eec118701856e7ff", size = 41308, upload-time = "2025-10-06T14:49:16.871Z" }, + { url = "https://files.pythonhosted.org/packages/32/0f/13228f26f8b882c34da36efa776c3b7348455ec383bab4a66390e42963ae/multidict-6.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:95b5ffa4349df2887518bb839409bcf22caa72d82beec453216802f475b23c81", size = 46037, upload-time = "2025-10-06T14:49:18.457Z" }, + { url = "https://files.pythonhosted.org/packages/84/1f/68588e31b000535a3207fd3c909ebeec4fb36b52c442107499c18a896a2a/multidict-6.7.0-cp311-cp311-win_arm64.whl", hash = "sha256:329aa225b085b6f004a4955271a7ba9f1087e39dcb7e65f6284a988264a63912", size = 43023, upload-time = "2025-10-06T14:49:19.648Z" }, + { url = "https://files.pythonhosted.org/packages/c2/9e/9f61ac18d9c8b475889f32ccfa91c9f59363480613fc807b6e3023d6f60b/multidict-6.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8a3862568a36d26e650a19bb5cbbba14b71789032aebc0423f8cc5f150730184", size = 76877, upload-time = "2025-10-06T14:49:20.884Z" }, + { url = "https://files.pythonhosted.org/packages/38/6f/614f09a04e6184f8824268fce4bc925e9849edfa654ddd59f0b64508c595/multidict-6.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:960c60b5849b9b4f9dcc9bea6e3626143c252c74113df2c1540aebce70209b45", size = 45467, upload-time = "2025-10-06T14:49:22.054Z" }, + { url = "https://files.pythonhosted.org/packages/b3/93/c4f67a436dd026f2e780c433277fff72be79152894d9fc36f44569cab1a6/multidict-6.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2049be98fb57a31b4ccf870bf377af2504d4ae35646a19037ec271e4c07998aa", size = 43834, upload-time = "2025-10-06T14:49:23.566Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f5/013798161ca665e4a422afbc5e2d9e4070142a9ff8905e482139cd09e4d0/multidict-6.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0934f3843a1860dd465d38895c17fce1f1cb37295149ab05cd1b9a03afacb2a7", size = 250545, upload-time = "2025-10-06T14:49:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/71/2f/91dbac13e0ba94669ea5119ba267c9a832f0cb65419aca75549fcf09a3dc/multidict-6.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3e34f3a1b8131ba06f1a73adab24f30934d148afcd5f5de9a73565a4404384e", size = 258305, upload-time = "2025-10-06T14:49:26.778Z" }, + { url = "https://files.pythonhosted.org/packages/ef/b0/754038b26f6e04488b48ac621f779c341338d78503fb45403755af2df477/multidict-6.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:efbb54e98446892590dc2458c19c10344ee9a883a79b5cec4bc34d6656e8d546", size = 242363, upload-time = "2025-10-06T14:49:28.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/15/9da40b9336a7c9fa606c4cf2ed80a649dffeb42b905d4f63a1d7eb17d746/multidict-6.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a35c5fc61d4f51eb045061e7967cfe3123d622cd500e8868e7c0c592a09fedc4", size = 268375, upload-time = "2025-10-06T14:49:29.96Z" }, + { url = "https://files.pythonhosted.org/packages/82/72/c53fcade0cc94dfaad583105fd92b3a783af2091eddcb41a6d5a52474000/multidict-6.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29fe6740ebccba4175af1b9b87bf553e9c15cd5868ee967e010efcf94e4fd0f1", size = 269346, upload-time = "2025-10-06T14:49:31.404Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e2/9baffdae21a76f77ef8447f1a05a96ec4bc0a24dae08767abc0a2fe680b8/multidict-6.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:123e2a72e20537add2f33a79e605f6191fba2afda4cbb876e35c1a7074298a7d", size = 256107, upload-time = "2025-10-06T14:49:32.974Z" }, + { url = "https://files.pythonhosted.org/packages/3c/06/3f06f611087dc60d65ef775f1fb5aca7c6d61c6db4990e7cda0cef9b1651/multidict-6.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b284e319754366c1aee2267a2036248b24eeb17ecd5dc16022095e747f2f4304", size = 253592, upload-time = "2025-10-06T14:49:34.52Z" }, + { url = "https://files.pythonhosted.org/packages/20/24/54e804ec7945b6023b340c412ce9c3f81e91b3bf5fa5ce65558740141bee/multidict-6.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:803d685de7be4303b5a657b76e2f6d1240e7e0a8aa2968ad5811fa2285553a12", size = 251024, upload-time = "2025-10-06T14:49:35.956Z" }, + { url = "https://files.pythonhosted.org/packages/14/48/011cba467ea0b17ceb938315d219391d3e421dfd35928e5dbdc3f4ae76ef/multidict-6.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c04a328260dfd5db8c39538f999f02779012268f54614902d0afc775d44e0a62", size = 251484, upload-time = "2025-10-06T14:49:37.631Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2f/919258b43bb35b99fa127435cfb2d91798eb3a943396631ef43e3720dcf4/multidict-6.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8a19cdb57cd3df4cd865849d93ee14920fb97224300c88501f16ecfa2604b4e0", size = 263579, upload-time = "2025-10-06T14:49:39.502Z" }, + { url = "https://files.pythonhosted.org/packages/31/22/a0e884d86b5242b5a74cf08e876bdf299e413016b66e55511f7a804a366e/multidict-6.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b2fd74c52accced7e75de26023b7dccee62511a600e62311b918ec5c168fc2a", size = 259654, upload-time = "2025-10-06T14:49:41.32Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e5/17e10e1b5c5f5a40f2fcbb45953c9b215f8a4098003915e46a93f5fcaa8f/multidict-6.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e8bfdd0e487acf992407a140d2589fe598238eaeffa3da8448d63a63cd363f8", size = 251511, upload-time = "2025-10-06T14:49:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9a/201bb1e17e7af53139597069c375e7b0dcbd47594604f65c2d5359508566/multidict-6.7.0-cp312-cp312-win32.whl", hash = "sha256:dd32a49400a2c3d52088e120ee00c1e3576cbff7e10b98467962c74fdb762ed4", size = 41895, upload-time = "2025-10-06T14:49:48.718Z" }, + { url = "https://files.pythonhosted.org/packages/46/e2/348cd32faad84eaf1d20cce80e2bb0ef8d312c55bca1f7fa9865e7770aaf/multidict-6.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:92abb658ef2d7ef22ac9f8bb88e8b6c3e571671534e029359b6d9e845923eb1b", size = 46073, upload-time = "2025-10-06T14:49:50.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ec/aad2613c1910dce907480e0c3aa306905830f25df2e54ccc9dea450cb5aa/multidict-6.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:490dab541a6a642ce1a9d61a4781656b346a55c13038f0b1244653828e3a83ec", size = 43226, upload-time = "2025-10-06T14:49:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/d2/86/33272a544eeb36d66e4d9a920602d1a2f57d4ebea4ef3cdfe5a912574c95/multidict-6.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bee7c0588aa0076ce77c0ea5d19a68d76ad81fcd9fe8501003b9a24f9d4000f6", size = 76135, upload-time = "2025-10-06T14:49:54.26Z" }, + { url = "https://files.pythonhosted.org/packages/91/1c/eb97db117a1ebe46d457a3d235a7b9d2e6dcab174f42d1b67663dd9e5371/multidict-6.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7ef6b61cad77091056ce0e7ce69814ef72afacb150b7ac6a3e9470def2198159", size = 45117, upload-time = "2025-10-06T14:49:55.82Z" }, + { url = "https://files.pythonhosted.org/packages/f1/d8/6c3442322e41fb1dd4de8bd67bfd11cd72352ac131f6368315617de752f1/multidict-6.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c0359b1ec12b1d6849c59f9d319610b7f20ef990a6d454ab151aa0e3b9f78ca", size = 43472, upload-time = "2025-10-06T14:49:57.048Z" }, + { url = "https://files.pythonhosted.org/packages/75/3f/e2639e80325af0b6c6febdf8e57cc07043ff15f57fa1ef808f4ccb5ac4cd/multidict-6.7.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cd240939f71c64bd658f186330603aac1a9a81bf6273f523fca63673cb7378a8", size = 249342, upload-time = "2025-10-06T14:49:58.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cc/84e0585f805cbeaa9cbdaa95f9a3d6aed745b9d25700623ac89a6ecff400/multidict-6.7.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60a4d75718a5efa473ebd5ab685786ba0c67b8381f781d1be14da49f1a2dc60", size = 257082, upload-time = "2025-10-06T14:49:59.89Z" }, + { url = "https://files.pythonhosted.org/packages/b0/9c/ac851c107c92289acbbf5cfb485694084690c1b17e555f44952c26ddc5bd/multidict-6.7.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53a42d364f323275126aff81fb67c5ca1b7a04fda0546245730a55c8c5f24bc4", size = 240704, upload-time = "2025-10-06T14:50:01.485Z" }, + { url = "https://files.pythonhosted.org/packages/50/cc/5f93e99427248c09da95b62d64b25748a5f5c98c7c2ab09825a1d6af0e15/multidict-6.7.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3b29b980d0ddbecb736735ee5bef69bb2ddca56eff603c86f3f29a1128299b4f", size = 266355, upload-time = "2025-10-06T14:50:02.955Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0c/2ec1d883ceb79c6f7f6d7ad90c919c898f5d1c6ea96d322751420211e072/multidict-6.7.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8a93b1c0ed2d04b97a5e9336fd2d33371b9a6e29ab7dd6503d63407c20ffbaf", size = 267259, upload-time = "2025-10-06T14:50:04.446Z" }, + { url = "https://files.pythonhosted.org/packages/c6/2d/f0b184fa88d6630aa267680bdb8623fb69cb0d024b8c6f0d23f9a0f406d3/multidict-6.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ff96e8815eecacc6645da76c413eb3b3d34cfca256c70b16b286a687d013c32", size = 254903, upload-time = "2025-10-06T14:50:05.98Z" }, + { url = "https://files.pythonhosted.org/packages/06/c9/11ea263ad0df7dfabcad404feb3c0dd40b131bc7f232d5537f2fb1356951/multidict-6.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7516c579652f6a6be0e266aec0acd0db80829ca305c3d771ed898538804c2036", size = 252365, upload-time = "2025-10-06T14:50:07.511Z" }, + { url = "https://files.pythonhosted.org/packages/41/88/d714b86ee2c17d6e09850c70c9d310abac3d808ab49dfa16b43aba9d53fd/multidict-6.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:040f393368e63fb0f3330e70c26bfd336656bed925e5cbe17c9da839a6ab13ec", size = 250062, upload-time = "2025-10-06T14:50:09.074Z" }, + { url = "https://files.pythonhosted.org/packages/15/fe/ad407bb9e818c2b31383f6131ca19ea7e35ce93cf1310fce69f12e89de75/multidict-6.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b3bc26a951007b1057a1c543af845f1c7e3e71cc240ed1ace7bf4484aa99196e", size = 249683, upload-time = "2025-10-06T14:50:10.714Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a4/a89abdb0229e533fb925e7c6e5c40201c2873efebc9abaf14046a4536ee6/multidict-6.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7b022717c748dd1992a83e219587aabe45980d88969f01b316e78683e6285f64", size = 261254, upload-time = "2025-10-06T14:50:12.28Z" }, + { url = "https://files.pythonhosted.org/packages/8d/aa/0e2b27bd88b40a4fb8dc53dd74eecac70edaa4c1dd0707eb2164da3675b3/multidict-6.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9600082733859f00d79dee64effc7aef1beb26adb297416a4ad2116fd61374bd", size = 257967, upload-time = "2025-10-06T14:50:14.16Z" }, + { url = "https://files.pythonhosted.org/packages/d0/8e/0c67b7120d5d5f6d874ed85a085f9dc770a7f9d8813e80f44a9fec820bb7/multidict-6.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:94218fcec4d72bc61df51c198d098ce2b378e0ccbac41ddbed5ef44092913288", size = 250085, upload-time = "2025-10-06T14:50:15.639Z" }, + { url = "https://files.pythonhosted.org/packages/ba/55/b73e1d624ea4b8fd4dd07a3bb70f6e4c7c6c5d9d640a41c6ffe5cdbd2a55/multidict-6.7.0-cp313-cp313-win32.whl", hash = "sha256:a37bd74c3fa9d00be2d7b8eca074dc56bd8077ddd2917a839bd989612671ed17", size = 41713, upload-time = "2025-10-06T14:50:17.066Z" }, + { url = "https://files.pythonhosted.org/packages/32/31/75c59e7d3b4205075b4c183fa4ca398a2daf2303ddf616b04ae6ef55cffe/multidict-6.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:30d193c6cc6d559db42b6bcec8a5d395d34d60c9877a0b71ecd7c204fcf15390", size = 45915, upload-time = "2025-10-06T14:50:18.264Z" }, + { url = "https://files.pythonhosted.org/packages/31/2a/8987831e811f1184c22bc2e45844934385363ee61c0a2dcfa8f71b87e608/multidict-6.7.0-cp313-cp313-win_arm64.whl", hash = "sha256:ea3334cabe4d41b7ccd01e4d349828678794edbc2d3ae97fc162a3312095092e", size = 43077, upload-time = "2025-10-06T14:50:19.853Z" }, + { url = "https://files.pythonhosted.org/packages/e8/68/7b3a5170a382a340147337b300b9eb25a9ddb573bcdfff19c0fa3f31ffba/multidict-6.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ad9ce259f50abd98a1ca0aa6e490b58c316a0fce0617f609723e40804add2c00", size = 83114, upload-time = "2025-10-06T14:50:21.223Z" }, + { url = "https://files.pythonhosted.org/packages/55/5c/3fa2d07c84df4e302060f555bbf539310980362236ad49f50eeb0a1c1eb9/multidict-6.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07f5594ac6d084cbb5de2df218d78baf55ef150b91f0ff8a21cc7a2e3a5a58eb", size = 48442, upload-time = "2025-10-06T14:50:22.871Z" }, + { url = "https://files.pythonhosted.org/packages/fc/56/67212d33239797f9bd91962bb899d72bb0f4c35a8652dcdb8ed049bef878/multidict-6.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0591b48acf279821a579282444814a2d8d0af624ae0bc600aa4d1b920b6e924b", size = 46885, upload-time = "2025-10-06T14:50:24.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/d1/908f896224290350721597a61a69cd19b89ad8ee0ae1f38b3f5cd12ea2ac/multidict-6.7.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:749a72584761531d2b9467cfbdfd29487ee21124c304c4b6cb760d8777b27f9c", size = 242588, upload-time = "2025-10-06T14:50:25.716Z" }, + { url = "https://files.pythonhosted.org/packages/ab/67/8604288bbd68680eee0ab568fdcb56171d8b23a01bcd5cb0c8fedf6e5d99/multidict-6.7.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b4c3d199f953acd5b446bf7c0de1fe25d94e09e79086f8dc2f48a11a129cdf1", size = 249966, upload-time = "2025-10-06T14:50:28.192Z" }, + { url = "https://files.pythonhosted.org/packages/20/33/9228d76339f1ba51e3efef7da3ebd91964d3006217aae13211653193c3ff/multidict-6.7.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9fb0211dfc3b51efea2f349ec92c114d7754dd62c01f81c3e32b765b70c45c9b", size = 228618, upload-time = "2025-10-06T14:50:29.82Z" }, + { url = "https://files.pythonhosted.org/packages/f8/2d/25d9b566d10cab1c42b3b9e5b11ef79c9111eaf4463b8c257a3bd89e0ead/multidict-6.7.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a027ec240fe73a8d6281872690b988eed307cd7d91b23998ff35ff577ca688b5", size = 257539, upload-time = "2025-10-06T14:50:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b1/8d1a965e6637fc33de3c0d8f414485c2b7e4af00f42cab3d84e7b955c222/multidict-6.7.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1d964afecdf3a8288789df2f5751dc0a8261138c3768d9af117ed384e538fad", size = 256345, upload-time = "2025-10-06T14:50:33.26Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/06b5a8adbdeedada6f4fb8d8f193d44a347223b11939b42953eeb6530b6b/multidict-6.7.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:caf53b15b1b7df9fbd0709aa01409000a2b4dd03a5f6f5cc548183c7c8f8b63c", size = 247934, upload-time = "2025-10-06T14:50:34.808Z" }, + { url = "https://files.pythonhosted.org/packages/8f/31/b2491b5fe167ca044c6eb4b8f2c9f3b8a00b24c432c365358eadac5d7625/multidict-6.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:654030da3197d927f05a536a66186070e98765aa5142794c9904555d3a9d8fb5", size = 245243, upload-time = "2025-10-06T14:50:36.436Z" }, + { url = "https://files.pythonhosted.org/packages/61/1a/982913957cb90406c8c94f53001abd9eafc271cb3e70ff6371590bec478e/multidict-6.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2090d3718829d1e484706a2f525e50c892237b2bf9b17a79b059cb98cddc2f10", size = 235878, upload-time = "2025-10-06T14:50:37.953Z" }, + { url = "https://files.pythonhosted.org/packages/be/c0/21435d804c1a1cf7a2608593f4d19bca5bcbd7a81a70b253fdd1c12af9c0/multidict-6.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d2cfeec3f6f45651b3d408c4acec0ebf3daa9bc8a112a084206f5db5d05b754", size = 243452, upload-time = "2025-10-06T14:50:39.574Z" }, + { url = "https://files.pythonhosted.org/packages/54/0a/4349d540d4a883863191be6eb9a928846d4ec0ea007d3dcd36323bb058ac/multidict-6.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:4ef089f985b8c194d341eb2c24ae6e7408c9a0e2e5658699c92f497437d88c3c", size = 252312, upload-time = "2025-10-06T14:50:41.612Z" }, + { url = "https://files.pythonhosted.org/packages/26/64/d5416038dbda1488daf16b676e4dbfd9674dde10a0cc8f4fc2b502d8125d/multidict-6.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e93a0617cd16998784bf4414c7e40f17a35d2350e5c6f0bd900d3a8e02bd3762", size = 246935, upload-time = "2025-10-06T14:50:43.972Z" }, + { url = "https://files.pythonhosted.org/packages/9f/8c/8290c50d14e49f35e0bd4abc25e1bc7711149ca9588ab7d04f886cdf03d9/multidict-6.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f0feece2ef8ebc42ed9e2e8c78fc4aa3cf455733b507c09ef7406364c94376c6", size = 243385, upload-time = "2025-10-06T14:50:45.648Z" }, + { url = "https://files.pythonhosted.org/packages/ef/a0/f83ae75e42d694b3fbad3e047670e511c138be747bc713cf1b10d5096416/multidict-6.7.0-cp313-cp313t-win32.whl", hash = "sha256:19a1d55338ec1be74ef62440ca9e04a2f001a04d0cc49a4983dc320ff0f3212d", size = 47777, upload-time = "2025-10-06T14:50:47.154Z" }, + { url = "https://files.pythonhosted.org/packages/dc/80/9b174a92814a3830b7357307a792300f42c9e94664b01dee8e457551fa66/multidict-6.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3da4fb467498df97e986af166b12d01f05d2e04f978a9c1c680ea1988e0bc4b6", size = 53104, upload-time = "2025-10-06T14:50:48.851Z" }, + { url = "https://files.pythonhosted.org/packages/cc/28/04baeaf0428d95bb7a7bea0e691ba2f31394338ba424fb0679a9ed0f4c09/multidict-6.7.0-cp313-cp313t-win_arm64.whl", hash = "sha256:b4121773c49a0776461f4a904cdf6264c88e42218aaa8407e803ca8025872792", size = 45503, upload-time = "2025-10-06T14:50:50.16Z" }, + { url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" }, +] + +[[package]] +name = "mypy" +version = "1.18.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/77/8f0d0001ffad290cef2f7f216f96c814866248a0b92a722365ed54648e7e/mypy-1.18.2.tar.gz", hash = "sha256:06a398102a5f203d7477b2923dda3634c36727fa5c237d8f859ef90c42a9924b", size = 3448846, upload-time = "2025-09-19T00:11:10.519Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/87/cafd3ae563f88f94eec33f35ff722d043e09832ea8530ef149ec1efbaf08/mypy-1.18.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:807d9315ab9d464125aa9fcf6d84fde6e1dc67da0b6f80e7405506b8ac72bc7f", size = 12731198, upload-time = "2025-09-19T00:09:44.857Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e0/1e96c3d4266a06d4b0197ace5356d67d937d8358e2ee3ffac71faa843724/mypy-1.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:776bb00de1778caf4db739c6e83919c1d85a448f71979b6a0edd774ea8399341", size = 11817879, upload-time = "2025-09-19T00:09:47.131Z" }, + { url = "https://files.pythonhosted.org/packages/72/ef/0c9ba89eb03453e76bdac5a78b08260a848c7bfc5d6603634774d9cd9525/mypy-1.18.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1379451880512ffce14505493bd9fe469e0697543717298242574882cf8cdb8d", size = 12427292, upload-time = "2025-09-19T00:10:22.472Z" }, + { url = "https://files.pythonhosted.org/packages/1a/52/ec4a061dd599eb8179d5411d99775bec2a20542505988f40fc2fee781068/mypy-1.18.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1331eb7fd110d60c24999893320967594ff84c38ac6d19e0a76c5fd809a84c86", size = 13163750, upload-time = "2025-09-19T00:09:51.472Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5f/2cf2ceb3b36372d51568f2208c021870fe7834cf3186b653ac6446511839/mypy-1.18.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ca30b50a51e7ba93b00422e486cbb124f1c56a535e20eff7b2d6ab72b3b2e37", size = 13351827, upload-time = "2025-09-19T00:09:58.311Z" }, + { url = "https://files.pythonhosted.org/packages/c8/7d/2697b930179e7277529eaaec1513f8de622818696857f689e4a5432e5e27/mypy-1.18.2-cp311-cp311-win_amd64.whl", hash = "sha256:664dc726e67fa54e14536f6e1224bcfce1d9e5ac02426d2326e2bb4e081d1ce8", size = 9757983, upload-time = "2025-09-19T00:10:09.071Z" }, + { url = "https://files.pythonhosted.org/packages/07/06/dfdd2bc60c66611dd8335f463818514733bc763e4760dee289dcc33df709/mypy-1.18.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:33eca32dd124b29400c31d7cf784e795b050ace0e1f91b8dc035672725617e34", size = 12908273, upload-time = "2025-09-19T00:10:58.321Z" }, + { url = "https://files.pythonhosted.org/packages/81/14/6a9de6d13a122d5608e1a04130724caf9170333ac5a924e10f670687d3eb/mypy-1.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3c47adf30d65e89b2dcd2fa32f3aeb5e94ca970d2c15fcb25e297871c8e4764", size = 11920910, upload-time = "2025-09-19T00:10:20.043Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a9/b29de53e42f18e8cc547e38daa9dfa132ffdc64f7250e353f5c8cdd44bee/mypy-1.18.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d6c838e831a062f5f29d11c9057c6009f60cb294fea33a98422688181fe2893", size = 12465585, upload-time = "2025-09-19T00:10:33.005Z" }, + { url = "https://files.pythonhosted.org/packages/77/ae/6c3d2c7c61ff21f2bee938c917616c92ebf852f015fb55917fd6e2811db2/mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01199871b6110a2ce984bde85acd481232d17413868c9807e95c1b0739a58914", size = 13348562, upload-time = "2025-09-19T00:10:11.51Z" }, + { url = "https://files.pythonhosted.org/packages/4d/31/aec68ab3b4aebdf8f36d191b0685d99faa899ab990753ca0fee60fb99511/mypy-1.18.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a2afc0fa0b0e91b4599ddfe0f91e2c26c2b5a5ab263737e998d6817874c5f7c8", size = 13533296, upload-time = "2025-09-19T00:10:06.568Z" }, + { url = "https://files.pythonhosted.org/packages/9f/83/abcb3ad9478fca3ebeb6a5358bb0b22c95ea42b43b7789c7fb1297ca44f4/mypy-1.18.2-cp312-cp312-win_amd64.whl", hash = "sha256:d8068d0afe682c7c4897c0f7ce84ea77f6de953262b12d07038f4d296d547074", size = 9828828, upload-time = "2025-09-19T00:10:28.203Z" }, + { url = "https://files.pythonhosted.org/packages/5f/04/7f462e6fbba87a72bc8097b93f6842499c428a6ff0c81dd46948d175afe8/mypy-1.18.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:07b8b0f580ca6d289e69209ec9d3911b4a26e5abfde32228a288eb79df129fcc", size = 12898728, upload-time = "2025-09-19T00:10:01.33Z" }, + { url = "https://files.pythonhosted.org/packages/99/5b/61ed4efb64f1871b41fd0b82d29a64640f3516078f6c7905b68ab1ad8b13/mypy-1.18.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ed4482847168439651d3feee5833ccedbf6657e964572706a2adb1f7fa4dfe2e", size = 11910758, upload-time = "2025-09-19T00:10:42.607Z" }, + { url = "https://files.pythonhosted.org/packages/3c/46/d297d4b683cc89a6e4108c4250a6a6b717f5fa96e1a30a7944a6da44da35/mypy-1.18.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3ad2afadd1e9fea5cf99a45a822346971ede8685cc581ed9cd4d42eaf940986", size = 12475342, upload-time = "2025-09-19T00:11:00.371Z" }, + { url = "https://files.pythonhosted.org/packages/83/45/4798f4d00df13eae3bfdf726c9244bcb495ab5bd588c0eed93a2f2dd67f3/mypy-1.18.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a431a6f1ef14cf8c144c6b14793a23ec4eae3db28277c358136e79d7d062f62d", size = 13338709, upload-time = "2025-09-19T00:11:03.358Z" }, + { url = "https://files.pythonhosted.org/packages/d7/09/479f7358d9625172521a87a9271ddd2441e1dab16a09708f056e97007207/mypy-1.18.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7ab28cc197f1dd77a67e1c6f35cd1f8e8b73ed2217e4fc005f9e6a504e46e7ba", size = 13529806, upload-time = "2025-09-19T00:10:26.073Z" }, + { url = "https://files.pythonhosted.org/packages/71/cf/ac0f2c7e9d0ea3c75cd99dff7aec1c9df4a1376537cb90e4c882267ee7e9/mypy-1.18.2-cp313-cp313-win_amd64.whl", hash = "sha256:0e2785a84b34a72ba55fb5daf079a1003a34c05b22238da94fcae2bbe46f3544", size = 9833262, upload-time = "2025-09-19T00:10:40.035Z" }, + { url = "https://files.pythonhosted.org/packages/87/e3/be76d87158ebafa0309946c4a73831974d4d6ab4f4ef40c3b53a385a66fd/mypy-1.18.2-py3-none-any.whl", hash = "sha256:22a1748707dd62b58d2ae53562ffc4d7f8bcc727e8ac7cbc69c053ddc874d47e", size = 2352367, upload-time = "2025-09-19T00:10:15.489Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "nbclient" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "nbformat" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/66/7ffd18d58eae90d5721f9f39212327695b749e23ad44b3881744eaf4d9e8/nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193", size = 62424, upload-time = "2024-12-19T10:32:27.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/6d/e7fa07f03a4a7b221d94b4d586edb754a9b0dc3c9e2c93353e9fa4e0d117/nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d", size = 25434, upload-time = "2024-12-19T10:32:24.139Z" }, +] + +[[package]] +name = "nbconvert" +version = "7.16.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "bleach", extra = ["css"] }, + { name = "defusedxml" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyterlab-pygments" }, + { name = "markupsafe" }, + { name = "mistune" }, + { name = "nbclient" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "pandocfilters" }, + { name = "pygments" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/59/f28e15fc47ffb73af68a8d9b47367a8630d76e97ae85ad18271b9db96fdf/nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582", size = 857715, upload-time = "2025-01-28T09:29:14.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/9a/cd673b2f773a12c992f41309ef81b99da1690426bd2f96957a7ade0d3ed7/nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b", size = 258525, upload-time = "2025-01-28T09:29:12.551Z" }, +] + +[[package]] +name = "nbdime" +version = "4.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama" }, + { name = "gitpython" }, + { name = "jinja2" }, + { name = "jupyter-server" }, + { name = "jupyter-server-mathjax" }, + { name = "nbformat" }, + { name = "pygments" }, + { name = "requests" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/f1/4be57ecea4d55d322f05a0f89e0b73d7a8d90a16dbf01168eab3e7bf5939/nbdime-4.0.2.tar.gz", hash = "sha256:d8279f8f4b236c0b253b20d60c4831bb67843ed8dbd6e09f234eb011d36f1bf2", size = 9452967, upload-time = "2024-09-05T13:25:07.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/23/824b295f4cc53f4437f6917e8f46c519cd3a9be909dd36ca0682fdc7fff1/nbdime-4.0.2-py3-none-any.whl", hash = "sha256:e5a43aca669c576c66e757071c0e882de05ac305311d79aded99bfb5a3e9419e", size = 5917346, upload-time = "2024-09-05T13:25:03.95Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, +] + +[[package]] +name = "notebook" +version = "7.4.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, + { name = "jupyterlab" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/09/f6f64ba156842ef68d3ea763fa171a2f7e7224f200a15dd4af5b83c34756/notebook-7.4.7.tar.gz", hash = "sha256:3f0a04027dfcee8a876de48fba13ab77ec8c12f72f848a222ed7f5081b9e342a", size = 13937702, upload-time = "2025-09-27T08:00:22.536Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/d7/06d13087e20388926e7423d2489e728d2e59f2453039cdb0574a7c070e76/notebook-7.4.7-py3-none-any.whl", hash = "sha256:362b7c95527f7dd3c4c84d410b782872fd9c734fb2524c11dd92758527b6eda6", size = 14342894, upload-time = "2025-09-27T08:00:18.496Z" }, +] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/d2/92fa3243712b9a3e8bafaf60aac366da1cada3639ca767ff4b5b3654ec28/notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb", size = 13167, upload-time = "2024-02-14T23:35:18.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" }, +] + +[[package]] +name = "notebooks-to-explore" +version = "0.0.0" +source = { virtual = "." } +dependencies = [ + { name = "jupyter" }, + { name = "langchain" }, + { name = "langchain-anthropic" }, + { name = "langchain-community" }, + { name = "langchain-core" }, + { name = "langchain-mcp-adapters" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "langgraph-cli", extra = ["inmem"] }, +] + +[package.optional-dependencies] +dev = [ + { name = "mypy" }, + { name = "nbdime" }, + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "jupyter", specifier = ">=1.0.0" }, + { name = "langchain", specifier = ">=1.0.0" }, + { name = "langchain-anthropic", specifier = ">=1.0.0" }, + { name = "langchain-community", specifier = ">=0.4" }, + { name = "langchain-core", specifier = ">=1.0.0" }, + { name = "langchain-mcp-adapters" }, + { name = "langchain-openai", specifier = ">=1.0.0" }, + { name = "langgraph", specifier = ">=1.0.0" }, + { name = "langgraph-cli", extras = ["inmem"], specifier = ">=0.4.0" }, + { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.11.1" }, + { name = "nbdime", marker = "extra == 'dev'", specifier = ">=4.0.2" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.6.1" }, +] +provides-extras = ["dev"] + +[[package]] +name = "numpy" +version = "2.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187, upload-time = "2025-10-15T16:18:11.77Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/e7/0e07379944aa8afb49a556a2b54587b828eb41dc9adc56fb7615b678ca53/numpy-2.3.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e78aecd2800b32e8347ce49316d3eaf04aed849cd5b38e0af39f829a4e59f5eb", size = 21259519, upload-time = "2025-10-15T16:15:19.012Z" }, + { url = "https://files.pythonhosted.org/packages/d0/cb/5a69293561e8819b09e34ed9e873b9a82b5f2ade23dce4c51dc507f6cfe1/numpy-2.3.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7fd09cc5d65bda1e79432859c40978010622112e9194e581e3415a3eccc7f43f", size = 14452796, upload-time = "2025-10-15T16:15:23.094Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/ff11611200acd602a1e5129e36cfd25bf01ad8e5cf927baf2e90236eb02e/numpy-2.3.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:1b219560ae2c1de48ead517d085bc2d05b9433f8e49d0955c82e8cd37bd7bf36", size = 5381639, upload-time = "2025-10-15T16:15:25.572Z" }, + { url = "https://files.pythonhosted.org/packages/ea/77/e95c757a6fe7a48d28a009267408e8aa382630cc1ad1db7451b3bc21dbb4/numpy-2.3.4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:bafa7d87d4c99752d07815ed7a2c0964f8ab311eb8168f41b910bd01d15b6032", size = 6914296, upload-time = "2025-10-15T16:15:27.079Z" }, + { url = "https://files.pythonhosted.org/packages/a3/d2/137c7b6841c942124eae921279e5c41b1c34bab0e6fc60c7348e69afd165/numpy-2.3.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36dc13af226aeab72b7abad501d370d606326a0029b9f435eacb3b8c94b8a8b7", size = 14591904, upload-time = "2025-10-15T16:15:29.044Z" }, + { url = "https://files.pythonhosted.org/packages/bb/32/67e3b0f07b0aba57a078c4ab777a9e8e6bc62f24fb53a2337f75f9691699/numpy-2.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7b2f9a18b5ff9824a6af80de4f37f4ec3c2aab05ef08f51c77a093f5b89adda", size = 16939602, upload-time = "2025-10-15T16:15:31.106Z" }, + { url = "https://files.pythonhosted.org/packages/95/22/9639c30e32c93c4cee3ccdb4b09c2d0fbff4dcd06d36b357da06146530fb/numpy-2.3.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9984bd645a8db6ca15d850ff996856d8762c51a2239225288f08f9050ca240a0", size = 16372661, upload-time = "2025-10-15T16:15:33.546Z" }, + { url = "https://files.pythonhosted.org/packages/12/e9/a685079529be2b0156ae0c11b13d6be647743095bb51d46589e95be88086/numpy-2.3.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:64c5825affc76942973a70acf438a8ab618dbd692b84cd5ec40a0a0509edc09a", size = 18884682, upload-time = "2025-10-15T16:15:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/cf/85/f6f00d019b0cc741e64b4e00ce865a57b6bed945d1bbeb1ccadbc647959b/numpy-2.3.4-cp311-cp311-win32.whl", hash = "sha256:ed759bf7a70342f7817d88376eb7142fab9fef8320d6019ef87fae05a99874e1", size = 6570076, upload-time = "2025-10-15T16:15:38.225Z" }, + { url = "https://files.pythonhosted.org/packages/7d/10/f8850982021cb90e2ec31990291f9e830ce7d94eef432b15066e7cbe0bec/numpy-2.3.4-cp311-cp311-win_amd64.whl", hash = "sha256:faba246fb30ea2a526c2e9645f61612341de1a83fb1e0c5edf4ddda5a9c10996", size = 13089358, upload-time = "2025-10-15T16:15:40.404Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ad/afdd8351385edf0b3445f9e24210a9c3971ef4de8fd85155462fc4321d79/numpy-2.3.4-cp311-cp311-win_arm64.whl", hash = "sha256:4c01835e718bcebe80394fd0ac66c07cbb90147ebbdad3dcecd3f25de2ae7e2c", size = 10462292, upload-time = "2025-10-15T16:15:42.896Z" }, + { url = "https://files.pythonhosted.org/packages/96/7a/02420400b736f84317e759291b8edaeee9dc921f72b045475a9cbdb26b17/numpy-2.3.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ef1b5a3e808bc40827b5fa2c8196151a4c5abe110e1726949d7abddfe5c7ae11", size = 20957727, upload-time = "2025-10-15T16:15:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/18/90/a014805d627aa5750f6f0e878172afb6454552da929144b3c07fcae1bb13/numpy-2.3.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c2f91f496a87235c6aaf6d3f3d89b17dba64996abadccb289f48456cff931ca9", size = 14187262, upload-time = "2025-10-15T16:15:47.761Z" }, + { url = "https://files.pythonhosted.org/packages/c7/e4/0a94b09abe89e500dc748e7515f21a13e30c5c3fe3396e6d4ac108c25fca/numpy-2.3.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f77e5b3d3da652b474cc80a14084927a5e86a5eccf54ca8ca5cbd697bf7f2667", size = 5115992, upload-time = "2025-10-15T16:15:50.144Z" }, + { url = "https://files.pythonhosted.org/packages/88/dd/db77c75b055c6157cbd4f9c92c4458daef0dd9cbe6d8d2fe7f803cb64c37/numpy-2.3.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8ab1c5f5ee40d6e01cbe96de5863e39b215a4d24e7d007cad56c7184fdf4aeef", size = 6648672, upload-time = "2025-10-15T16:15:52.442Z" }, + { url = "https://files.pythonhosted.org/packages/e1/e6/e31b0d713719610e406c0ea3ae0d90760465b086da8783e2fd835ad59027/numpy-2.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77b84453f3adcb994ddbd0d1c5d11db2d6bda1a2b7fd5ac5bd4649d6f5dc682e", size = 14284156, upload-time = "2025-10-15T16:15:54.351Z" }, + { url = "https://files.pythonhosted.org/packages/f9/58/30a85127bfee6f108282107caf8e06a1f0cc997cb6b52cdee699276fcce4/numpy-2.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4121c5beb58a7f9e6dfdee612cb24f4df5cd4db6e8261d7f4d7450a997a65d6a", size = 16641271, upload-time = "2025-10-15T16:15:56.67Z" }, + { url = "https://files.pythonhosted.org/packages/06/f2/2e06a0f2adf23e3ae29283ad96959267938d0efd20a2e25353b70065bfec/numpy-2.3.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:65611ecbb00ac9846efe04db15cbe6186f562f6bb7e5e05f077e53a599225d16", size = 16059531, upload-time = "2025-10-15T16:15:59.412Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e7/b106253c7c0d5dc352b9c8fab91afd76a93950998167fa3e5afe4ef3a18f/numpy-2.3.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dabc42f9c6577bcc13001b8810d300fe814b4cfbe8a92c873f269484594f9786", size = 18578983, upload-time = "2025-10-15T16:16:01.804Z" }, + { url = "https://files.pythonhosted.org/packages/73/e3/04ecc41e71462276ee867ccbef26a4448638eadecf1bc56772c9ed6d0255/numpy-2.3.4-cp312-cp312-win32.whl", hash = "sha256:a49d797192a8d950ca59ee2d0337a4d804f713bb5c3c50e8db26d49666e351dc", size = 6291380, upload-time = "2025-10-15T16:16:03.938Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a8/566578b10d8d0e9955b1b6cd5db4e9d4592dd0026a941ff7994cedda030a/numpy-2.3.4-cp312-cp312-win_amd64.whl", hash = "sha256:985f1e46358f06c2a09921e8921e2c98168ed4ae12ccd6e5e87a4f1857923f32", size = 12787999, upload-time = "2025-10-15T16:16:05.801Z" }, + { url = "https://files.pythonhosted.org/packages/58/22/9c903a957d0a8071b607f5b1bff0761d6e608b9a965945411f867d515db1/numpy-2.3.4-cp312-cp312-win_arm64.whl", hash = "sha256:4635239814149e06e2cb9db3dd584b2fa64316c96f10656983b8026a82e6e4db", size = 10197412, upload-time = "2025-10-15T16:16:07.854Z" }, + { url = "https://files.pythonhosted.org/packages/57/7e/b72610cc91edf138bc588df5150957a4937221ca6058b825b4725c27be62/numpy-2.3.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c090d4860032b857d94144d1a9976b8e36709e40386db289aaf6672de2a81966", size = 20950335, upload-time = "2025-10-15T16:16:10.304Z" }, + { url = "https://files.pythonhosted.org/packages/3e/46/bdd3370dcea2f95ef14af79dbf81e6927102ddf1cc54adc0024d61252fd9/numpy-2.3.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a13fc473b6db0be619e45f11f9e81260f7302f8d180c49a22b6e6120022596b3", size = 14179878, upload-time = "2025-10-15T16:16:12.595Z" }, + { url = "https://files.pythonhosted.org/packages/ac/01/5a67cb785bda60f45415d09c2bc245433f1c68dd82eef9c9002c508b5a65/numpy-2.3.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:3634093d0b428e6c32c3a69b78e554f0cd20ee420dcad5a9f3b2a63762ce4197", size = 5108673, upload-time = "2025-10-15T16:16:14.877Z" }, + { url = "https://files.pythonhosted.org/packages/c2/cd/8428e23a9fcebd33988f4cb61208fda832800ca03781f471f3727a820704/numpy-2.3.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:043885b4f7e6e232d7df4f51ffdef8c36320ee9d5f227b380ea636722c7ed12e", size = 6641438, upload-time = "2025-10-15T16:16:16.805Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d1/913fe563820f3c6b079f992458f7331278dcd7ba8427e8e745af37ddb44f/numpy-2.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ee6a571d1e4f0ea6d5f22d6e5fbd6ed1dc2b18542848e1e7301bd190500c9d7", size = 14281290, upload-time = "2025-10-15T16:16:18.764Z" }, + { url = "https://files.pythonhosted.org/packages/9e/7e/7d306ff7cb143e6d975cfa7eb98a93e73495c4deabb7d1b5ecf09ea0fd69/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc8a63918b04b8571789688b2780ab2b4a33ab44bfe8ccea36d3eba51228c953", size = 16636543, upload-time = "2025-10-15T16:16:21.072Z" }, + { url = "https://files.pythonhosted.org/packages/47/6a/8cfc486237e56ccfb0db234945552a557ca266f022d281a2f577b98e955c/numpy-2.3.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40cc556d5abbc54aabe2b1ae287042d7bdb80c08edede19f0c0afb36ae586f37", size = 16056117, upload-time = "2025-10-15T16:16:23.369Z" }, + { url = "https://files.pythonhosted.org/packages/b1/0e/42cb5e69ea901e06ce24bfcc4b5664a56f950a70efdcf221f30d9615f3f3/numpy-2.3.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ecb63014bb7f4ce653f8be7f1df8cbc6093a5a2811211770f6606cc92b5a78fd", size = 18577788, upload-time = "2025-10-15T16:16:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/86/92/41c3d5157d3177559ef0a35da50f0cda7fa071f4ba2306dd36818591a5bc/numpy-2.3.4-cp313-cp313-win32.whl", hash = "sha256:e8370eb6925bb8c1c4264fec52b0384b44f675f191df91cbe0140ec9f0955646", size = 6282620, upload-time = "2025-10-15T16:16:29.811Z" }, + { url = "https://files.pythonhosted.org/packages/09/97/fd421e8bc50766665ad35536c2bb4ef916533ba1fdd053a62d96cc7c8b95/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:56209416e81a7893036eea03abcb91c130643eb14233b2515c90dcac963fe99d", size = 12784672, upload-time = "2025-10-15T16:16:31.589Z" }, + { url = "https://files.pythonhosted.org/packages/ad/df/5474fb2f74970ca8eb978093969b125a84cc3d30e47f82191f981f13a8a0/numpy-2.3.4-cp313-cp313-win_arm64.whl", hash = "sha256:a700a4031bc0fd6936e78a752eefb79092cecad2599ea9c8039c548bc097f9bc", size = 10196702, upload-time = "2025-10-15T16:16:33.902Z" }, + { url = "https://files.pythonhosted.org/packages/11/83/66ac031464ec1767ea3ed48ce40f615eb441072945e98693bec0bcd056cc/numpy-2.3.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:86966db35c4040fdca64f0816a1c1dd8dbd027d90fca5a57e00e1ca4cd41b879", size = 21049003, upload-time = "2025-10-15T16:16:36.101Z" }, + { url = "https://files.pythonhosted.org/packages/5f/99/5b14e0e686e61371659a1d5bebd04596b1d72227ce36eed121bb0aeab798/numpy-2.3.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:838f045478638b26c375ee96ea89464d38428c69170360b23a1a50fa4baa3562", size = 14302980, upload-time = "2025-10-15T16:16:39.124Z" }, + { url = "https://files.pythonhosted.org/packages/2c/44/e9486649cd087d9fc6920e3fc3ac2aba10838d10804b1e179fb7cbc4e634/numpy-2.3.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d7315ed1dab0286adca467377c8381cd748f3dc92235f22a7dfc42745644a96a", size = 5231472, upload-time = "2025-10-15T16:16:41.168Z" }, + { url = "https://files.pythonhosted.org/packages/3e/51/902b24fa8887e5fe2063fd61b1895a476d0bbf46811ab0c7fdf4bd127345/numpy-2.3.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:84f01a4d18b2cc4ade1814a08e5f3c907b079c847051d720fad15ce37aa930b6", size = 6739342, upload-time = "2025-10-15T16:16:43.777Z" }, + { url = "https://files.pythonhosted.org/packages/34/f1/4de9586d05b1962acdcdb1dc4af6646361a643f8c864cef7c852bf509740/numpy-2.3.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:817e719a868f0dacde4abdfc5c1910b301877970195db9ab6a5e2c4bd5b121f7", size = 14354338, upload-time = "2025-10-15T16:16:46.081Z" }, + { url = "https://files.pythonhosted.org/packages/1f/06/1c16103b425de7969d5a76bdf5ada0804b476fed05d5f9e17b777f1cbefd/numpy-2.3.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85e071da78d92a214212cacea81c6da557cab307f2c34b5f85b628e94803f9c0", size = 16702392, upload-time = "2025-10-15T16:16:48.455Z" }, + { url = "https://files.pythonhosted.org/packages/34/b2/65f4dc1b89b5322093572b6e55161bb42e3e0487067af73627f795cc9d47/numpy-2.3.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2ec646892819370cf3558f518797f16597b4e4669894a2ba712caccc9da53f1f", size = 16134998, upload-time = "2025-10-15T16:16:51.114Z" }, + { url = "https://files.pythonhosted.org/packages/d4/11/94ec578896cdb973aaf56425d6c7f2aff4186a5c00fac15ff2ec46998b46/numpy-2.3.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:035796aaaddfe2f9664b9a9372f089cfc88bd795a67bd1bfe15e6e770934cf64", size = 18651574, upload-time = "2025-10-15T16:16:53.429Z" }, + { url = "https://files.pythonhosted.org/packages/62/b7/7efa763ab33dbccf56dade36938a77345ce8e8192d6b39e470ca25ff3cd0/numpy-2.3.4-cp313-cp313t-win32.whl", hash = "sha256:fea80f4f4cf83b54c3a051f2f727870ee51e22f0248d3114b8e755d160b38cfb", size = 6413135, upload-time = "2025-10-15T16:16:55.992Z" }, + { url = "https://files.pythonhosted.org/packages/43/70/aba4c38e8400abcc2f345e13d972fb36c26409b3e644366db7649015f291/numpy-2.3.4-cp313-cp313t-win_amd64.whl", hash = "sha256:15eea9f306b98e0be91eb344a94c0e630689ef302e10c2ce5f7e11905c704f9c", size = 12928582, upload-time = "2025-10-15T16:16:57.943Z" }, + { url = "https://files.pythonhosted.org/packages/67/63/871fad5f0073fc00fbbdd7232962ea1ac40eeaae2bba66c76214f7954236/numpy-2.3.4-cp313-cp313t-win_arm64.whl", hash = "sha256:b6c231c9c2fadbae4011ca5e7e83e12dc4a5072f1a1d85a0a7b3ed754d145a40", size = 10266691, upload-time = "2025-10-15T16:17:00.048Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b6/64898f51a86ec88ca1257a59c1d7fd077b60082a119affefcdf1dd0df8ca/numpy-2.3.4-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6e274603039f924c0fe5cb73438fa9246699c78a6df1bd3decef9ae592ae1c05", size = 21131552, upload-time = "2025-10-15T16:17:55.845Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4c/f135dc6ebe2b6a3c77f4e4838fa63d350f85c99462012306ada1bd4bc460/numpy-2.3.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d149aee5c72176d9ddbc6803aef9c0f6d2ceeea7626574fc68518da5476fa346", size = 14377796, upload-time = "2025-10-15T16:17:58.308Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a4/f33f9c23fcc13dd8412fc8614559b5b797e0aba9d8e01dfa8bae10c84004/numpy-2.3.4-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:6d34ed9db9e6395bb6cd33286035f73a59b058169733a9db9f85e650b88df37e", size = 5306904, upload-time = "2025-10-15T16:18:00.596Z" }, + { url = "https://files.pythonhosted.org/packages/28/af/c44097f25f834360f9fb960fa082863e0bad14a42f36527b2a121abdec56/numpy-2.3.4-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:fdebe771ca06bb8d6abce84e51dca9f7921fe6ad34a0c914541b063e9a68928b", size = 6819682, upload-time = "2025-10-15T16:18:02.32Z" }, + { url = "https://files.pythonhosted.org/packages/c5/8c/cd283b54c3c2b77e188f63e23039844f56b23bba1712318288c13fe86baf/numpy-2.3.4-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e92defe6c08211eb77902253b14fe5b480ebc5112bc741fd5e9cd0608f847", size = 14422300, upload-time = "2025-10-15T16:18:04.271Z" }, + { url = "https://files.pythonhosted.org/packages/b0/f0/8404db5098d92446b3e3695cf41c6f0ecb703d701cb0b7566ee2177f2eee/numpy-2.3.4-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13b9062e4f5c7ee5c7e5be96f29ba71bc5a37fed3d1d77c37390ae00724d296d", size = 16760806, upload-time = "2025-10-15T16:18:06.668Z" }, + { url = "https://files.pythonhosted.org/packages/95/8e/2844c3959ce9a63acc7c8e50881133d86666f0420bcde695e115ced0920f/numpy-2.3.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:81b3a59793523e552c4a96109dde028aa4448ae06ccac5a76ff6532a85558a7f", size = 12973130, upload-time = "2025-10-15T16:18:09.397Z" }, +] + +[[package]] +name = "openai" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/44/303deb97be7c1c9b53118b52825cbd1557aeeff510f3a52566b1fa66f6a2/openai-2.6.1.tar.gz", hash = "sha256:27ae704d190615fca0c0fc2b796a38f8b5879645a3a52c9c453b23f97141bb49", size = 593043, upload-time = "2025-10-24T13:29:52.79Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/0e/331df43df633e6105ff9cf45e0ce57762bd126a45ac16b25a43f6738d8a2/openai-2.6.1-py3-none-any.whl", hash = "sha256:904e4b5254a8416746a2f05649594fa41b19d799843cd134dac86167e094edef", size = 1005551, upload-time = "2025-10-24T13:29:50.973Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/d8/0f354c375628e048bd0570645b310797299754730079853095bf000fba69/opentelemetry_api-1.38.0.tar.gz", hash = "sha256:f4c193b5e8acb0912b06ac5b16321908dd0843d75049c091487322284a3eea12", size = 65242, upload-time = "2025-10-16T08:35:50.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/a2/d86e01c28300bd41bab8f18afd613676e2bd63515417b77636fc1add426f/opentelemetry_api-1.38.0-py3-none-any.whl", hash = "sha256:2891b0197f47124454ab9f0cf58f3be33faca394457ac3e09daba13ff50aa582", size = 65947, upload-time = "2025-10-16T08:35:30.23Z" }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-common" +version = "1.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-proto" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/83/dd4660f2956ff88ed071e9e0e36e830df14b8c5dc06722dbde1841accbe8/opentelemetry_exporter_otlp_proto_common-1.38.0.tar.gz", hash = "sha256:e333278afab4695aa8114eeb7bf4e44e65c6607d54968271a249c180b2cb605c", size = 20431, upload-time = "2025-10-16T08:35:53.285Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/9e/55a41c9601191e8cd8eb626b54ee6827b9c9d4a46d736f32abc80d8039fc/opentelemetry_exporter_otlp_proto_common-1.38.0-py3-none-any.whl", hash = "sha256:03cb76ab213300fe4f4c62b7d8f17d97fcfd21b89f0b5ce38ea156327ddda74a", size = 18359, upload-time = "2025-10-16T08:35:34.099Z" }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-http" +version = "1.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "googleapis-common-protos" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-common" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "requests" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/0a/debcdfb029fbd1ccd1563f7c287b89a6f7bef3b2902ade56797bfd020854/opentelemetry_exporter_otlp_proto_http-1.38.0.tar.gz", hash = "sha256:f16bd44baf15cbe07633c5112ffc68229d0edbeac7b37610be0b2def4e21e90b", size = 17282, upload-time = "2025-10-16T08:35:54.422Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/77/154004c99fb9f291f74aa0822a2f5bbf565a72d8126b3a1b63ed8e5f83c7/opentelemetry_exporter_otlp_proto_http-1.38.0-py3-none-any.whl", hash = "sha256:84b937305edfc563f08ec69b9cb2298be8188371217e867c1854d77198d0825b", size = 19579, upload-time = "2025-10-16T08:35:36.269Z" }, +] + +[[package]] +name = "opentelemetry-proto" +version = "1.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/51/14/f0c4f0f6371b9cb7f9fa9ee8918bfd59ac7040c7791f1e6da32a1839780d/opentelemetry_proto-1.38.0.tar.gz", hash = "sha256:88b161e89d9d372ce723da289b7da74c3a8354a8e5359992be813942969ed468", size = 46152, upload-time = "2025-10-16T08:36:01.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/6a/82b68b14efca5150b2632f3692d627afa76b77378c4999f2648979409528/opentelemetry_proto-1.38.0-py3-none-any.whl", hash = "sha256:b6ebe54d3217c42e45462e2a1ae28c3e2bf2ec5a5645236a490f55f45f1a0a18", size = 72535, upload-time = "2025-10-16T08:35:45.749Z" }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/cb/f0eee1445161faf4c9af3ba7b848cc22a50a3d3e2515051ad8628c35ff80/opentelemetry_sdk-1.38.0.tar.gz", hash = "sha256:93df5d4d871ed09cb4272305be4d996236eedb232253e3ab864c8620f051cebe", size = 171942, upload-time = "2025-10-16T08:36:02.257Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/2e/e93777a95d7d9c40d270a371392b6d6f1ff170c2a3cb32d6176741b5b723/opentelemetry_sdk-1.38.0-py3-none-any.whl", hash = "sha256:1c66af6564ecc1553d72d811a01df063ff097cdc82ce188da9951f93b8d10f6b", size = 132349, upload-time = "2025-10-16T08:35:46.995Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.59b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/bc/8b9ad3802cd8ac6583a4eb7de7e5d7db004e89cb7efe7008f9c8a537ee75/opentelemetry_semantic_conventions-0.59b0.tar.gz", hash = "sha256:7a6db3f30d70202d5bf9fa4b69bc866ca6a30437287de6c510fb594878aed6b0", size = 129861, upload-time = "2025-10-16T08:36:03.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/7d/c88d7b15ba8fe5c6b8f93be50fc11795e9fc05386c44afaf6b76fe191f9b/opentelemetry_semantic_conventions-0.59b0-py3-none-any.whl", hash = "sha256:35d3b8833ef97d614136e253c1da9342b4c3c083bbaf29ce31d572a1c3825eed", size = 207954, upload-time = "2025-10-16T08:35:48.054Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/fe/ed708782d6709cc60eb4c2d8a361a440661f74134675c72990f2c48c785f/orjson-3.11.4.tar.gz", hash = "sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d", size = 5945188, upload-time = "2025-10-24T15:50:38.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/1d/1ea6005fffb56715fd48f632611e163d1604e8316a5bad2288bee9a1c9eb/orjson-3.11.4-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e59d23cd93ada23ec59a96f215139753fbfe3a4d989549bcb390f8c00370b39", size = 243498, upload-time = "2025-10-24T15:48:48.101Z" }, + { url = "https://files.pythonhosted.org/packages/37/d7/ffed10c7da677f2a9da307d491b9eb1d0125b0307019c4ad3d665fd31f4f/orjson-3.11.4-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:5c3aedecfc1beb988c27c79d52ebefab93b6c3921dbec361167e6559aba2d36d", size = 128961, upload-time = "2025-10-24T15:48:49.571Z" }, + { url = "https://files.pythonhosted.org/packages/a2/96/3e4d10a18866d1368f73c8c44b7fe37cc8a15c32f2a7620be3877d4c55a3/orjson-3.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9e5301f1c2caa2a9a4a303480d79c9ad73560b2e7761de742ab39fe59d9175", size = 130321, upload-time = "2025-10-24T15:48:50.713Z" }, + { url = "https://files.pythonhosted.org/packages/eb/1f/465f66e93f434f968dd74d5b623eb62c657bdba2332f5a8be9f118bb74c7/orjson-3.11.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8873812c164a90a79f65368f8f96817e59e35d0cc02786a5356f0e2abed78040", size = 129207, upload-time = "2025-10-24T15:48:52.193Z" }, + { url = "https://files.pythonhosted.org/packages/28/43/d1e94837543321c119dff277ae8e348562fe8c0fafbb648ef7cb0c67e521/orjson-3.11.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5d7feb0741ebb15204e748f26c9638e6665a5fa93c37a2c73d64f1669b0ddc63", size = 136323, upload-time = "2025-10-24T15:48:54.806Z" }, + { url = "https://files.pythonhosted.org/packages/bf/04/93303776c8890e422a5847dd012b4853cdd88206b8bbd3edc292c90102d1/orjson-3.11.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01ee5487fefee21e6910da4c2ee9eef005bee568a0879834df86f888d2ffbdd9", size = 137440, upload-time = "2025-10-24T15:48:56.326Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ef/75519d039e5ae6b0f34d0336854d55544ba903e21bf56c83adc51cd8bf82/orjson-3.11.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d40d46f348c0321df01507f92b95a377240c4ec31985225a6668f10e2676f9a", size = 136680, upload-time = "2025-10-24T15:48:57.476Z" }, + { url = "https://files.pythonhosted.org/packages/b5/18/bf8581eaae0b941b44efe14fee7b7862c3382fbc9a0842132cfc7cf5ecf4/orjson-3.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95713e5fc8af84d8edc75b785d2386f653b63d62b16d681687746734b4dfc0be", size = 136160, upload-time = "2025-10-24T15:48:59.631Z" }, + { url = "https://files.pythonhosted.org/packages/c4/35/a6d582766d351f87fc0a22ad740a641b0a8e6fc47515e8614d2e4790ae10/orjson-3.11.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ad73ede24f9083614d6c4ca9a85fe70e33be7bf047ec586ee2363bc7418fe4d7", size = 140318, upload-time = "2025-10-24T15:49:00.834Z" }, + { url = "https://files.pythonhosted.org/packages/76/b3/5a4801803ab2e2e2d703bce1a56540d9f99a9143fbec7bf63d225044fef8/orjson-3.11.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:842289889de515421f3f224ef9c1f1efb199a32d76d8d2ca2706fa8afe749549", size = 406330, upload-time = "2025-10-24T15:49:02.327Z" }, + { url = "https://files.pythonhosted.org/packages/80/55/a8f682f64833e3a649f620eafefee175cbfeb9854fc5b710b90c3bca45df/orjson-3.11.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3b2427ed5791619851c52a1261b45c233930977e7de8cf36de05636c708fa905", size = 149580, upload-time = "2025-10-24T15:49:03.517Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e4/c132fa0c67afbb3eb88274fa98df9ac1f631a675e7877037c611805a4413/orjson-3.11.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c36e524af1d29982e9b190573677ea02781456b2e537d5840e4538a5ec41907", size = 139846, upload-time = "2025-10-24T15:49:04.761Z" }, + { url = "https://files.pythonhosted.org/packages/54/06/dc3491489efd651fef99c5908e13951abd1aead1257c67f16135f95ce209/orjson-3.11.4-cp311-cp311-win32.whl", hash = "sha256:87255b88756eab4a68ec61837ca754e5d10fa8bc47dc57f75cedfeaec358d54c", size = 135781, upload-time = "2025-10-24T15:49:05.969Z" }, + { url = "https://files.pythonhosted.org/packages/79/b7/5e5e8d77bd4ea02a6ac54c42c818afb01dd31961be8a574eb79f1d2cfb1e/orjson-3.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:e2d5d5d798aba9a0e1fede8d853fa899ce2cb930ec0857365f700dffc2c7af6a", size = 131391, upload-time = "2025-10-24T15:49:07.355Z" }, + { url = "https://files.pythonhosted.org/packages/0f/dc/9484127cc1aa213be398ed735f5f270eedcb0c0977303a6f6ddc46b60204/orjson-3.11.4-cp311-cp311-win_arm64.whl", hash = "sha256:6bb6bb41b14c95d4f2702bce9975fda4516f1db48e500102fc4d8119032ff045", size = 126252, upload-time = "2025-10-24T15:49:08.869Z" }, + { url = "https://files.pythonhosted.org/packages/63/51/6b556192a04595b93e277a9ff71cd0cc06c21a7df98bcce5963fa0f5e36f/orjson-3.11.4-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:d4371de39319d05d3f482f372720b841c841b52f5385bd99c61ed69d55d9ab50", size = 243571, upload-time = "2025-10-24T15:49:10.008Z" }, + { url = "https://files.pythonhosted.org/packages/1c/2c/2602392ddf2601d538ff11848b98621cd465d1a1ceb9db9e8043181f2f7b/orjson-3.11.4-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:e41fd3b3cac850eaae78232f37325ed7d7436e11c471246b87b2cd294ec94853", size = 128891, upload-time = "2025-10-24T15:49:11.297Z" }, + { url = "https://files.pythonhosted.org/packages/4e/47/bf85dcf95f7a3a12bf223394a4f849430acd82633848d52def09fa3f46ad/orjson-3.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600e0e9ca042878c7fdf189cf1b028fe2c1418cc9195f6cb9824eb6ed99cb938", size = 130137, upload-time = "2025-10-24T15:49:12.544Z" }, + { url = "https://files.pythonhosted.org/packages/b4/4d/a0cb31007f3ab6f1fd2a1b17057c7c349bc2baf8921a85c0180cc7be8011/orjson-3.11.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7bbf9b333f1568ef5da42bc96e18bf30fd7f8d54e9ae066d711056add508e415", size = 129152, upload-time = "2025-10-24T15:49:13.754Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ef/2811def7ce3d8576b19e3929fff8f8f0d44bc5eb2e0fdecb2e6e6cc6c720/orjson-3.11.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4806363144bb6e7297b8e95870e78d30a649fdc4e23fc84daa80c8ebd366ce44", size = 136834, upload-time = "2025-10-24T15:49:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/00/d4/9aee9e54f1809cec8ed5abd9bc31e8a9631d19460e3b8470145d25140106/orjson-3.11.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad355e8308493f527d41154e9053b86a5be892b3b359a5c6d5d95cda23601cb2", size = 137519, upload-time = "2025-10-24T15:49:16.557Z" }, + { url = "https://files.pythonhosted.org/packages/db/ea/67bfdb5465d5679e8ae8d68c11753aaf4f47e3e7264bad66dc2f2249e643/orjson-3.11.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a7517482667fb9f0ff1b2f16fe5829296ed7a655d04d68cd9711a4d8a4e708", size = 136749, upload-time = "2025-10-24T15:49:17.796Z" }, + { url = "https://files.pythonhosted.org/packages/01/7e/62517dddcfce6d53a39543cd74d0dccfcbdf53967017c58af68822100272/orjson-3.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97eb5942c7395a171cbfecc4ef6701fc3c403e762194683772df4c54cfbb2210", size = 136325, upload-time = "2025-10-24T15:49:19.347Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/40516739f99ab4c7ec3aaa5cc242d341fcb03a45d89edeeaabc5f69cb2cf/orjson-3.11.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:149d95d5e018bdd822e3f38c103b1a7c91f88d38a88aada5c4e9b3a73a244241", size = 140204, upload-time = "2025-10-24T15:49:20.545Z" }, + { url = "https://files.pythonhosted.org/packages/82/18/ff5734365623a8916e3a4037fcef1cd1782bfc14cf0992afe7940c5320bf/orjson-3.11.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:624f3951181eb46fc47dea3d221554e98784c823e7069edb5dbd0dc826ac909b", size = 406242, upload-time = "2025-10-24T15:49:21.884Z" }, + { url = "https://files.pythonhosted.org/packages/e1/43/96436041f0a0c8c8deca6a05ebeaf529bf1de04839f93ac5e7c479807aec/orjson-3.11.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:03bfa548cf35e3f8b3a96c4e8e41f753c686ff3d8e182ce275b1751deddab58c", size = 150013, upload-time = "2025-10-24T15:49:23.185Z" }, + { url = "https://files.pythonhosted.org/packages/1b/48/78302d98423ed8780479a1e682b9aecb869e8404545d999d34fa486e573e/orjson-3.11.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:525021896afef44a68148f6ed8a8bf8375553d6066c7f48537657f64823565b9", size = 139951, upload-time = "2025-10-24T15:49:24.428Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7b/ad613fdcdaa812f075ec0875143c3d37f8654457d2af17703905425981bf/orjson-3.11.4-cp312-cp312-win32.whl", hash = "sha256:b58430396687ce0f7d9eeb3dd47761ca7d8fda8e9eb92b3077a7a353a75efefa", size = 136049, upload-time = "2025-10-24T15:49:25.973Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3c/9cf47c3ff5f39b8350fb21ba65d789b6a1129d4cbb3033ba36c8a9023520/orjson-3.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:c6dbf422894e1e3c80a177133c0dda260f81428f9de16d61041949f6a2e5c140", size = 131461, upload-time = "2025-10-24T15:49:27.259Z" }, + { url = "https://files.pythonhosted.org/packages/c6/3b/e2425f61e5825dc5b08c2a5a2b3af387eaaca22a12b9c8c01504f8614c36/orjson-3.11.4-cp312-cp312-win_arm64.whl", hash = "sha256:d38d2bc06d6415852224fcc9c0bfa834c25431e466dc319f0edd56cca81aa96e", size = 126167, upload-time = "2025-10-24T15:49:28.511Z" }, + { url = "https://files.pythonhosted.org/packages/23/15/c52aa7112006b0f3d6180386c3a46ae057f932ab3425bc6f6ac50431cca1/orjson-3.11.4-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2d6737d0e616a6e053c8b4acc9eccea6b6cce078533666f32d140e4f85002534", size = 243525, upload-time = "2025-10-24T15:49:29.737Z" }, + { url = "https://files.pythonhosted.org/packages/ec/38/05340734c33b933fd114f161f25a04e651b0c7c33ab95e9416ade5cb44b8/orjson-3.11.4-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:afb14052690aa328cc118a8e09f07c651d301a72e44920b887c519b313d892ff", size = 128871, upload-time = "2025-10-24T15:49:31.109Z" }, + { url = "https://files.pythonhosted.org/packages/55/b9/ae8d34899ff0c012039b5a7cb96a389b2476e917733294e498586b45472d/orjson-3.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38aa9e65c591febb1b0aed8da4d469eba239d434c218562df179885c94e1a3ad", size = 130055, upload-time = "2025-10-24T15:49:33.382Z" }, + { url = "https://files.pythonhosted.org/packages/33/aa/6346dd5073730451bee3681d901e3c337e7ec17342fb79659ec9794fc023/orjson-3.11.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5", size = 129061, upload-time = "2025-10-24T15:49:34.935Z" }, + { url = "https://files.pythonhosted.org/packages/39/e4/8eea51598f66a6c853c380979912d17ec510e8e66b280d968602e680b942/orjson-3.11.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a", size = 136541, upload-time = "2025-10-24T15:49:36.923Z" }, + { url = "https://files.pythonhosted.org/packages/9a/47/cb8c654fa9adcc60e99580e17c32b9e633290e6239a99efa6b885aba9dbc/orjson-3.11.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9daa26ca8e97fae0ce8aa5d80606ef8f7914e9b129b6b5df9104266f764ce436", size = 137535, upload-time = "2025-10-24T15:49:38.307Z" }, + { url = "https://files.pythonhosted.org/packages/43/92/04b8cc5c2b729f3437ee013ce14a60ab3d3001465d95c184758f19362f23/orjson-3.11.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c8b2769dc31883c44a9cd126560327767f848eb95f99c36c9932f51090bfce9", size = 136703, upload-time = "2025-10-24T15:49:40.795Z" }, + { url = "https://files.pythonhosted.org/packages/aa/fd/d0733fcb9086b8be4ebcfcda2d0312865d17d0d9884378b7cffb29d0763f/orjson-3.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1469d254b9884f984026bd9b0fa5bbab477a4bfe558bba6848086f6d43eb5e73", size = 136293, upload-time = "2025-10-24T15:49:42.347Z" }, + { url = "https://files.pythonhosted.org/packages/c2/d7/3c5514e806837c210492d72ae30ccf050ce3f940f45bf085bab272699ef4/orjson-3.11.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:68e44722541983614e37117209a194e8c3ad07838ccb3127d96863c95ec7f1e0", size = 140131, upload-time = "2025-10-24T15:49:43.638Z" }, + { url = "https://files.pythonhosted.org/packages/9c/dd/ba9d32a53207babf65bd510ac4d0faaa818bd0df9a9c6f472fe7c254f2e3/orjson-3.11.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8e7805fda9672c12be2f22ae124dcd7b03928d6c197544fe12174b86553f3196", size = 406164, upload-time = "2025-10-24T15:49:45.498Z" }, + { url = "https://files.pythonhosted.org/packages/8e/f9/f68ad68f4af7c7bde57cd514eaa2c785e500477a8bc8f834838eb696a685/orjson-3.11.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:04b69c14615fb4434ab867bf6f38b2d649f6f300af30a6705397e895f7aec67a", size = 149859, upload-time = "2025-10-24T15:49:46.981Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d2/7f847761d0c26818395b3d6b21fb6bc2305d94612a35b0a30eae65a22728/orjson-3.11.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:639c3735b8ae7f970066930e58cf0ed39a852d417c24acd4a25fc0b3da3c39a6", size = 139926, upload-time = "2025-10-24T15:49:48.321Z" }, + { url = "https://files.pythonhosted.org/packages/9f/37/acd14b12dc62db9a0e1d12386271b8661faae270b22492580d5258808975/orjson-3.11.4-cp313-cp313-win32.whl", hash = "sha256:6c13879c0d2964335491463302a6ca5ad98105fc5db3565499dcb80b1b4bd839", size = 136007, upload-time = "2025-10-24T15:49:49.938Z" }, + { url = "https://files.pythonhosted.org/packages/c0/a9/967be009ddf0a1fffd7a67de9c36656b28c763659ef91352acc02cbe364c/orjson-3.11.4-cp313-cp313-win_amd64.whl", hash = "sha256:09bf242a4af98732db9f9a1ec57ca2604848e16f132e3f72edfd3c5c96de009a", size = 131314, upload-time = "2025-10-24T15:49:51.248Z" }, + { url = "https://files.pythonhosted.org/packages/cb/db/399abd6950fbd94ce125cb8cd1a968def95174792e127b0642781e040ed4/orjson-3.11.4-cp313-cp313-win_arm64.whl", hash = "sha256:a85f0adf63319d6c1ba06fb0dbf997fced64a01179cf17939a6caca662bf92de", size = 126152, upload-time = "2025-10-24T15:49:52.922Z" }, +] + +[[package]] +name = "ormsgpack" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/f8/224c342c0e03e131aaa1a1f19aa2244e167001783a433f4eed10eedd834b/ormsgpack-1.11.0.tar.gz", hash = "sha256:7c9988e78fedba3292541eb3bb274fa63044ef4da2ddb47259ea70c05dee4206", size = 49357, upload-time = "2025-10-08T17:29:15.621Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/7c/90164d00e8e94b48eff8a17bc2f4be6b71ae356a00904bc69d5e8afe80fb/ormsgpack-1.11.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c7be823f47d8e36648d4bc90634b93f02b7d7cc7480081195f34767e86f181fb", size = 367964, upload-time = "2025-10-08T17:28:16.778Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c2/fb6331e880a3446c1341e72c77bd5a46da3e92a8e2edf7ea84a4c6c14fff/ormsgpack-1.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68accf15d1b013812755c0eb7a30e1fc2f81eb603a1a143bf0cda1b301cfa797", size = 195209, upload-time = "2025-10-08T17:28:17.796Z" }, + { url = "https://files.pythonhosted.org/packages/18/50/4943fb5df8cc02da6b7b1ee2c2a7fb13aebc9f963d69280b1bb02b1fb178/ormsgpack-1.11.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:805d06fb277d9a4e503c0c707545b49cde66cbb2f84e5cf7c58d81dfc20d8658", size = 205869, upload-time = "2025-10-08T17:28:19.01Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fa/e7e06835bfea9adeef43915143ce818098aecab0cbd3df584815adf3e399/ormsgpack-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1e57cdf003e77acc43643bda151dc01f97147a64b11cdee1380bb9698a7601c", size = 207391, upload-time = "2025-10-08T17:28:20.352Z" }, + { url = "https://files.pythonhosted.org/packages/33/f0/f28a19e938a14ec223396e94f4782fbcc023f8c91f2ab6881839d3550f32/ormsgpack-1.11.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:37fc05bdaabd994097c62e2f3e08f66b03f856a640ede6dc5ea340bd15b77f4d", size = 377081, upload-time = "2025-10-08T17:28:21.926Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e3/73d1d7287637401b0b6637e30ba9121e1aa1d9f5ea185ed9834ca15d512c/ormsgpack-1.11.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:a6e9db6c73eb46b2e4d97bdffd1368a66f54e6806b563a997b19c004ef165e1d", size = 470779, upload-time = "2025-10-08T17:28:22.993Z" }, + { url = "https://files.pythonhosted.org/packages/9c/46/7ba7f9721e766dd0dfe4cedf444439447212abffe2d2f4538edeeec8ccbd/ormsgpack-1.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e9c44eae5ac0196ffc8b5ed497c75511056508f2303fa4d36b208eb820cf209e", size = 380865, upload-time = "2025-10-08T17:28:24.012Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7d/bb92a0782bbe0626c072c0320001410cf3f6743ede7dc18f034b1a18edef/ormsgpack-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:11d0dfaf40ae7c6de4f7dbd1e4892e2e6a55d911ab1774357c481158d17371e4", size = 112058, upload-time = "2025-10-08T17:28:25.015Z" }, + { url = "https://files.pythonhosted.org/packages/28/1a/f07c6f74142815d67e1d9d98c5b2960007100408ade8242edac96d5d1c73/ormsgpack-1.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:0c63a3f7199a3099c90398a1bdf0cb577b06651a442dc5efe67f2882665e5b02", size = 105894, upload-time = "2025-10-08T17:28:25.93Z" }, + { url = "https://files.pythonhosted.org/packages/1e/16/2805ebfb3d2cbb6c661b5fae053960fc90a2611d0d93e2207e753e836117/ormsgpack-1.11.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3434d0c8d67de27d9010222de07fb6810fb9af3bb7372354ffa19257ac0eb83b", size = 368474, upload-time = "2025-10-08T17:28:27.532Z" }, + { url = "https://files.pythonhosted.org/packages/6f/39/6afae47822dca0ce4465d894c0bbb860a850ce29c157882dbdf77a5dd26e/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2da5bd097e8dbfa4eb0d4ccfe79acd6f538dee4493579e2debfe4fc8f4ca89b", size = 195321, upload-time = "2025-10-08T17:28:28.573Z" }, + { url = "https://files.pythonhosted.org/packages/f6/54/11eda6b59f696d2f16de469bfbe539c9f469c4b9eef5a513996b5879c6e9/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fdbaa0a5a8606a486960b60c24f2d5235d30ac7a8b98eeaea9854bffef14dc3d", size = 206036, upload-time = "2025-10-08T17:28:29.785Z" }, + { url = "https://files.pythonhosted.org/packages/1e/86/890430f704f84c4699ddad61c595d171ea2fd77a51fbc106f83981e83939/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3682f24f800c1837017ee90ce321086b2cbaef88db7d4cdbbda1582aa6508159", size = 207615, upload-time = "2025-10-08T17:28:31.076Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b9/77383e16c991c0ecb772205b966fc68d9c519e0b5f9c3913283cbed30ffe/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fcca21202bb05ccbf3e0e92f560ee59b9331182e4c09c965a28155efbb134993", size = 377195, upload-time = "2025-10-08T17:28:32.436Z" }, + { url = "https://files.pythonhosted.org/packages/20/e2/15f9f045d4947f3c8a5e0535259fddf027b17b1215367488b3565c573b9d/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c30e5c4655ba46152d722ec7468e8302195e6db362ec1ae2c206bc64f6030e43", size = 470960, upload-time = "2025-10-08T17:28:33.556Z" }, + { url = "https://files.pythonhosted.org/packages/b8/61/403ce188c4c495bc99dff921a0ad3d9d352dd6d3c4b629f3638b7f0cf79b/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7138a341f9e2c08c59368f03d3be25e8b87b3baaf10d30fb1f6f6b52f3d47944", size = 381174, upload-time = "2025-10-08T17:28:34.781Z" }, + { url = "https://files.pythonhosted.org/packages/14/a8/94c94bc48c68da4374870a851eea03fc5a45eb041182ad4c5ed9acfc05a4/ormsgpack-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:d4bd8589b78a11026d47f4edf13c1ceab9088bb12451f34396afe6497db28a27", size = 112314, upload-time = "2025-10-08T17:28:36.259Z" }, + { url = "https://files.pythonhosted.org/packages/19/d0/aa4cf04f04e4cc180ce7a8d8ddb5a7f3af883329cbc59645d94d3ba157a5/ormsgpack-1.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:e5e746a1223e70f111d4001dab9585ac8639eee8979ca0c8db37f646bf2961da", size = 106072, upload-time = "2025-10-08T17:28:37.518Z" }, + { url = "https://files.pythonhosted.org/packages/8b/35/e34722edb701d053cf2240f55974f17b7dbfd11fdef72bd2f1835bcebf26/ormsgpack-1.11.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e7b36ab7b45cb95217ae1f05f1318b14a3e5ef73cb00804c0f06233f81a14e8", size = 368502, upload-time = "2025-10-08T17:28:38.547Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6a/c2fc369a79d6aba2aa28c8763856c95337ac7fcc0b2742185cd19397212a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43402d67e03a9a35cc147c8c03f0c377cad016624479e1ee5b879b8425551484", size = 195344, upload-time = "2025-10-08T17:28:39.554Z" }, + { url = "https://files.pythonhosted.org/packages/8b/6a/0f8e24b7489885534c1a93bdba7c7c434b9b8638713a68098867db9f254c/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:64fd992f932764d6306b70ddc755c1bc3405c4c6a69f77a36acf7af1c8f5ada4", size = 206045, upload-time = "2025-10-08T17:28:40.561Z" }, + { url = "https://files.pythonhosted.org/packages/99/71/8b460ba264f3c6f82ef5b1920335720094e2bd943057964ce5287d6df83a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0362fb7fe4a29c046c8ea799303079a09372653a1ce5a5a588f3bbb8088368d0", size = 207641, upload-time = "2025-10-08T17:28:41.736Z" }, + { url = "https://files.pythonhosted.org/packages/50/cf/f369446abaf65972424ed2651f2df2b7b5c3b735c93fc7fa6cfb81e34419/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:de2f7a65a9d178ed57be49eba3d0fc9b833c32beaa19dbd4ba56014d3c20b152", size = 377211, upload-time = "2025-10-08T17:28:43.12Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3f/948bb0047ce0f37c2efc3b9bb2bcfdccc61c63e0b9ce8088d4903ba39dcf/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:f38cfae95461466055af966fc922d06db4e1654966385cda2828653096db34da", size = 470973, upload-time = "2025-10-08T17:28:44.465Z" }, + { url = "https://files.pythonhosted.org/packages/31/a4/92a8114d1d017c14aaa403445060f345df9130ca532d538094f38e535988/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c88396189d238f183cea7831b07a305ab5c90d6d29b53288ae11200bd956357b", size = 381161, upload-time = "2025-10-08T17:28:46.063Z" }, + { url = "https://files.pythonhosted.org/packages/d0/64/5b76447da654798bfcfdfd64ea29447ff2b7f33fe19d0e911a83ad5107fc/ormsgpack-1.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:5403d1a945dd7c81044cebeca3f00a28a0f4248b33242a5d2d82111628043725", size = 112321, upload-time = "2025-10-08T17:28:47.393Z" }, + { url = "https://files.pythonhosted.org/packages/46/5e/89900d06db9ab81e7ec1fd56a07c62dfbdcda398c435718f4252e1dc52a0/ormsgpack-1.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c57357b8d43b49722b876edf317bdad9e6d52071b523fdd7394c30cd1c67d5a0", size = 106084, upload-time = "2025-10-08T17:28:48.305Z" }, +] + +[[package]] +name = "overrides" +version = "7.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/86/b585f53236dec60aba864e050778b25045f857e17f6e5ea0ae95fe80edd2/overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", size = 22812, upload-time = "2024-01-27T21:01:33.423Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/ab/fc8290c6a4c722e5514d80f62b2dc4c4df1a68a41d1364e625c35990fcf3/overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49", size = 17832, upload-time = "2024-01-27T21:01:31.393Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454, upload-time = "2024-01-18T20:08:13.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, +] + +[[package]] +name = "parso" +version = "0.8.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205, upload-time = "2025-08-23T15:15:28.028Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668, upload-time = "2025-08-23T15:15:25.663Z" }, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/61/33/9611380c2bdb1225fdef633e2a9610622310fed35ab11dac9620972ee088/platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312", size = 21632, upload-time = "2025-10-08T17:44:48.791Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/cb/ac7874b3e5d58441674fb70742e6c374b28b0c7cb988d37d991cde47166c/platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3", size = 18651, upload-time = "2025-10-08T17:44:47.223Z" }, +] + +[[package]] +name = "prometheus-client" +version = "0.23.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481, upload-time = "2025-09-18T20:47:25.043Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145, upload-time = "2025-09-18T20:47:23.875Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "propcache" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload-time = "2025-10-08T19:46:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload-time = "2025-10-08T19:46:25.733Z" }, + { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload-time = "2025-10-08T19:46:27.304Z" }, + { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload-time = "2025-10-08T19:46:28.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload-time = "2025-10-08T19:46:30.358Z" }, + { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload-time = "2025-10-08T19:46:32.607Z" }, + { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload-time = "2025-10-08T19:46:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload-time = "2025-10-08T19:46:35.309Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload-time = "2025-10-08T19:46:36.993Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload-time = "2025-10-08T19:46:38.398Z" }, + { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload-time = "2025-10-08T19:46:39.732Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload-time = "2025-10-08T19:46:41.025Z" }, + { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload-time = "2025-10-08T19:46:42.693Z" }, + { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload-time = "2025-10-08T19:46:43.778Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload-time = "2025-10-08T19:46:44.872Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" }, +] + +[[package]] +name = "protobuf" +version = "6.33.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/ff/64a6c8f420818bb873713988ca5492cba3a7946be57e027ac63495157d97/protobuf-6.33.0.tar.gz", hash = "sha256:140303d5c8d2037730c548f8c7b93b20bb1dc301be280c378b82b8894589c954", size = 443463, upload-time = "2025-10-15T20:39:52.159Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/ee/52b3fa8feb6db4a833dfea4943e175ce645144532e8a90f72571ad85df4e/protobuf-6.33.0-cp310-abi3-win32.whl", hash = "sha256:d6101ded078042a8f17959eccd9236fb7a9ca20d3b0098bbcb91533a5680d035", size = 425593, upload-time = "2025-10-15T20:39:40.29Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c6/7a465f1825872c55e0341ff4a80198743f73b69ce5d43ab18043699d1d81/protobuf-6.33.0-cp310-abi3-win_amd64.whl", hash = "sha256:9a031d10f703f03768f2743a1c403af050b6ae1f3480e9c140f39c45f81b13ee", size = 436882, upload-time = "2025-10-15T20:39:42.841Z" }, + { url = "https://files.pythonhosted.org/packages/e1/a9/b6eee662a6951b9c3640e8e452ab3e09f117d99fc10baa32d1581a0d4099/protobuf-6.33.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:905b07a65f1a4b72412314082c7dbfae91a9e8b68a0cc1577515f8df58ecf455", size = 427521, upload-time = "2025-10-15T20:39:43.803Z" }, + { url = "https://files.pythonhosted.org/packages/10/35/16d31e0f92c6d2f0e77c2a3ba93185130ea13053dd16200a57434c882f2b/protobuf-6.33.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:e0697ece353e6239b90ee43a9231318302ad8353c70e6e45499fa52396debf90", size = 324445, upload-time = "2025-10-15T20:39:44.932Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/2a981a13e35cda8b75b5585aaffae2eb904f8f351bdd3870769692acbd8a/protobuf-6.33.0-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:e0a1715e4f27355afd9570f3ea369735afc853a6c3951a6afe1f80d8569ad298", size = 339159, upload-time = "2025-10-15T20:39:46.186Z" }, + { url = "https://files.pythonhosted.org/packages/21/51/0b1cbad62074439b867b4e04cc09b93f6699d78fd191bed2bbb44562e077/protobuf-6.33.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:35be49fd3f4fefa4e6e2aacc35e8b837d6703c37a2168a55ac21e9b1bc7559ef", size = 323172, upload-time = "2025-10-15T20:39:47.465Z" }, + { url = "https://files.pythonhosted.org/packages/07/d1/0a28c21707807c6aacd5dc9c3704b2aa1effbf37adebd8caeaf68b17a636/protobuf-6.33.0-py3-none-any.whl", hash = "sha256:25c9e1963c6734448ea2d308cfa610e692b801304ba0908d7bfa564ac5132995", size = 170477, upload-time = "2025-10-15T20:39:51.311Z" }, +] + +[[package]] +name = "psutil" +version = "7.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/ec/7b8e6b9b1d22708138630ef34c53ab2b61032c04f16adfdbb96791c8c70c/psutil-7.1.2.tar.gz", hash = "sha256:aa225cdde1335ff9684708ee8c72650f6598d5ed2114b9a7c5802030b1785018", size = 487424, upload-time = "2025-10-25T10:46:34.931Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/d9/b56cc9f883140ac10021a8c9b0f4e16eed1ba675c22513cdcbce3ba64014/psutil-7.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0cc5c6889b9871f231ed5455a9a02149e388fffcb30b607fb7a8896a6d95f22e", size = 238575, upload-time = "2025-10-25T10:46:38.728Z" }, + { url = "https://files.pythonhosted.org/packages/36/eb/28d22de383888deb252c818622196e709da98816e296ef95afda33f1c0a2/psutil-7.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8e9e77a977208d84aa363a4a12e0f72189d58bbf4e46b49aae29a2c6e93ef206", size = 239297, upload-time = "2025-10-25T10:46:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/89/5d/220039e2f28cc129626e54d63892ab05c0d56a29818bfe7268dcb5008932/psutil-7.1.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d9623a5e4164d2220ecceb071f4b333b3c78866141e8887c072129185f41278", size = 280420, upload-time = "2025-10-25T10:46:44.122Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7a/286f0e1c167445b2ef4a6cbdfc8c59fdb45a5a493788950cf8467201dc73/psutil-7.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:364b1c10fe4ed59c89ec49e5f1a70da353b27986fa8233b4b999df4742a5ee2f", size = 283049, upload-time = "2025-10-25T10:46:47.095Z" }, + { url = "https://files.pythonhosted.org/packages/aa/cc/7eb93260794a42e39b976f3a4dde89725800b9f573b014fac142002a5c98/psutil-7.1.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f101ef84de7e05d41310e3ccbdd65a6dd1d9eed85e8aaf0758405d022308e204", size = 248713, upload-time = "2025-10-25T10:46:49.573Z" }, + { url = "https://files.pythonhosted.org/packages/ab/1a/0681a92b53366e01f0a099f5237d0c8a2f79d322ac589cccde5e30c8a4e2/psutil-7.1.2-cp313-cp313t-win_arm64.whl", hash = "sha256:20c00824048a95de67f00afedc7b08b282aa08638585b0206a9fb51f28f1a165", size = 244644, upload-time = "2025-10-25T10:46:51.924Z" }, + { url = "https://files.pythonhosted.org/packages/ae/89/b9f8d47ddbc52d7301fc868e8224e5f44ed3c7f55e6d0f54ecaf5dd9ff5e/psutil-7.1.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c9ba5c19f2d46203ee8c152c7b01df6eec87d883cfd8ee1af2ef2727f6b0f814", size = 237244, upload-time = "2025-10-25T10:47:07.086Z" }, + { url = "https://files.pythonhosted.org/packages/c8/7a/8628c2f6b240680a67d73d8742bb9ff39b1820a693740e43096d5dcb01e5/psutil-7.1.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:2a486030d2fe81bec023f703d3d155f4823a10a47c36784c84f1cc7f8d39bedb", size = 238101, upload-time = "2025-10-25T10:47:09.523Z" }, + { url = "https://files.pythonhosted.org/packages/30/28/5e27f4d5a0e347f8e3cc16cd7d35533dbce086c95807f1f0e9cd77e26c10/psutil-7.1.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3efd8fc791492e7808a51cb2b94889db7578bfaea22df931424f874468e389e3", size = 258675, upload-time = "2025-10-25T10:47:11.082Z" }, + { url = "https://files.pythonhosted.org/packages/e5/5c/79cf60c9acf36d087f0db0f82066fca4a780e97e5b3a2e4c38209c03d170/psutil-7.1.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2aeb9b64f481b8eabfc633bd39e0016d4d8bbcd590d984af764d80bf0851b8a", size = 260203, upload-time = "2025-10-25T10:47:13.226Z" }, + { url = "https://files.pythonhosted.org/packages/f7/03/0a464404c51685dcb9329fdd660b1721e076ccd7b3d97dee066bcc9ffb15/psutil-7.1.2-cp37-abi3-win_amd64.whl", hash = "sha256:8e17852114c4e7996fe9da4745c2bdef001ebbf2f260dec406290e66628bdb91", size = 246714, upload-time = "2025-10-25T10:47:15.093Z" }, + { url = "https://files.pythonhosted.org/packages/6a/32/97ca2090f2f1b45b01b6aa7ae161cfe50671de097311975ca6eea3e7aabc/psutil-7.1.2-cp37-abi3-win_arm64.whl", hash = "sha256:3e988455e61c240cc879cb62a008c2699231bf3e3d061d7fce4234463fd2abb4", size = 243742, upload-time = "2025-10-25T10:47:17.302Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383, upload-time = "2025-10-17T15:04:21.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431, upload-time = "2025-10-17T15:04:19.346Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557, upload-time = "2025-10-14T10:23:47.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/4c/f6cbfa1e8efacd00b846764e8484fe173d25b8dab881e277a619177f3384/pydantic_core-2.41.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:28ff11666443a1a8cf2a044d6a545ebffa8382b5f7973f22c36109205e65dc80", size = 2109062, upload-time = "2025-10-14T10:20:04.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/f8/40b72d3868896bfcd410e1bd7e516e762d326201c48e5b4a06446f6cf9e8/pydantic_core-2.41.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:61760c3925d4633290292bad462e0f737b840508b4f722247d8729684f6539ae", size = 1916301, upload-time = "2025-10-14T10:20:06.857Z" }, + { url = "https://files.pythonhosted.org/packages/94/4d/d203dce8bee7faeca791671c88519969d98d3b4e8f225da5b96dad226fc8/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eae547b7315d055b0de2ec3965643b0ab82ad0106a7ffd29615ee9f266a02827", size = 1968728, upload-time = "2025-10-14T10:20:08.353Z" }, + { url = "https://files.pythonhosted.org/packages/65/f5/6a66187775df87c24d526985b3a5d78d861580ca466fbd9d4d0e792fcf6c/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ef9ee5471edd58d1fcce1c80ffc8783a650e3e3a193fe90d52e43bb4d87bff1f", size = 2050238, upload-time = "2025-10-14T10:20:09.766Z" }, + { url = "https://files.pythonhosted.org/packages/5e/b9/78336345de97298cf53236b2f271912ce11f32c1e59de25a374ce12f9cce/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15dd504af121caaf2c95cb90c0ebf71603c53de98305621b94da0f967e572def", size = 2249424, upload-time = "2025-10-14T10:20:11.732Z" }, + { url = "https://files.pythonhosted.org/packages/99/bb/a4584888b70ee594c3d374a71af5075a68654d6c780369df269118af7402/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a926768ea49a8af4d36abd6a8968b8790f7f76dd7cbd5a4c180db2b4ac9a3a2", size = 2366047, upload-time = "2025-10-14T10:20:13.647Z" }, + { url = "https://files.pythonhosted.org/packages/5f/8d/17fc5de9d6418e4d2ae8c675f905cdafdc59d3bf3bf9c946b7ab796a992a/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916b9b7d134bff5440098a4deb80e4cb623e68974a87883299de9124126c2a8", size = 2071163, upload-time = "2025-10-14T10:20:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/54/e7/03d2c5c0b8ed37a4617430db68ec5e7dbba66358b629cd69e11b4d564367/pydantic_core-2.41.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cf90535979089df02e6f17ffd076f07237efa55b7343d98760bde8743c4b265", size = 2190585, upload-time = "2025-10-14T10:20:17.3Z" }, + { url = "https://files.pythonhosted.org/packages/be/fc/15d1c9fe5ad9266a5897d9b932b7f53d7e5cfc800573917a2c5d6eea56ec/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7533c76fa647fade2d7ec75ac5cc079ab3f34879626dae5689b27790a6cf5a5c", size = 2150109, upload-time = "2025-10-14T10:20:19.143Z" }, + { url = "https://files.pythonhosted.org/packages/26/ef/e735dd008808226c83ba56972566138665b71477ad580fa5a21f0851df48/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:37e516bca9264cbf29612539801ca3cd5d1be465f940417b002905e6ed79d38a", size = 2315078, upload-time = "2025-10-14T10:20:20.742Z" }, + { url = "https://files.pythonhosted.org/packages/90/00/806efdcf35ff2ac0f938362350cd9827b8afb116cc814b6b75cf23738c7c/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0c19cb355224037c83642429b8ce261ae108e1c5fbf5c028bac63c77b0f8646e", size = 2318737, upload-time = "2025-10-14T10:20:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/41/7e/6ac90673fe6cb36621a2283552897838c020db343fa86e513d3f563b196f/pydantic_core-2.41.4-cp311-cp311-win32.whl", hash = "sha256:09c2a60e55b357284b5f31f5ab275ba9f7f70b7525e18a132ec1f9160b4f1f03", size = 1974160, upload-time = "2025-10-14T10:20:23.817Z" }, + { url = "https://files.pythonhosted.org/packages/e0/9d/7c5e24ee585c1f8b6356e1d11d40ab807ffde44d2db3b7dfd6d20b09720e/pydantic_core-2.41.4-cp311-cp311-win_amd64.whl", hash = "sha256:711156b6afb5cb1cb7c14a2cc2c4a8b4c717b69046f13c6b332d8a0a8f41ca3e", size = 2021883, upload-time = "2025-10-14T10:20:25.48Z" }, + { url = "https://files.pythonhosted.org/packages/33/90/5c172357460fc28b2871eb4a0fb3843b136b429c6fa827e4b588877bf115/pydantic_core-2.41.4-cp311-cp311-win_arm64.whl", hash = "sha256:6cb9cf7e761f4f8a8589a45e49ed3c0d92d1d696a45a6feaee8c904b26efc2db", size = 1968026, upload-time = "2025-10-14T10:20:27.039Z" }, + { url = "https://files.pythonhosted.org/packages/e9/81/d3b3e95929c4369d30b2a66a91db63c8ed0a98381ae55a45da2cd1cc1288/pydantic_core-2.41.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ab06d77e053d660a6faaf04894446df7b0a7e7aba70c2797465a0a1af00fc887", size = 2099043, upload-time = "2025-10-14T10:20:28.561Z" }, + { url = "https://files.pythonhosted.org/packages/58/da/46fdac49e6717e3a94fc9201403e08d9d61aa7a770fab6190b8740749047/pydantic_core-2.41.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c53ff33e603a9c1179a9364b0a24694f183717b2e0da2b5ad43c316c956901b2", size = 1910699, upload-time = "2025-10-14T10:20:30.217Z" }, + { url = "https://files.pythonhosted.org/packages/1e/63/4d948f1b9dd8e991a5a98b77dd66c74641f5f2e5225fee37994b2e07d391/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:304c54176af2c143bd181d82e77c15c41cbacea8872a2225dd37e6544dce9999", size = 1952121, upload-time = "2025-10-14T10:20:32.246Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a7/e5fc60a6f781fc634ecaa9ecc3c20171d238794cef69ae0af79ac11b89d7/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025ba34a4cf4fb32f917d5d188ab5e702223d3ba603be4d8aca2f82bede432a4", size = 2041590, upload-time = "2025-10-14T10:20:34.332Z" }, + { url = "https://files.pythonhosted.org/packages/70/69/dce747b1d21d59e85af433428978a1893c6f8a7068fa2bb4a927fba7a5ff/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f5f30c402ed58f90c70e12eff65547d3ab74685ffe8283c719e6bead8ef53f", size = 2219869, upload-time = "2025-10-14T10:20:35.965Z" }, + { url = "https://files.pythonhosted.org/packages/83/6a/c070e30e295403bf29c4df1cb781317b6a9bac7cd07b8d3acc94d501a63c/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd96e5d15385d301733113bcaa324c8bcf111275b7675a9c6e88bfb19fc05e3b", size = 2345169, upload-time = "2025-10-14T10:20:37.627Z" }, + { url = "https://files.pythonhosted.org/packages/f0/83/06d001f8043c336baea7fd202a9ac7ad71f87e1c55d8112c50b745c40324/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98f348cbb44fae6e9653c1055db7e29de67ea6a9ca03a5fa2c2e11a47cff0e47", size = 2070165, upload-time = "2025-10-14T10:20:39.246Z" }, + { url = "https://files.pythonhosted.org/packages/14/0a/e567c2883588dd12bcbc110232d892cf385356f7c8a9910311ac997ab715/pydantic_core-2.41.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec22626a2d14620a83ca583c6f5a4080fa3155282718b6055c2ea48d3ef35970", size = 2189067, upload-time = "2025-10-14T10:20:41.015Z" }, + { url = "https://files.pythonhosted.org/packages/f4/1d/3d9fca34273ba03c9b1c5289f7618bc4bd09c3ad2289b5420481aa051a99/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a95d4590b1f1a43bf33ca6d647b990a88f4a3824a8c4572c708f0b45a5290ed", size = 2132997, upload-time = "2025-10-14T10:20:43.106Z" }, + { url = "https://files.pythonhosted.org/packages/52/70/d702ef7a6cd41a8afc61f3554922b3ed8d19dd54c3bd4bdbfe332e610827/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:f9672ab4d398e1b602feadcffcdd3af44d5f5e6ddc15bc7d15d376d47e8e19f8", size = 2307187, upload-time = "2025-10-14T10:20:44.849Z" }, + { url = "https://files.pythonhosted.org/packages/68/4c/c06be6e27545d08b802127914156f38d10ca287a9e8489342793de8aae3c/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:84d8854db5f55fead3b579f04bda9a36461dab0730c5d570e1526483e7bb8431", size = 2305204, upload-time = "2025-10-14T10:20:46.781Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e5/35ae4919bcd9f18603419e23c5eaf32750224a89d41a8df1a3704b69f77e/pydantic_core-2.41.4-cp312-cp312-win32.whl", hash = "sha256:9be1c01adb2ecc4e464392c36d17f97e9110fbbc906bcbe1c943b5b87a74aabd", size = 1972536, upload-time = "2025-10-14T10:20:48.39Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c2/49c5bb6d2a49eb2ee3647a93e3dae7080c6409a8a7558b075027644e879c/pydantic_core-2.41.4-cp312-cp312-win_amd64.whl", hash = "sha256:d682cf1d22bab22a5be08539dca3d1593488a99998f9f412137bc323179067ff", size = 2031132, upload-time = "2025-10-14T10:20:50.421Z" }, + { url = "https://files.pythonhosted.org/packages/06/23/936343dbcba6eec93f73e95eb346810fc732f71ba27967b287b66f7b7097/pydantic_core-2.41.4-cp312-cp312-win_arm64.whl", hash = "sha256:833eebfd75a26d17470b58768c1834dfc90141b7afc6eb0429c21fc5a21dcfb8", size = 1969483, upload-time = "2025-10-14T10:20:52.35Z" }, + { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688, upload-time = "2025-10-14T10:20:54.448Z" }, + { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807, upload-time = "2025-10-14T10:20:56.115Z" }, + { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669, upload-time = "2025-10-14T10:20:57.874Z" }, + { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629, upload-time = "2025-10-14T10:21:00.006Z" }, + { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049, upload-time = "2025-10-14T10:21:01.801Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409, upload-time = "2025-10-14T10:21:03.556Z" }, + { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635, upload-time = "2025-10-14T10:21:05.385Z" }, + { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284, upload-time = "2025-10-14T10:21:07.122Z" }, + { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566, upload-time = "2025-10-14T10:21:08.981Z" }, + { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809, upload-time = "2025-10-14T10:21:10.805Z" }, + { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119, upload-time = "2025-10-14T10:21:12.583Z" }, + { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398, upload-time = "2025-10-14T10:21:14.584Z" }, + { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735, upload-time = "2025-10-14T10:21:16.432Z" }, + { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209, upload-time = "2025-10-14T10:21:18.213Z" }, + { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324, upload-time = "2025-10-14T10:21:20.363Z" }, + { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515, upload-time = "2025-10-14T10:21:22.339Z" }, + { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819, upload-time = "2025-10-14T10:21:26.683Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866, upload-time = "2025-10-14T10:21:28.951Z" }, + { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034, upload-time = "2025-10-14T10:21:30.869Z" }, + { url = "https://files.pythonhosted.org/packages/b0/12/5ba58daa7f453454464f92b3ca7b9d7c657d8641c48e370c3ebc9a82dd78/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:a1b2cfec3879afb742a7b0bcfa53e4f22ba96571c9e54d6a3afe1052d17d843b", size = 2122139, upload-time = "2025-10-14T10:22:47.288Z" }, + { url = "https://files.pythonhosted.org/packages/21/fb/6860126a77725c3108baecd10fd3d75fec25191d6381b6eb2ac660228eac/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:d175600d975b7c244af6eb9c9041f10059f20b8bbffec9e33fdd5ee3f67cdc42", size = 1936674, upload-time = "2025-10-14T10:22:49.555Z" }, + { url = "https://files.pythonhosted.org/packages/de/be/57dcaa3ed595d81f8757e2b44a38240ac5d37628bce25fb20d02c7018776/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f184d657fa4947ae5ec9c47bd7e917730fa1cbb78195037e32dcbab50aca5ee", size = 1956398, upload-time = "2025-10-14T10:22:52.19Z" }, + { url = "https://files.pythonhosted.org/packages/2f/1d/679a344fadb9695f1a6a294d739fbd21d71fa023286daeea8c0ed49e7c2b/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed810568aeffed3edc78910af32af911c835cc39ebbfacd1f0ab5dd53028e5c", size = 2138674, upload-time = "2025-10-14T10:22:54.499Z" }, + { url = "https://files.pythonhosted.org/packages/c4/48/ae937e5a831b7c0dc646b2ef788c27cd003894882415300ed21927c21efa/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:4f5d640aeebb438517150fdeec097739614421900e4a08db4a3ef38898798537", size = 2112087, upload-time = "2025-10-14T10:22:56.818Z" }, + { url = "https://files.pythonhosted.org/packages/5e/db/6db8073e3d32dae017da7e0d16a9ecb897d0a4d92e00634916e486097961/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:4a9ab037b71927babc6d9e7fc01aea9e66dc2a4a34dff06ef0724a4049629f94", size = 1920387, upload-time = "2025-10-14T10:22:59.342Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c1/dd3542d072fcc336030d66834872f0328727e3b8de289c662faa04aa270e/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dab9484ec605c3016df9ad4fd4f9a390bc5d816a3b10c6550f8424bb80b18c", size = 1951495, upload-time = "2025-10-14T10:23:02.089Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c6/db8d13a1f8ab3f1eb08c88bd00fd62d44311e3456d1e85c0e59e0a0376e7/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8a5028425820731d8c6c098ab642d7b8b999758e24acae03ed38a66eca8335", size = 2139008, upload-time = "2025-10-14T10:23:04.539Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7d/138e902ed6399b866f7cfe4435d22445e16fff888a1c00560d9dc79a780f/pydantic_core-2.41.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:491535d45cd7ad7e4a2af4a5169b0d07bebf1adfd164b0368da8aa41e19907a5", size = 2104721, upload-time = "2025-10-14T10:23:26.906Z" }, + { url = "https://files.pythonhosted.org/packages/47/13/0525623cf94627f7b53b4c2034c81edc8491cbfc7c28d5447fa318791479/pydantic_core-2.41.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:54d86c0cada6aba4ec4c047d0e348cbad7063b87ae0f005d9f8c9ad04d4a92a2", size = 1931608, upload-time = "2025-10-14T10:23:29.306Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f9/744bc98137d6ef0a233f808bfc9b18cf94624bf30836a18d3b05d08bf418/pydantic_core-2.41.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca1124aced216b2500dc2609eade086d718e8249cb9696660ab447d50a758bd", size = 2132986, upload-time = "2025-10-14T10:23:32.057Z" }, + { url = "https://files.pythonhosted.org/packages/17/c8/629e88920171173f6049386cc71f893dff03209a9ef32b4d2f7e7c264bcf/pydantic_core-2.41.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6c9024169becccf0cb470ada03ee578d7348c119a0d42af3dcf9eda96e3a247c", size = 2187516, upload-time = "2025-10-14T10:23:34.871Z" }, + { url = "https://files.pythonhosted.org/packages/2e/0f/4f2734688d98488782218ca61bcc118329bf5de05bb7fe3adc7dd79b0b86/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:26895a4268ae5a2849269f4991cdc97236e4b9c010e51137becf25182daac405", size = 2146146, upload-time = "2025-10-14T10:23:37.342Z" }, + { url = "https://files.pythonhosted.org/packages/ed/f2/ab385dbd94a052c62224b99cf99002eee99dbec40e10006c78575aead256/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:ca4df25762cf71308c446e33c9b1fdca2923a3f13de616e2a949f38bf21ff5a8", size = 2311296, upload-time = "2025-10-14T10:23:40.145Z" }, + { url = "https://files.pythonhosted.org/packages/fc/8e/e4f12afe1beeb9823bba5375f8f258df0cc61b056b0195fb1cf9f62a1a58/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:5a28fcedd762349519276c36634e71853b4541079cab4acaaac60c4421827308", size = 2315386, upload-time = "2025-10-14T10:23:42.624Z" }, + { url = "https://files.pythonhosted.org/packages/48/f7/925f65d930802e3ea2eb4d5afa4cb8730c8dc0d2cb89a59dc4ed2fcb2d74/pydantic_core-2.41.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c173ddcd86afd2535e2b695217e82191580663a1d1928239f877f5a1649ef39f", size = 2147775, upload-time = "2025-10-14T10:23:45.406Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/c5/dbbc27b814c71676593d1c3f718e6cd7d4f00652cefa24b75f7aa3efb25e/pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180", size = 188394, upload-time = "2025-09-24T14:19:11.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/d6/887a1ff844e64aa823fb4905978d882a633cfe295c32eacad582b78a7d8b/pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c", size = 48608, upload-time = "2025-09-24T14:19:10.015Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, +] + +[[package]] +name = "python-json-logger" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", size = 37158, upload-time = "2024-12-16T19:45:46.972Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", size = 24546, upload-time = "2024-12-16T19:45:44.423Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, +] + +[[package]] +name = "pywinpty" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/bb/a7cc2967c5c4eceb6cc49cfe39447d4bfc56e6c865e7c2249b6eb978935f/pywinpty-3.0.2.tar.gz", hash = "sha256:1505cc4cb248af42cb6285a65c9c2086ee9e7e574078ee60933d5d7fa86fb004", size = 30669, upload-time = "2025-10-03T21:16:29.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/a1/409c1651c9f874d598c10f51ff586c416625601df4bca315d08baec4c3e3/pywinpty-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:327790d70e4c841ebd9d0f295a780177149aeb405bca44c7115a3de5c2054b23", size = 2050304, upload-time = "2025-10-03T21:19:29.466Z" }, + { url = "https://files.pythonhosted.org/packages/02/4e/1098484e042c9485f56f16eb2b69b43b874bd526044ee401512234cf9e04/pywinpty-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:99fdd9b455f0ad6419aba6731a7a0d2f88ced83c3c94a80ff9533d95fa8d8a9e", size = 2050391, upload-time = "2025-10-03T21:19:01.642Z" }, + { url = "https://files.pythonhosted.org/packages/fc/19/b757fe28008236a4a713e813283721b8a40aa60cd7d3f83549f2e25a3155/pywinpty-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:18f78b81e4cfee6aabe7ea8688441d30247b73e52cd9657138015c5f4ee13a51", size = 2050057, upload-time = "2025-10-03T21:19:26.732Z" }, + { url = "https://files.pythonhosted.org/packages/cb/44/cbae12ecf6f4fa4129c36871fd09c6bef4f98d5f625ecefb5e2449765508/pywinpty-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:663383ecfab7fc382cc97ea5c4f7f0bb32c2f889259855df6ea34e5df42d305b", size = 2049874, upload-time = "2025-10-03T21:18:53.923Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, +] + +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload-time = "2025-09-08T23:07:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload-time = "2025-09-08T23:07:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload-time = "2025-09-08T23:07:49.436Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload-time = "2025-09-08T23:07:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload-time = "2025-09-08T23:07:52.795Z" }, + { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload-time = "2025-09-08T23:07:55.047Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload-time = "2025-09-08T23:07:57.172Z" }, + { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload-time = "2025-09-08T23:07:59.05Z" }, + { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload-time = "2025-09-08T23:08:00.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload-time = "2025-09-08T23:08:02.15Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload-time = "2025-09-08T23:09:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload-time = "2025-09-08T23:09:51.073Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload-time = "2025-09-08T23:09:52.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload-time = "2025-09-08T23:09:54.563Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "regex" +version = "2025.10.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/c8/1d2160d36b11fbe0a61acb7c3c81ab032d9ec8ad888ac9e0a61b85ab99dd/regex-2025.10.23.tar.gz", hash = "sha256:8cbaf8ceb88f96ae2356d01b9adf5e6306fa42fa6f7eab6b97794e37c959ac26", size = 401266, upload-time = "2025-10-21T15:58:20.23Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/e5/74b7cd5cd76b4171f9793042045bb1726f7856dd56e582fc3e058a7a8a5e/regex-2025.10.23-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c531155bf9179345e85032052a1e5fe1a696a6abf9cea54b97e8baefff970fd", size = 487960, upload-time = "2025-10-21T15:54:53.253Z" }, + { url = "https://files.pythonhosted.org/packages/b9/08/854fa4b3b20471d1df1c71e831b6a1aa480281e37791e52a2df9641ec5c6/regex-2025.10.23-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:912e9df4e89d383681268d38ad8f5780d7cccd94ba0e9aa09ca7ab7ab4f8e7eb", size = 290425, upload-time = "2025-10-21T15:54:55.21Z" }, + { url = "https://files.pythonhosted.org/packages/ab/d3/6272b1dd3ca1271661e168762b234ad3e00dbdf4ef0c7b9b72d2d159efa7/regex-2025.10.23-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f375c61bfc3138b13e762fe0ae76e3bdca92497816936534a0177201666f44f", size = 288278, upload-time = "2025-10-21T15:54:56.862Z" }, + { url = "https://files.pythonhosted.org/packages/14/8f/c7b365dd9d9bc0a36e018cb96f2ffb60d2ba8deb589a712b437f67de2920/regex-2025.10.23-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e248cc9446081119128ed002a3801f8031e0c219b5d3c64d3cc627da29ac0a33", size = 793289, upload-time = "2025-10-21T15:54:58.352Z" }, + { url = "https://files.pythonhosted.org/packages/d4/fb/b8fbe9aa16cf0c21f45ec5a6c74b4cecbf1a1c0deb7089d4a6f83a9c1caa/regex-2025.10.23-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b52bf9282fdf401e4f4e721f0f61fc4b159b1307244517789702407dd74e38ca", size = 860321, upload-time = "2025-10-21T15:54:59.813Z" }, + { url = "https://files.pythonhosted.org/packages/b0/81/bf41405c772324926a9bd8a640dedaa42da0e929241834dfce0733070437/regex-2025.10.23-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c084889ab2c59765a0d5ac602fd1c3c244f9b3fcc9a65fdc7ba6b74c5287490", size = 907011, upload-time = "2025-10-21T15:55:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/a4/fb/5ad6a8b92d3f88f3797b51bb4ef47499acc2d0b53d2fbe4487a892f37a73/regex-2025.10.23-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d80e8eb79009bdb0936658c44ca06e2fbbca67792013e3818eea3f5f228971c2", size = 800312, upload-time = "2025-10-21T15:55:04.15Z" }, + { url = "https://files.pythonhosted.org/packages/42/48/b4efba0168a2b57f944205d823f8e8a3a1ae6211a34508f014ec2c712f4f/regex-2025.10.23-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6f259118ba87b814a8ec475380aee5f5ae97a75852a3507cf31d055b01b5b40", size = 782839, upload-time = "2025-10-21T15:55:05.641Z" }, + { url = "https://files.pythonhosted.org/packages/13/2a/c9efb4c6c535b0559c1fa8e431e0574d229707c9ca718600366fcfef6801/regex-2025.10.23-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:9b8c72a242683dcc72d37595c4f1278dfd7642b769e46700a8df11eab19dfd82", size = 854270, upload-time = "2025-10-21T15:55:07.27Z" }, + { url = "https://files.pythonhosted.org/packages/34/2d/68eecc1bdaee020e8ba549502291c9450d90d8590d0552247c9b543ebf7b/regex-2025.10.23-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a8d7b7a0a3df9952f9965342159e0c1f05384c0f056a47ce8b61034f8cecbe83", size = 845771, upload-time = "2025-10-21T15:55:09.477Z" }, + { url = "https://files.pythonhosted.org/packages/a5/cd/a1ae499cf9b87afb47a67316bbf1037a7c681ffe447c510ed98c0aa2c01c/regex-2025.10.23-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:413bfea20a484c524858125e92b9ce6ffdd0a4b97d4ff96b5859aa119b0f1bdd", size = 788778, upload-time = "2025-10-21T15:55:11.396Z" }, + { url = "https://files.pythonhosted.org/packages/38/f9/70765e63f5ea7d43b2b6cd4ee9d3323f16267e530fb2a420d92d991cf0fc/regex-2025.10.23-cp311-cp311-win32.whl", hash = "sha256:f76deef1f1019a17dad98f408b8f7afc4bd007cbe835ae77b737e8c7f19ae575", size = 265666, upload-time = "2025-10-21T15:55:13.306Z" }, + { url = "https://files.pythonhosted.org/packages/9c/1a/18e9476ee1b63aaec3844d8e1cb21842dc19272c7e86d879bfc0dcc60db3/regex-2025.10.23-cp311-cp311-win_amd64.whl", hash = "sha256:59bba9f7125536f23fdab5deeea08da0c287a64c1d3acc1c7e99515809824de8", size = 277600, upload-time = "2025-10-21T15:55:15.087Z" }, + { url = "https://files.pythonhosted.org/packages/1d/1b/c019167b1f7a8ec77251457e3ff0339ed74ca8bce1ea13138dc98309c923/regex-2025.10.23-cp311-cp311-win_arm64.whl", hash = "sha256:b103a752b6f1632ca420225718d6ed83f6a6ced3016dd0a4ab9a6825312de566", size = 269974, upload-time = "2025-10-21T15:55:16.841Z" }, + { url = "https://files.pythonhosted.org/packages/f6/57/eeb274d83ab189d02d778851b1ac478477522a92b52edfa6e2ae9ff84679/regex-2025.10.23-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7a44d9c00f7a0a02d3b777429281376370f3d13d2c75ae74eb94e11ebcf4a7fc", size = 489187, upload-time = "2025-10-21T15:55:18.322Z" }, + { url = "https://files.pythonhosted.org/packages/55/5c/7dad43a9b6ea88bf77e0b8b7729a4c36978e1043165034212fd2702880c6/regex-2025.10.23-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b83601f84fde939ae3478bb32a3aef36f61b58c3208d825c7e8ce1a735f143f2", size = 291122, upload-time = "2025-10-21T15:55:20.2Z" }, + { url = "https://files.pythonhosted.org/packages/66/21/38b71e6f2818f0f4b281c8fba8d9d57cfca7b032a648fa59696e0a54376a/regex-2025.10.23-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ec13647907bb9d15fd192bbfe89ff06612e098a5709e7d6ecabbdd8f7908fc45", size = 288797, upload-time = "2025-10-21T15:55:21.932Z" }, + { url = "https://files.pythonhosted.org/packages/be/95/888f069c89e7729732a6d7cca37f76b44bfb53a1e35dda8a2c7b65c1b992/regex-2025.10.23-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78d76dd2957d62501084e7012ddafc5fcd406dd982b7a9ca1ea76e8eaaf73e7e", size = 798442, upload-time = "2025-10-21T15:55:23.747Z" }, + { url = "https://files.pythonhosted.org/packages/76/70/4f903c608faf786627a8ee17c06e0067b5acade473678b69c8094b248705/regex-2025.10.23-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8668e5f067e31a47699ebb354f43aeb9c0ef136f915bd864243098524482ac43", size = 864039, upload-time = "2025-10-21T15:55:25.656Z" }, + { url = "https://files.pythonhosted.org/packages/62/19/2df67b526bf25756c7f447dde554fc10a220fd839cc642f50857d01e4a7b/regex-2025.10.23-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a32433fe3deb4b2d8eda88790d2808fed0dc097e84f5e683b4cd4f42edef6cca", size = 912057, upload-time = "2025-10-21T15:55:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/99/14/9a39b7c9e007968411bc3c843cc14cf15437510c0a9991f080cab654fd16/regex-2025.10.23-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d97d73818c642c938db14c0668167f8d39520ca9d983604575ade3fda193afcc", size = 803374, upload-time = "2025-10-21T15:55:28.9Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f7/3495151dd3ca79949599b6d069b72a61a2c5e24fc441dccc79dcaf708fe6/regex-2025.10.23-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bca7feecc72ee33579e9f6ddf8babbe473045717a0e7dbc347099530f96e8b9a", size = 787714, upload-time = "2025-10-21T15:55:30.628Z" }, + { url = "https://files.pythonhosted.org/packages/28/65/ee882455e051131869957ee8597faea45188c9a98c0dad724cfb302d4580/regex-2025.10.23-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7e24af51e907d7457cc4a72691ec458320b9ae67dc492f63209f01eecb09de32", size = 858392, upload-time = "2025-10-21T15:55:32.322Z" }, + { url = "https://files.pythonhosted.org/packages/53/25/9287fef5be97529ebd3ac79d256159cb709a07eb58d4be780d1ca3885da8/regex-2025.10.23-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d10bcde58bbdf18146f3a69ec46dd03233b94a4a5632af97aa5378da3a47d288", size = 850484, upload-time = "2025-10-21T15:55:34.037Z" }, + { url = "https://files.pythonhosted.org/packages/f3/b4/b49b88b4fea2f14dc73e5b5842755e782fc2e52f74423d6f4adc130d5880/regex-2025.10.23-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:44383bc0c933388516c2692c9a7503e1f4a67e982f20b9a29d2fb70c6494f147", size = 789634, upload-time = "2025-10-21T15:55:35.958Z" }, + { url = "https://files.pythonhosted.org/packages/b6/3c/2f8d199d0e84e78bcd6bdc2be9b62410624f6b796e2893d1837ae738b160/regex-2025.10.23-cp312-cp312-win32.whl", hash = "sha256:6040a86f95438a0114bba16e51dfe27f1bc004fd29fe725f54a586f6d522b079", size = 266060, upload-time = "2025-10-21T15:55:37.902Z" }, + { url = "https://files.pythonhosted.org/packages/d7/67/c35e80969f6ded306ad70b0698863310bdf36aca57ad792f45ddc0e2271f/regex-2025.10.23-cp312-cp312-win_amd64.whl", hash = "sha256:436b4c4352fe0762e3bfa34a5567079baa2ef22aa9c37cf4d128979ccfcad842", size = 276931, upload-time = "2025-10-21T15:55:39.502Z" }, + { url = "https://files.pythonhosted.org/packages/f5/a1/4ed147de7d2b60174f758412c87fa51ada15cd3296a0ff047f4280aaa7ca/regex-2025.10.23-cp312-cp312-win_arm64.whl", hash = "sha256:f4b1b1991617055b46aff6f6db24888c1f05f4db9801349d23f09ed0714a9335", size = 270103, upload-time = "2025-10-21T15:55:41.24Z" }, + { url = "https://files.pythonhosted.org/packages/28/c6/195a6217a43719d5a6a12cc192a22d12c40290cecfa577f00f4fb822f07d/regex-2025.10.23-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b7690f95404a1293923a296981fd943cca12c31a41af9c21ba3edd06398fc193", size = 488956, upload-time = "2025-10-21T15:55:42.887Z" }, + { url = "https://files.pythonhosted.org/packages/4c/93/181070cd1aa2fa541ff2d3afcf763ceecd4937b34c615fa92765020a6c90/regex-2025.10.23-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1a32d77aeaea58a13230100dd8797ac1a84c457f3af2fdf0d81ea689d5a9105b", size = 290997, upload-time = "2025-10-21T15:55:44.53Z" }, + { url = "https://files.pythonhosted.org/packages/b6/c5/9d37fbe3a40ed8dda78c23e1263002497540c0d1522ed75482ef6c2000f0/regex-2025.10.23-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b24b29402f264f70a3c81f45974323b41764ff7159655360543b7cabb73e7d2f", size = 288686, upload-time = "2025-10-21T15:55:46.186Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e7/db610ff9f10c2921f9b6ac0c8d8be4681b28ddd40fc0549429366967e61f/regex-2025.10.23-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:563824a08c7c03d96856d84b46fdb3bbb7cfbdf79da7ef68725cda2ce169c72a", size = 798466, upload-time = "2025-10-21T15:55:48.24Z" }, + { url = "https://files.pythonhosted.org/packages/90/10/aab883e1fa7fe2feb15ac663026e70ca0ae1411efa0c7a4a0342d9545015/regex-2025.10.23-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0ec8bdd88d2e2659c3518087ee34b37e20bd169419ffead4240a7004e8ed03b", size = 863996, upload-time = "2025-10-21T15:55:50.478Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b0/8f686dd97a51f3b37d0238cd00a6d0f9ccabe701f05b56de1918571d0d61/regex-2025.10.23-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b577601bfe1d33913fcd9276d7607bbac827c4798d9e14d04bf37d417a6c41cb", size = 912145, upload-time = "2025-10-21T15:55:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ca/639f8cd5b08797bca38fc5e7e07f76641a428cf8c7fca05894caf045aa32/regex-2025.10.23-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c9f2c68ac6cb3de94eea08a437a75eaa2bd33f9e97c84836ca0b610a5804368", size = 803370, upload-time = "2025-10-21T15:55:53.944Z" }, + { url = "https://files.pythonhosted.org/packages/0d/1e/a40725bb76959eddf8abc42a967bed6f4851b39f5ac4f20e9794d7832aa5/regex-2025.10.23-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:89f8b9ea3830c79468e26b0e21c3585f69f105157c2154a36f6b7839f8afb351", size = 787767, upload-time = "2025-10-21T15:55:56.004Z" }, + { url = "https://files.pythonhosted.org/packages/3d/d8/8ee9858062936b0f99656dce390aa667c6e7fb0c357b1b9bf76fb5e2e708/regex-2025.10.23-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:98fd84c4e4ea185b3bb5bf065261ab45867d8875032f358a435647285c722673", size = 858335, upload-time = "2025-10-21T15:55:58.185Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0a/ed5faaa63fa8e3064ab670e08061fbf09e3a10235b19630cf0cbb9e48c0a/regex-2025.10.23-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1e11d3e5887b8b096f96b4154dfb902f29c723a9556639586cd140e77e28b313", size = 850402, upload-time = "2025-10-21T15:56:00.023Z" }, + { url = "https://files.pythonhosted.org/packages/79/14/d05f617342f4b2b4a23561da500ca2beab062bfcc408d60680e77ecaf04d/regex-2025.10.23-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f13450328a6634348d47a88367e06b64c9d84980ef6a748f717b13f8ce64e87", size = 789739, upload-time = "2025-10-21T15:56:01.967Z" }, + { url = "https://files.pythonhosted.org/packages/f9/7b/e8ce8eef42a15f2c3461f8b3e6e924bbc86e9605cb534a393aadc8d3aff8/regex-2025.10.23-cp313-cp313-win32.whl", hash = "sha256:37be9296598a30c6a20236248cb8b2c07ffd54d095b75d3a2a2ee5babdc51df1", size = 266054, upload-time = "2025-10-21T15:56:05.291Z" }, + { url = "https://files.pythonhosted.org/packages/71/2d/55184ed6be6473187868d2f2e6a0708195fc58270e62a22cbf26028f2570/regex-2025.10.23-cp313-cp313-win_amd64.whl", hash = "sha256:ea7a3c283ce0f06fe789365841e9174ba05f8db16e2fd6ae00a02df9572c04c0", size = 276917, upload-time = "2025-10-21T15:56:07.303Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d4/927eced0e2bd45c45839e556f987f8c8f8683268dd3c00ad327deb3b0172/regex-2025.10.23-cp313-cp313-win_arm64.whl", hash = "sha256:d9a4953575f300a7bab71afa4cd4ac061c7697c89590a2902b536783eeb49a4f", size = 270105, upload-time = "2025-10-21T15:56:09.857Z" }, + { url = "https://files.pythonhosted.org/packages/3e/b3/95b310605285573341fc062d1d30b19a54f857530e86c805f942c4ff7941/regex-2025.10.23-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7d6606524fa77b3912c9ef52a42ef63c6cfbfc1077e9dc6296cd5da0da286044", size = 491850, upload-time = "2025-10-21T15:56:11.685Z" }, + { url = "https://files.pythonhosted.org/packages/a4/8f/207c2cec01e34e56db1eff606eef46644a60cf1739ecd474627db90ad90b/regex-2025.10.23-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c037aadf4d64bdc38af7db3dbd34877a057ce6524eefcb2914d6d41c56f968cc", size = 292537, upload-time = "2025-10-21T15:56:13.963Z" }, + { url = "https://files.pythonhosted.org/packages/98/3b/025240af4ada1dc0b5f10d73f3e5122d04ce7f8908ab8881e5d82b9d61b6/regex-2025.10.23-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:99018c331fb2529084a0c9b4c713dfa49fafb47c7712422e49467c13a636c656", size = 290904, upload-time = "2025-10-21T15:56:16.016Z" }, + { url = "https://files.pythonhosted.org/packages/81/8e/104ac14e2d3450c43db18ec03e1b96b445a94ae510b60138f00ce2cb7ca1/regex-2025.10.23-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fd8aba965604d70306eb90a35528f776e59112a7114a5162824d43b76fa27f58", size = 807311, upload-time = "2025-10-21T15:56:17.818Z" }, + { url = "https://files.pythonhosted.org/packages/19/63/78aef90141b7ce0be8a18e1782f764f6997ad09de0e05251f0d2503a914a/regex-2025.10.23-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:238e67264b4013e74136c49f883734f68656adf8257bfa13b515626b31b20f8e", size = 873241, upload-time = "2025-10-21T15:56:19.941Z" }, + { url = "https://files.pythonhosted.org/packages/b3/a8/80eb1201bb49ae4dba68a1b284b4211ed9daa8e74dc600018a10a90399fb/regex-2025.10.23-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b2eb48bd9848d66fd04826382f5e8491ae633de3233a3d64d58ceb4ecfa2113a", size = 914794, upload-time = "2025-10-21T15:56:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d5/1984b6ee93281f360a119a5ca1af6a8ca7d8417861671388bf750becc29b/regex-2025.10.23-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d36591ce06d047d0c0fe2fc5f14bfbd5b4525d08a7b6a279379085e13f0e3d0e", size = 812581, upload-time = "2025-10-21T15:56:24.319Z" }, + { url = "https://files.pythonhosted.org/packages/c4/39/11ebdc6d9927172a64ae237d16763145db6bd45ebb4055c17b88edab72a7/regex-2025.10.23-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b5d4ece8628d6e364302006366cea3ee887db397faebacc5dacf8ef19e064cf8", size = 795346, upload-time = "2025-10-21T15:56:26.232Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b4/89a591bcc08b5e436af43315284bd233ba77daf0cf20e098d7af12f006c1/regex-2025.10.23-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:39a7e8083959cb1c4ff74e483eecb5a65d3b3e1d821b256e54baf61782c906c6", size = 868214, upload-time = "2025-10-21T15:56:28.597Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ff/58ba98409c1dbc8316cdb20dafbc63ed267380a07780cafecaf5012dabc9/regex-2025.10.23-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:842d449a8fefe546f311656cf8c0d6729b08c09a185f1cad94c756210286d6a8", size = 854540, upload-time = "2025-10-21T15:56:30.875Z" }, + { url = "https://files.pythonhosted.org/packages/9a/f2/4a9e9338d67626e2071b643f828a482712ad15889d7268e11e9a63d6f7e9/regex-2025.10.23-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d614986dc68506be8f00474f4f6960e03e4ca9883f7df47744800e7d7c08a494", size = 799346, upload-time = "2025-10-21T15:56:32.725Z" }, + { url = "https://files.pythonhosted.org/packages/63/be/543d35c46bebf6f7bf2be538cca74d6585f25714700c36f37f01b92df551/regex-2025.10.23-cp313-cp313t-win32.whl", hash = "sha256:a5b7a26b51a9df473ec16a1934d117443a775ceb7b39b78670b2e21893c330c9", size = 268657, upload-time = "2025-10-21T15:56:34.577Z" }, + { url = "https://files.pythonhosted.org/packages/14/9f/4dd6b7b612037158bb2c9bcaa710e6fb3c40ad54af441b9c53b3a137a9f1/regex-2025.10.23-cp313-cp313t-win_amd64.whl", hash = "sha256:ce81c5544a5453f61cb6f548ed358cfb111e3b23f3cd42d250a4077a6be2a7b6", size = 280075, upload-time = "2025-10-21T15:56:36.767Z" }, + { url = "https://files.pythonhosted.org/packages/81/7a/5bd0672aa65d38c8da6747c17c8b441bdb53d816c569e3261013af8e83cf/regex-2025.10.23-cp313-cp313t-win_arm64.whl", hash = "sha256:e9bf7f6699f490e4e43c44757aa179dab24d1960999c84ab5c3d5377714ed473", size = 271219, upload-time = "2025-10-21T15:56:39.033Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload-time = "2019-10-28T16:00:19.144Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload-time = "2019-10-28T16:00:13.976Z" }, +] + +[[package]] +name = "rfc3987-syntax" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lark" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload-time = "2025-07-18T01:05:05.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload-time = "2025-07-18T01:05:03.843Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.28.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/dc/95f074d43452b3ef5d06276696ece4b3b5d696e7c9ad7173c54b1390cd70/rpds_py-0.28.0.tar.gz", hash = "sha256:abd4df20485a0983e2ca334a216249b6186d6e3c1627e106651943dbdb791aea", size = 27419, upload-time = "2025-10-22T22:24:29.327Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/34/058d0db5471c6be7bef82487ad5021ff8d1d1d27794be8730aad938649cf/rpds_py-0.28.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:03065002fd2e287725d95fbc69688e0c6daf6c6314ba38bdbaa3895418e09296", size = 362344, upload-time = "2025-10-22T22:21:39.713Z" }, + { url = "https://files.pythonhosted.org/packages/5d/67/9503f0ec8c055a0782880f300c50a2b8e5e72eb1f94dfc2053da527444dd/rpds_py-0.28.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28ea02215f262b6d078daec0b45344c89e161eab9526b0d898221d96fdda5f27", size = 348440, upload-time = "2025-10-22T22:21:41.056Z" }, + { url = "https://files.pythonhosted.org/packages/68/2e/94223ee9b32332a41d75b6f94b37b4ce3e93878a556fc5f152cbd856a81f/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25dbade8fbf30bcc551cb352376c0ad64b067e4fc56f90e22ba70c3ce205988c", size = 379068, upload-time = "2025-10-22T22:21:42.593Z" }, + { url = "https://files.pythonhosted.org/packages/b4/25/54fd48f9f680cfc44e6a7f39a5fadf1d4a4a1fd0848076af4a43e79f998c/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c03002f54cc855860bfdc3442928ffdca9081e73b5b382ed0b9e8efe6e5e205", size = 390518, upload-time = "2025-10-22T22:21:43.998Z" }, + { url = "https://files.pythonhosted.org/packages/1b/85/ac258c9c27f2ccb1bd5d0697e53a82ebcf8088e3186d5d2bf8498ee7ed44/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9699fa7990368b22032baf2b2dce1f634388e4ffc03dfefaaac79f4695edc95", size = 525319, upload-time = "2025-10-22T22:21:45.645Z" }, + { url = "https://files.pythonhosted.org/packages/40/cb/c6734774789566d46775f193964b76627cd5f42ecf246d257ce84d1912ed/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9b06fe1a75e05e0713f06ea0c89ecb6452210fd60e2f1b6ddc1067b990e08d9", size = 404896, upload-time = "2025-10-22T22:21:47.544Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/14e37ce83202c632c89b0691185dca9532288ff9d390eacae3d2ff771bae/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9f83e7b326a3f9ec3ef84cda98fb0a74c7159f33e692032233046e7fd15da2", size = 382862, upload-time = "2025-10-22T22:21:49.176Z" }, + { url = "https://files.pythonhosted.org/packages/6a/83/f3642483ca971a54d60caa4449f9d6d4dbb56a53e0072d0deff51b38af74/rpds_py-0.28.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:0d3259ea9ad8743a75a43eb7819324cdab393263c91be86e2d1901ee65c314e0", size = 398848, upload-time = "2025-10-22T22:21:51.024Z" }, + { url = "https://files.pythonhosted.org/packages/44/09/2d9c8b2f88e399b4cfe86efdf2935feaf0394e4f14ab30c6c5945d60af7d/rpds_py-0.28.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a7548b345f66f6695943b4ef6afe33ccd3f1b638bd9afd0f730dd255c249c9e", size = 412030, upload-time = "2025-10-22T22:21:52.665Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f5/e1cec473d4bde6df1fd3738be8e82d64dd0600868e76e92dfeaebbc2d18f/rpds_py-0.28.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c9a40040aa388b037eb39416710fbcce9443498d2eaab0b9b45ae988b53f5c67", size = 559700, upload-time = "2025-10-22T22:21:54.123Z" }, + { url = "https://files.pythonhosted.org/packages/8d/be/73bb241c1649edbf14e98e9e78899c2c5e52bbe47cb64811f44d2cc11808/rpds_py-0.28.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f60c7ea34e78c199acd0d3cda37a99be2c861dd2b8cf67399784f70c9f8e57d", size = 584581, upload-time = "2025-10-22T22:21:56.102Z" }, + { url = "https://files.pythonhosted.org/packages/9c/9c/ffc6e9218cd1eb5c2c7dbd276c87cd10e8c2232c456b554169eb363381df/rpds_py-0.28.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1571ae4292649100d743b26d5f9c63503bb1fedf538a8f29a98dce2d5ba6b4e6", size = 549981, upload-time = "2025-10-22T22:21:58.253Z" }, + { url = "https://files.pythonhosted.org/packages/5f/50/da8b6d33803a94df0149345ee33e5d91ed4d25fc6517de6a25587eae4133/rpds_py-0.28.0-cp311-cp311-win32.whl", hash = "sha256:5cfa9af45e7c1140af7321fa0bef25b386ee9faa8928c80dc3a5360971a29e8c", size = 214729, upload-time = "2025-10-22T22:21:59.625Z" }, + { url = "https://files.pythonhosted.org/packages/12/fd/b0f48c4c320ee24c8c20df8b44acffb7353991ddf688af01eef5f93d7018/rpds_py-0.28.0-cp311-cp311-win_amd64.whl", hash = "sha256:dd8d86b5d29d1b74100982424ba53e56033dc47720a6de9ba0259cf81d7cecaa", size = 223977, upload-time = "2025-10-22T22:22:01.092Z" }, + { url = "https://files.pythonhosted.org/packages/b4/21/c8e77a2ac66e2ec4e21f18a04b4e9a0417ecf8e61b5eaeaa9360a91713b4/rpds_py-0.28.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e27d3a5709cc2b3e013bf93679a849213c79ae0573f9b894b284b55e729e120", size = 217326, upload-time = "2025-10-22T22:22:02.944Z" }, + { url = "https://files.pythonhosted.org/packages/b8/5c/6c3936495003875fe7b14f90ea812841a08fca50ab26bd840e924097d9c8/rpds_py-0.28.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6b4f28583a4f247ff60cd7bdda83db8c3f5b05a7a82ff20dd4b078571747708f", size = 366439, upload-time = "2025-10-22T22:22:04.525Z" }, + { url = "https://files.pythonhosted.org/packages/56/f9/a0f1ca194c50aa29895b442771f036a25b6c41a35e4f35b1a0ea713bedae/rpds_py-0.28.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d678e91b610c29c4b3d52a2c148b641df2b4676ffe47c59f6388d58b99cdc424", size = 348170, upload-time = "2025-10-22T22:22:06.397Z" }, + { url = "https://files.pythonhosted.org/packages/18/ea/42d243d3a586beb72c77fa5def0487daf827210069a95f36328e869599ea/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e819e0e37a44a78e1383bf1970076e2ccc4dc8c2bbaa2f9bd1dc987e9afff628", size = 378838, upload-time = "2025-10-22T22:22:07.932Z" }, + { url = "https://files.pythonhosted.org/packages/e7/78/3de32e18a94791af8f33601402d9d4f39613136398658412a4e0b3047327/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5ee514e0f0523db5d3fb171f397c54875dbbd69760a414dccf9d4d7ad628b5bd", size = 393299, upload-time = "2025-10-22T22:22:09.435Z" }, + { url = "https://files.pythonhosted.org/packages/13/7e/4bdb435afb18acea2eb8a25ad56b956f28de7c59f8a1d32827effa0d4514/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3fa06d27fdcee47f07a39e02862da0100cb4982508f5ead53ec533cd5fe55e", size = 518000, upload-time = "2025-10-22T22:22:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/31/d0/5f52a656875cdc60498ab035a7a0ac8f399890cc1ee73ebd567bac4e39ae/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46959ef2e64f9e4a41fc89aa20dbca2b85531f9a72c21099a3360f35d10b0d5a", size = 408746, upload-time = "2025-10-22T22:22:13.143Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/49ce51767b879cde77e7ad9fae164ea15dce3616fe591d9ea1df51152706/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8455933b4bcd6e83fde3fefc987a023389c4b13f9a58c8d23e4b3f6d13f78c84", size = 386379, upload-time = "2025-10-22T22:22:14.602Z" }, + { url = "https://files.pythonhosted.org/packages/6a/99/e4e1e1ee93a98f72fc450e36c0e4d99c35370220e815288e3ecd2ec36a2a/rpds_py-0.28.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:ad50614a02c8c2962feebe6012b52f9802deec4263946cddea37aaf28dd25a66", size = 401280, upload-time = "2025-10-22T22:22:16.063Z" }, + { url = "https://files.pythonhosted.org/packages/61/35/e0c6a57488392a8b319d2200d03dad2b29c0db9996f5662c3b02d0b86c02/rpds_py-0.28.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e5deca01b271492553fdb6c7fd974659dce736a15bae5dad7ab8b93555bceb28", size = 412365, upload-time = "2025-10-22T22:22:17.504Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6a/841337980ea253ec797eb084665436007a1aad0faac1ba097fb906c5f69c/rpds_py-0.28.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:735f8495a13159ce6a0d533f01e8674cec0c57038c920495f87dcb20b3ddb48a", size = 559573, upload-time = "2025-10-22T22:22:19.108Z" }, + { url = "https://files.pythonhosted.org/packages/e7/5e/64826ec58afd4c489731f8b00729c5f6afdb86f1df1df60bfede55d650bb/rpds_py-0.28.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:961ca621ff10d198bbe6ba4957decca61aa2a0c56695384c1d6b79bf61436df5", size = 583973, upload-time = "2025-10-22T22:22:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ee/44d024b4843f8386a4eeaa4c171b3d31d55f7177c415545fd1a24c249b5d/rpds_py-0.28.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2374e16cc9131022e7d9a8f8d65d261d9ba55048c78f3b6e017971a4f5e6353c", size = 553800, upload-time = "2025-10-22T22:22:22.25Z" }, + { url = "https://files.pythonhosted.org/packages/7d/89/33e675dccff11a06d4d85dbb4d1865f878d5020cbb69b2c1e7b2d3f82562/rpds_py-0.28.0-cp312-cp312-win32.whl", hash = "sha256:d15431e334fba488b081d47f30f091e5d03c18527c325386091f31718952fe08", size = 216954, upload-time = "2025-10-22T22:22:24.105Z" }, + { url = "https://files.pythonhosted.org/packages/af/36/45f6ebb3210887e8ee6dbf1bc710ae8400bb417ce165aaf3024b8360d999/rpds_py-0.28.0-cp312-cp312-win_amd64.whl", hash = "sha256:a410542d61fc54710f750d3764380b53bf09e8c4edbf2f9141a82aa774a04f7c", size = 227844, upload-time = "2025-10-22T22:22:25.551Z" }, + { url = "https://files.pythonhosted.org/packages/57/91/f3fb250d7e73de71080f9a221d19bd6a1c1eb0d12a1ea26513f6c1052ad6/rpds_py-0.28.0-cp312-cp312-win_arm64.whl", hash = "sha256:1f0cfd1c69e2d14f8c892b893997fa9a60d890a0c8a603e88dca4955f26d1edd", size = 217624, upload-time = "2025-10-22T22:22:26.914Z" }, + { url = "https://files.pythonhosted.org/packages/d3/03/ce566d92611dfac0085c2f4b048cd53ed7c274a5c05974b882a908d540a2/rpds_py-0.28.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e9e184408a0297086f880556b6168fa927d677716f83d3472ea333b42171ee3b", size = 366235, upload-time = "2025-10-22T22:22:28.397Z" }, + { url = "https://files.pythonhosted.org/packages/00/34/1c61da1b25592b86fd285bd7bd8422f4c9d748a7373b46126f9ae792a004/rpds_py-0.28.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:edd267266a9b0448f33dc465a97cfc5d467594b600fe28e7fa2f36450e03053a", size = 348241, upload-time = "2025-10-22T22:22:30.171Z" }, + { url = "https://files.pythonhosted.org/packages/fc/00/ed1e28616848c61c493a067779633ebf4b569eccaacf9ccbdc0e7cba2b9d/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85beb8b3f45e4e32f6802fb6cd6b17f615ef6c6a52f265371fb916fae02814aa", size = 378079, upload-time = "2025-10-22T22:22:31.644Z" }, + { url = "https://files.pythonhosted.org/packages/11/b2/ccb30333a16a470091b6e50289adb4d3ec656fd9951ba8c5e3aaa0746a67/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d2412be8d00a1b895f8ad827cc2116455196e20ed994bb704bf138fe91a42724", size = 393151, upload-time = "2025-10-22T22:22:33.453Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d0/73e2217c3ee486d555cb84920597480627d8c0240ff3062005c6cc47773e/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf128350d384b777da0e68796afdcebc2e9f63f0e9f242217754e647f6d32491", size = 517520, upload-time = "2025-10-22T22:22:34.949Z" }, + { url = "https://files.pythonhosted.org/packages/c4/91/23efe81c700427d0841a4ae7ea23e305654381831e6029499fe80be8a071/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a2036d09b363aa36695d1cc1a97b36865597f4478470b0697b5ee9403f4fe399", size = 408699, upload-time = "2025-10-22T22:22:36.584Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ee/a324d3198da151820a326c1f988caaa4f37fc27955148a76fff7a2d787a9/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8e1e9be4fa6305a16be628959188e4fd5cd6f1b0e724d63c6d8b2a8adf74ea6", size = 385720, upload-time = "2025-10-22T22:22:38.014Z" }, + { url = "https://files.pythonhosted.org/packages/19/ad/e68120dc05af8b7cab4a789fccd8cdcf0fe7e6581461038cc5c164cd97d2/rpds_py-0.28.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0a403460c9dd91a7f23fc3188de6d8977f1d9603a351d5db6cf20aaea95b538d", size = 401096, upload-time = "2025-10-22T22:22:39.869Z" }, + { url = "https://files.pythonhosted.org/packages/99/90/c1e070620042459d60df6356b666bb1f62198a89d68881816a7ed121595a/rpds_py-0.28.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d7366b6553cdc805abcc512b849a519167db8f5e5c3472010cd1228b224265cb", size = 411465, upload-time = "2025-10-22T22:22:41.395Z" }, + { url = "https://files.pythonhosted.org/packages/68/61/7c195b30d57f1b8d5970f600efee72a4fad79ec829057972e13a0370fd24/rpds_py-0.28.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b43c6a3726efd50f18d8120ec0551241c38785b68952d240c45ea553912ac41", size = 558832, upload-time = "2025-10-22T22:22:42.871Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3d/06f3a718864773f69941d4deccdf18e5e47dd298b4628062f004c10f3b34/rpds_py-0.28.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0cb7203c7bc69d7c1585ebb33a2e6074492d2fc21ad28a7b9d40457ac2a51ab7", size = 583230, upload-time = "2025-10-22T22:22:44.877Z" }, + { url = "https://files.pythonhosted.org/packages/66/df/62fc783781a121e77fee9a21ead0a926f1b652280a33f5956a5e7833ed30/rpds_py-0.28.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a52a5169c664dfb495882adc75c304ae1d50df552fbd68e100fdc719dee4ff9", size = 553268, upload-time = "2025-10-22T22:22:46.441Z" }, + { url = "https://files.pythonhosted.org/packages/84/85/d34366e335140a4837902d3dea89b51f087bd6a63c993ebdff59e93ee61d/rpds_py-0.28.0-cp313-cp313-win32.whl", hash = "sha256:2e42456917b6687215b3e606ab46aa6bca040c77af7df9a08a6dcfe8a4d10ca5", size = 217100, upload-time = "2025-10-22T22:22:48.342Z" }, + { url = "https://files.pythonhosted.org/packages/3c/1c/f25a3f3752ad7601476e3eff395fe075e0f7813fbb9862bd67c82440e880/rpds_py-0.28.0-cp313-cp313-win_amd64.whl", hash = "sha256:e0a0311caedc8069d68fc2bf4c9019b58a2d5ce3cd7cb656c845f1615b577e1e", size = 227759, upload-time = "2025-10-22T22:22:50.219Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d6/5f39b42b99615b5bc2f36ab90423ea404830bdfee1c706820943e9a645eb/rpds_py-0.28.0-cp313-cp313-win_arm64.whl", hash = "sha256:04c1b207ab8b581108801528d59ad80aa83bb170b35b0ddffb29c20e411acdc1", size = 217326, upload-time = "2025-10-22T22:22:51.647Z" }, + { url = "https://files.pythonhosted.org/packages/5c/8b/0c69b72d1cee20a63db534be0df271effe715ef6c744fdf1ff23bb2b0b1c/rpds_py-0.28.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f296ea3054e11fc58ad42e850e8b75c62d9a93a9f981ad04b2e5ae7d2186ff9c", size = 355736, upload-time = "2025-10-22T22:22:53.211Z" }, + { url = "https://files.pythonhosted.org/packages/f7/6d/0c2ee773cfb55c31a8514d2cece856dd299170a49babd50dcffb15ddc749/rpds_py-0.28.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5a7306c19b19005ad98468fcefeb7100b19c79fc23a5f24a12e06d91181193fa", size = 342677, upload-time = "2025-10-22T22:22:54.723Z" }, + { url = "https://files.pythonhosted.org/packages/e2/1c/22513ab25a27ea205144414724743e305e8153e6abe81833b5e678650f5a/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5d9b86aa501fed9862a443c5c3116f6ead8bc9296185f369277c42542bd646b", size = 371847, upload-time = "2025-10-22T22:22:56.295Z" }, + { url = "https://files.pythonhosted.org/packages/60/07/68e6ccdb4b05115ffe61d31afc94adef1833d3a72f76c9632d4d90d67954/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e5bbc701eff140ba0e872691d573b3d5d30059ea26e5785acba9132d10c8c31d", size = 381800, upload-time = "2025-10-22T22:22:57.808Z" }, + { url = "https://files.pythonhosted.org/packages/73/bf/6d6d15df80781d7f9f368e7c1a00caf764436518c4877fb28b029c4624af/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a5690671cd672a45aa8616d7374fdf334a1b9c04a0cac3c854b1136e92374fe", size = 518827, upload-time = "2025-10-22T22:22:59.826Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d3/2decbb2976cc452cbf12a2b0aaac5f1b9dc5dd9d1f7e2509a3ee00421249/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9f1d92ecea4fa12f978a367c32a5375a1982834649cdb96539dcdc12e609ab1a", size = 399471, upload-time = "2025-10-22T22:23:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/b1/2c/f30892f9e54bd02e5faca3f6a26d6933c51055e67d54818af90abed9748e/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d252db6b1a78d0a3928b6190156042d54c93660ce4d98290d7b16b5296fb7cc", size = 377578, upload-time = "2025-10-22T22:23:03.52Z" }, + { url = "https://files.pythonhosted.org/packages/f0/5d/3bce97e5534157318f29ac06bf2d279dae2674ec12f7cb9c12739cee64d8/rpds_py-0.28.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d61b355c3275acb825f8777d6c4505f42b5007e357af500939d4a35b19177259", size = 390482, upload-time = "2025-10-22T22:23:05.391Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f0/886bd515ed457b5bd93b166175edb80a0b21a210c10e993392127f1e3931/rpds_py-0.28.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:acbe5e8b1026c0c580d0321c8aae4b0a1e1676861d48d6e8c6586625055b606a", size = 402447, upload-time = "2025-10-22T22:23:06.93Z" }, + { url = "https://files.pythonhosted.org/packages/42/b5/71e8777ac55e6af1f4f1c05b47542a1eaa6c33c1cf0d300dca6a1c6e159a/rpds_py-0.28.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8aa23b6f0fc59b85b4c7d89ba2965af274346f738e8d9fc2455763602e62fd5f", size = 552385, upload-time = "2025-10-22T22:23:08.557Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cb/6ca2d70cbda5a8e36605e7788c4aa3bea7c17d71d213465a5a675079b98d/rpds_py-0.28.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7b14b0c680286958817c22d76fcbca4800ddacef6f678f3a7c79a1fe7067fe37", size = 575642, upload-time = "2025-10-22T22:23:10.348Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d4/407ad9960ca7856d7b25c96dcbe019270b5ffdd83a561787bc682c797086/rpds_py-0.28.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bcf1d210dfee61a6c86551d67ee1031899c0fdbae88b2d44a569995d43797712", size = 544507, upload-time = "2025-10-22T22:23:12.434Z" }, + { url = "https://files.pythonhosted.org/packages/51/31/2f46fe0efcac23fbf5797c6b6b7e1c76f7d60773e525cb65fcbc582ee0f2/rpds_py-0.28.0-cp313-cp313t-win32.whl", hash = "sha256:3aa4dc0fdab4a7029ac63959a3ccf4ed605fee048ba67ce89ca3168da34a1342", size = 205376, upload-time = "2025-10-22T22:23:13.979Z" }, + { url = "https://files.pythonhosted.org/packages/92/e4/15947bda33cbedfc134490a41841ab8870a72a867a03d4969d886f6594a2/rpds_py-0.28.0-cp313-cp313t-win_amd64.whl", hash = "sha256:7b7d9d83c942855e4fdcfa75d4f96f6b9e272d42fffcb72cd4bb2577db2e2907", size = 215907, upload-time = "2025-10-22T22:23:15.5Z" }, + { url = "https://files.pythonhosted.org/packages/ae/bc/b43f2ea505f28119bd551ae75f70be0c803d2dbcd37c1b3734909e40620b/rpds_py-0.28.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f5e7101145427087e493b9c9b959da68d357c28c562792300dd21a095118ed16", size = 363913, upload-time = "2025-10-22T22:24:07.129Z" }, + { url = "https://files.pythonhosted.org/packages/28/f2/db318195d324c89a2c57dc5195058cbadd71b20d220685c5bd1da79ee7fe/rpds_py-0.28.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:31eb671150b9c62409a888850aaa8e6533635704fe2b78335f9aaf7ff81eec4d", size = 350452, upload-time = "2025-10-22T22:24:08.754Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f2/1391c819b8573a4898cedd6b6c5ec5bc370ce59e5d6bdcebe3c9c1db4588/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48b55c1f64482f7d8bd39942f376bfdf2f6aec637ee8c805b5041e14eeb771db", size = 380957, upload-time = "2025-10-22T22:24:10.826Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5c/e5de68ee7eb7248fce93269833d1b329a196d736aefb1a7481d1e99d1222/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24743a7b372e9a76171f6b69c01aedf927e8ac3e16c474d9fe20d552a8cb45c7", size = 391919, upload-time = "2025-10-22T22:24:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/fb/4f/2376336112cbfeb122fd435d608ad8d5041b3aed176f85a3cb32c262eb80/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:389c29045ee8bbb1627ea190b4976a310a295559eaf9f1464a1a6f2bf84dde78", size = 528541, upload-time = "2025-10-22T22:24:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/68/53/5ae232e795853dd20da7225c5dd13a09c0a905b1a655e92bdf8d78a99fd9/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23690b5827e643150cf7b49569679ec13fe9a610a15949ed48b85eb7f98f34ec", size = 405629, upload-time = "2025-10-22T22:24:16.001Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2d/351a3b852b683ca9b6b8b38ed9efb2347596973849ba6c3a0e99877c10aa/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f0c9266c26580e7243ad0d72fc3e01d6b33866cfab5084a6da7576bcf1c4f72", size = 384123, upload-time = "2025-10-22T22:24:17.585Z" }, + { url = "https://files.pythonhosted.org/packages/e0/15/870804daa00202728cc91cb8e2385fa9f1f4eb49857c49cfce89e304eae6/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:4c6c4db5d73d179746951486df97fd25e92396be07fc29ee8ff9a8f5afbdfb27", size = 400923, upload-time = "2025-10-22T22:24:19.512Z" }, + { url = "https://files.pythonhosted.org/packages/53/25/3706b83c125fa2a0bccceac951de3f76631f6bd0ee4d02a0ed780712ef1b/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3b695a8fa799dd2cfdb4804b37096c5f6dba1ac7f48a7fbf6d0485bcd060316", size = 413767, upload-time = "2025-10-22T22:24:21.316Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f9/ce43dbe62767432273ed2584cef71fef8411bddfb64125d4c19128015018/rpds_py-0.28.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:6aa1bfce3f83baf00d9c5fcdbba93a3ab79958b4c7d7d1f55e7fe68c20e63912", size = 561530, upload-time = "2025-10-22T22:24:22.958Z" }, + { url = "https://files.pythonhosted.org/packages/46/c9/ffe77999ed8f81e30713dd38fd9ecaa161f28ec48bb80fa1cd9118399c27/rpds_py-0.28.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:7b0f9dceb221792b3ee6acb5438eb1f02b0cb2c247796a72b016dcc92c6de829", size = 585453, upload-time = "2025-10-22T22:24:24.779Z" }, + { url = "https://files.pythonhosted.org/packages/ed/d2/4a73b18821fd4669762c855fd1f4e80ceb66fb72d71162d14da58444a763/rpds_py-0.28.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5d0145edba8abd3db0ab22b5300c99dc152f5c9021fab861be0f0544dc3cbc5f", size = 552199, upload-time = "2025-10-22T22:24:26.54Z" }, +] + +[[package]] +name = "ruff" +version = "0.14.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/34/8218a19b2055b80601e8fd201ec723c74c7fe1ca06d525a43ed07b6d8e85/ruff-0.14.2.tar.gz", hash = "sha256:98da787668f239313d9c902ca7c523fe11b8ec3f39345553a51b25abc4629c96", size = 5539663, upload-time = "2025-10-23T19:37:00.956Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/dd/23eb2db5ad9acae7c845700493b72d3ae214dce0b226f27df89216110f2b/ruff-0.14.2-py3-none-linux_armv6l.whl", hash = "sha256:7cbe4e593505bdec5884c2d0a4d791a90301bc23e49a6b1eb642dd85ef9c64f1", size = 12533390, upload-time = "2025-10-23T19:36:18.044Z" }, + { url = "https://files.pythonhosted.org/packages/5a/8c/5f9acff43ddcf3f85130d0146d0477e28ccecc495f9f684f8f7119b74c0d/ruff-0.14.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:8d54b561729cee92f8d89c316ad7a3f9705533f5903b042399b6ae0ddfc62e11", size = 12887187, upload-time = "2025-10-23T19:36:22.664Z" }, + { url = "https://files.pythonhosted.org/packages/99/fa/047646491479074029665022e9f3dc6f0515797f40a4b6014ea8474c539d/ruff-0.14.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5c8753dfa44ebb2cde10ce5b4d2ef55a41fb9d9b16732a2c5df64620dbda44a3", size = 11925177, upload-time = "2025-10-23T19:36:24.778Z" }, + { url = "https://files.pythonhosted.org/packages/15/8b/c44cf7fe6e59ab24a9d939493a11030b503bdc2a16622cede8b7b1df0114/ruff-0.14.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d0bbeffb8d9f4fccf7b5198d566d0bad99a9cb622f1fc3467af96cb8773c9e3", size = 12358285, upload-time = "2025-10-23T19:36:26.979Z" }, + { url = "https://files.pythonhosted.org/packages/45/01/47701b26254267ef40369aea3acb62a7b23e921c27372d127e0f3af48092/ruff-0.14.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7047f0c5a713a401e43a88d36843d9c83a19c584e63d664474675620aaa634a8", size = 12303832, upload-time = "2025-10-23T19:36:29.192Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5c/ae7244ca4fbdf2bee9d6405dcd5bc6ae51ee1df66eb7a9884b77b8af856d/ruff-0.14.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bf8d2f9aa1602599217d82e8e0af7fd33e5878c4d98f37906b7c93f46f9a839", size = 13036995, upload-time = "2025-10-23T19:36:31.861Z" }, + { url = "https://files.pythonhosted.org/packages/27/4c/0860a79ce6fd4c709ac01173f76f929d53f59748d0dcdd662519835dae43/ruff-0.14.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1c505b389e19c57a317cf4b42db824e2fca96ffb3d86766c1c9f8b96d32048a7", size = 14512649, upload-time = "2025-10-23T19:36:33.915Z" }, + { url = "https://files.pythonhosted.org/packages/7f/7f/d365de998069720a3abfc250ddd876fc4b81a403a766c74ff9bde15b5378/ruff-0.14.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a307fc45ebd887b3f26b36d9326bb70bf69b01561950cdcc6c0bdf7bb8e0f7cc", size = 14088182, upload-time = "2025-10-23T19:36:36.983Z" }, + { url = "https://files.pythonhosted.org/packages/6c/ea/d8e3e6b209162000a7be1faa41b0a0c16a133010311edc3329753cc6596a/ruff-0.14.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:61ae91a32c853172f832c2f40bd05fd69f491db7289fb85a9b941ebdd549781a", size = 13599516, upload-time = "2025-10-23T19:36:39.208Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ea/c7810322086db68989fb20a8d5221dd3b79e49e396b01badca07b433ab45/ruff-0.14.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1967e40286f63ee23c615e8e7e98098dedc7301568bd88991f6e544d8ae096", size = 13272690, upload-time = "2025-10-23T19:36:41.453Z" }, + { url = "https://files.pythonhosted.org/packages/a9/39/10b05acf8c45786ef501d454e00937e1b97964f846bf28883d1f9619928a/ruff-0.14.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:2877f02119cdebf52a632d743a2e302dea422bfae152ebe2f193d3285a3a65df", size = 13496497, upload-time = "2025-10-23T19:36:43.61Z" }, + { url = "https://files.pythonhosted.org/packages/59/a1/1f25f8301e13751c30895092485fada29076e5e14264bdacc37202e85d24/ruff-0.14.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e681c5bc777de5af898decdcb6ba3321d0d466f4cb43c3e7cc2c3b4e7b843a05", size = 12266116, upload-time = "2025-10-23T19:36:45.625Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fa/0029bfc9ce16ae78164e6923ef392e5f173b793b26cc39aa1d8b366cf9dc/ruff-0.14.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e21be42d72e224736f0c992cdb9959a2fa53c7e943b97ef5d081e13170e3ffc5", size = 12281345, upload-time = "2025-10-23T19:36:47.618Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ab/ece7baa3c0f29b7683be868c024f0838770c16607bea6852e46b202f1ff6/ruff-0.14.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:b8264016f6f209fac16262882dbebf3f8be1629777cf0f37e7aff071b3e9b92e", size = 12629296, upload-time = "2025-10-23T19:36:49.789Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7f/638f54b43f3d4e48c6a68062794e5b367ddac778051806b9e235dfb7aa81/ruff-0.14.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5ca36b4cb4db3067a3b24444463ceea5565ea78b95fe9a07ca7cb7fd16948770", size = 13371610, upload-time = "2025-10-23T19:36:51.882Z" }, + { url = "https://files.pythonhosted.org/packages/8d/35/3654a973ebe5b32e1fd4a08ed2d46755af7267da7ac710d97420d7b8657d/ruff-0.14.2-py3-none-win32.whl", hash = "sha256:41775927d287685e08f48d8eb3f765625ab0b7042cc9377e20e64f4eb0056ee9", size = 12415318, upload-time = "2025-10-23T19:36:53.961Z" }, + { url = "https://files.pythonhosted.org/packages/71/30/3758bcf9e0b6a4193a6f51abf84254aba00887dfa8c20aba18aa366c5f57/ruff-0.14.2-py3-none-win_amd64.whl", hash = "sha256:0df3424aa5c3c08b34ed8ce099df1021e3adaca6e90229273496b839e5a7e1af", size = 13565279, upload-time = "2025-10-23T19:36:56.578Z" }, + { url = "https://files.pythonhosted.org/packages/2e/5d/aa883766f8ef9ffbe6aa24f7192fb71632f31a30e77eb39aa2b0dc4290ac/ruff-0.14.2-py3-none-win_arm64.whl", hash = "sha256:ea9d635e83ba21569fbacda7e78afbfeb94911c9434aff06192d9bc23fd5495a", size = 12554956, upload-time = "2025-10-23T19:36:58.714Z" }, +] + +[[package]] +name = "send2trash" +version = "1.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/3a/aec9b02217bb79b87bbc1a21bc6abc51e3d5dcf65c30487ac96c0908c722/Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf", size = 17394, upload-time = "2024-04-07T00:01:09.267Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/b0/4562db6223154aa4e22f939003cb92514c79f3d4dccca3444253fd17f902/Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9", size = 18072, upload-time = "2024-04-07T00:01:07.438Z" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6d/e6/21ccce3262dd4889aa3332e5a119a3491a95e8f60939870a3a035aabac0d/soupsieve-2.8.tar.gz", hash = "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f", size = 103472, upload-time = "2025-08-27T15:39:51.78Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/a0/bb38d3b76b8cae341dad93a2dd83ab7462e6dbcdd84d43f54ee60a8dc167/soupsieve-2.8-py3-none-any.whl", hash = "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c", size = 36679, upload-time = "2025-08-27T15:39:50.179Z" }, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.44" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f0/f2/840d7b9496825333f532d2e3976b8eadbf52034178aac53630d09fe6e1ef/sqlalchemy-2.0.44.tar.gz", hash = "sha256:0ae7454e1ab1d780aee69fd2aae7d6b8670a581d8847f2d1e0f7ddfbf47e5a22", size = 9819830, upload-time = "2025-10-10T14:39:12.935Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/81/15d7c161c9ddf0900b076b55345872ed04ff1ed6a0666e5e94ab44b0163c/sqlalchemy-2.0.44-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fe3917059c7ab2ee3f35e77757062b1bea10a0b6ca633c58391e3f3c6c488dd", size = 2140517, upload-time = "2025-10-10T15:36:15.64Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d5/4abd13b245c7d91bdf131d4916fd9e96a584dac74215f8b5bc945206a974/sqlalchemy-2.0.44-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:de4387a354ff230bc979b46b2207af841dc8bf29847b6c7dbe60af186d97aefa", size = 2130738, upload-time = "2025-10-10T15:36:16.91Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3c/8418969879c26522019c1025171cefbb2a8586b6789ea13254ac602986c0/sqlalchemy-2.0.44-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3678a0fb72c8a6a29422b2732fe423db3ce119c34421b5f9955873eb9b62c1e", size = 3304145, upload-time = "2025-10-10T15:34:19.569Z" }, + { url = "https://files.pythonhosted.org/packages/94/2d/fdb9246d9d32518bda5d90f4b65030b9bf403a935cfe4c36a474846517cb/sqlalchemy-2.0.44-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cf6872a23601672d61a68f390e44703442639a12ee9dd5a88bbce52a695e46e", size = 3304511, upload-time = "2025-10-10T15:47:05.088Z" }, + { url = "https://files.pythonhosted.org/packages/7d/fb/40f2ad1da97d5c83f6c1269664678293d3fe28e90ad17a1093b735420549/sqlalchemy-2.0.44-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:329aa42d1be9929603f406186630135be1e7a42569540577ba2c69952b7cf399", size = 3235161, upload-time = "2025-10-10T15:34:21.193Z" }, + { url = "https://files.pythonhosted.org/packages/95/cb/7cf4078b46752dca917d18cf31910d4eff6076e5b513c2d66100c4293d83/sqlalchemy-2.0.44-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:70e03833faca7166e6a9927fbee7c27e6ecde436774cd0b24bbcc96353bce06b", size = 3261426, upload-time = "2025-10-10T15:47:07.196Z" }, + { url = "https://files.pythonhosted.org/packages/f8/3b/55c09b285cb2d55bdfa711e778bdffdd0dc3ffa052b0af41f1c5d6e582fa/sqlalchemy-2.0.44-cp311-cp311-win32.whl", hash = "sha256:253e2f29843fb303eca6b2fc645aca91fa7aa0aa70b38b6950da92d44ff267f3", size = 2105392, upload-time = "2025-10-10T15:38:20.051Z" }, + { url = "https://files.pythonhosted.org/packages/c7/23/907193c2f4d680aedbfbdf7bf24c13925e3c7c292e813326c1b84a0b878e/sqlalchemy-2.0.44-cp311-cp311-win_amd64.whl", hash = "sha256:7a8694107eb4308a13b425ca8c0e67112f8134c846b6e1f722698708741215d5", size = 2130293, upload-time = "2025-10-10T15:38:21.601Z" }, + { url = "https://files.pythonhosted.org/packages/62/c4/59c7c9b068e6813c898b771204aad36683c96318ed12d4233e1b18762164/sqlalchemy-2.0.44-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72fea91746b5890f9e5e0997f16cbf3d53550580d76355ba2d998311b17b2250", size = 2139675, upload-time = "2025-10-10T16:03:31.064Z" }, + { url = "https://files.pythonhosted.org/packages/d6/ae/eeb0920537a6f9c5a3708e4a5fc55af25900216bdb4847ec29cfddf3bf3a/sqlalchemy-2.0.44-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:585c0c852a891450edbb1eaca8648408a3cc125f18cf433941fa6babcc359e29", size = 2127726, upload-time = "2025-10-10T16:03:35.934Z" }, + { url = "https://files.pythonhosted.org/packages/d8/d5/2ebbabe0379418eda8041c06b0b551f213576bfe4c2f09d77c06c07c8cc5/sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b94843a102efa9ac68a7a30cd46df3ff1ed9c658100d30a725d10d9c60a2f44", size = 3327603, upload-time = "2025-10-10T15:35:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/45/e5/5aa65852dadc24b7d8ae75b7efb8d19303ed6ac93482e60c44a585930ea5/sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:119dc41e7a7defcefc57189cfa0e61b1bf9c228211aba432b53fb71ef367fda1", size = 3337842, upload-time = "2025-10-10T15:43:45.431Z" }, + { url = "https://files.pythonhosted.org/packages/41/92/648f1afd3f20b71e880ca797a960f638d39d243e233a7082c93093c22378/sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0765e318ee9179b3718c4fd7ba35c434f4dd20332fbc6857a5e8df17719c24d7", size = 3264558, upload-time = "2025-10-10T15:35:29.93Z" }, + { url = "https://files.pythonhosted.org/packages/40/cf/e27d7ee61a10f74b17740918e23cbc5bc62011b48282170dc4c66da8ec0f/sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2e7b5b079055e02d06a4308d0481658e4f06bc7ef211567edc8f7d5dce52018d", size = 3301570, upload-time = "2025-10-10T15:43:48.407Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3d/3116a9a7b63e780fb402799b6da227435be878b6846b192f076d2f838654/sqlalchemy-2.0.44-cp312-cp312-win32.whl", hash = "sha256:846541e58b9a81cce7dee8329f352c318de25aa2f2bbe1e31587eb1f057448b4", size = 2103447, upload-time = "2025-10-10T15:03:21.678Z" }, + { url = "https://files.pythonhosted.org/packages/25/83/24690e9dfc241e6ab062df82cc0df7f4231c79ba98b273fa496fb3dd78ed/sqlalchemy-2.0.44-cp312-cp312-win_amd64.whl", hash = "sha256:7cbcb47fd66ab294703e1644f78971f6f2f1126424d2b300678f419aa73c7b6e", size = 2130912, upload-time = "2025-10-10T15:03:24.656Z" }, + { url = "https://files.pythonhosted.org/packages/45/d3/c67077a2249fdb455246e6853166360054c331db4613cda3e31ab1cadbef/sqlalchemy-2.0.44-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ff486e183d151e51b1d694c7aa1695747599bb00b9f5f604092b54b74c64a8e1", size = 2135479, upload-time = "2025-10-10T16:03:37.671Z" }, + { url = "https://files.pythonhosted.org/packages/2b/91/eabd0688330d6fd114f5f12c4f89b0d02929f525e6bf7ff80aa17ca802af/sqlalchemy-2.0.44-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1af8392eb27b372ddb783b317dea0f650241cea5bd29199b22235299ca2e45", size = 2123212, upload-time = "2025-10-10T16:03:41.755Z" }, + { url = "https://files.pythonhosted.org/packages/b0/bb/43e246cfe0e81c018076a16036d9b548c4cc649de241fa27d8d9ca6f85ab/sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b61188657e3a2b9ac4e8f04d6cf8e51046e28175f79464c67f2fd35bceb0976", size = 3255353, upload-time = "2025-10-10T15:35:31.221Z" }, + { url = "https://files.pythonhosted.org/packages/b9/96/c6105ed9a880abe346b64d3b6ddef269ddfcab04f7f3d90a0bf3c5a88e82/sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b87e7b91a5d5973dda5f00cd61ef72ad75a1db73a386b62877d4875a8840959c", size = 3260222, upload-time = "2025-10-10T15:43:50.124Z" }, + { url = "https://files.pythonhosted.org/packages/44/16/1857e35a47155b5ad927272fee81ae49d398959cb749edca6eaa399b582f/sqlalchemy-2.0.44-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:15f3326f7f0b2bfe406ee562e17f43f36e16167af99c4c0df61db668de20002d", size = 3189614, upload-time = "2025-10-10T15:35:32.578Z" }, + { url = "https://files.pythonhosted.org/packages/88/ee/4afb39a8ee4fc786e2d716c20ab87b5b1fb33d4ac4129a1aaa574ae8a585/sqlalchemy-2.0.44-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e77faf6ff919aa8cd63f1c4e561cac1d9a454a191bb864d5dd5e545935e5a40", size = 3226248, upload-time = "2025-10-10T15:43:51.862Z" }, + { url = "https://files.pythonhosted.org/packages/32/d5/0e66097fc64fa266f29a7963296b40a80d6a997b7ac13806183700676f86/sqlalchemy-2.0.44-cp313-cp313-win32.whl", hash = "sha256:ee51625c2d51f8baadf2829fae817ad0b66b140573939dd69284d2ba3553ae73", size = 2101275, upload-time = "2025-10-10T15:03:26.096Z" }, + { url = "https://files.pythonhosted.org/packages/03/51/665617fe4f8c6450f42a6d8d69243f9420f5677395572c2fe9d21b493b7b/sqlalchemy-2.0.44-cp313-cp313-win_amd64.whl", hash = "sha256:c1c80faaee1a6c3428cecf40d16a2365bcf56c424c92c2b6f0f9ad204b899e9e", size = 2127901, upload-time = "2025-10-10T15:03:27.548Z" }, + { url = "https://files.pythonhosted.org/packages/9c/5e/6a29fa884d9fb7ddadf6b69490a9d45fded3b38541713010dad16b77d015/sqlalchemy-2.0.44-py3-none-any.whl", hash = "sha256:19de7ca1246fbef9f9d1bff8f1ab25641569df226364a0e40457dc5457c54b05", size = 1928718, upload-time = "2025-10-10T15:29:45.32Z" }, +] + +[[package]] +name = "sse-starlette" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, + { name = "uvicorn" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/fc/56ab9f116b2133521f532fce8d03194cf04dcac25f583cf3d839be4c0496/sse_starlette-2.1.3.tar.gz", hash = "sha256:9cd27eb35319e1414e3d2558ee7414487f9529ce3b3cf9b21434fd110e017169", size = 19678, upload-time = "2024-08-01T08:52:50.248Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/aa/36b271bc4fa1d2796311ee7c7283a3a1c348bad426d37293609ca4300eef/sse_starlette-2.1.3-py3-none-any.whl", hash = "sha256:8ec846438b4665b9e8c560fcdea6bc8081a3abf7942faa95e5a744999d219772", size = 9383, upload-time = "2024-08-01T08:52:48.659Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "starlette" +version = "0.49.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1b/3f/507c21db33b66fb027a332f2cb3abbbe924cc3a79ced12f01ed8645955c9/starlette-0.49.1.tar.gz", hash = "sha256:481a43b71e24ed8c43b11ea02f5353d77840e01480881b8cb5a26b8cae64a8cb", size = 2654703, upload-time = "2025-10-28T17:34:10.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/da/545b75d420bb23b5d494b0517757b351963e974e79933f01e05c929f20a6/starlette-0.49.1-py3-none-any.whl", hash = "sha256:d92ce9f07e4a3caa3ac13a79523bd18e3bc0042bb8ff2d759a8e7dd0e1859875", size = 74175, upload-time = "2025-10-28T17:34:09.13Z" }, +] + +[[package]] +name = "structlog" +version = "25.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ef/52/9ba0f43b686e7f3ddfeaa78ac3af750292662284b3661e91ad5494f21dbc/structlog-25.5.0.tar.gz", hash = "sha256:098522a3bebed9153d4570c6d0288abf80a031dfdb2048d59a49e9dc2190fc98", size = 1460830, upload-time = "2025-10-27T08:28:23.028Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/45/a132b9074aa18e799b891b91ad72133c98d8042c70f6240e4c5f9dabee2f/structlog-25.5.0-py3-none-any.whl", hash = "sha256:a8453e9b9e636ec59bd9e79bbd4a72f025981b3ba0f5837aebf48f02f37a7f9f", size = 72510, upload-time = "2025-10-27T08:28:21.535Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload-time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" }, +] + +[[package]] +name = "terminado" +version = "0.18.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "os_name != 'nt'" }, + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/11/965c6fd8e5cc254f1fe142d547387da17a8ebfd75a3455f637c663fb38a0/terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e", size = 32701, upload-time = "2024-03-12T14:34:39.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" }, +] + +[[package]] +name = "tiktoken" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806, upload-time = "2025-10-06T20:22:45.419Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/46/21ea696b21f1d6d1efec8639c204bdf20fde8bafb351e1355c72c5d7de52/tiktoken-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e227c7f96925003487c33b1b32265fad2fbcec2b7cf4817afb76d416f40f6bb", size = 1051565, upload-time = "2025-10-06T20:21:44.566Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d9/35c5d2d9e22bb2a5f74ba48266fb56c63d76ae6f66e02feb628671c0283e/tiktoken-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c06cf0fcc24c2cb2adb5e185c7082a82cba29c17575e828518c2f11a01f445aa", size = 995284, upload-time = "2025-10-06T20:21:45.622Z" }, + { url = "https://files.pythonhosted.org/packages/01/84/961106c37b8e49b9fdcf33fe007bb3a8fdcc380c528b20cc7fbba80578b8/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:f18f249b041851954217e9fd8e5c00b024ab2315ffda5ed77665a05fa91f42dc", size = 1129201, upload-time = "2025-10-06T20:21:47.074Z" }, + { url = "https://files.pythonhosted.org/packages/6a/d0/3d9275198e067f8b65076a68894bb52fd253875f3644f0a321a720277b8a/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:47a5bc270b8c3db00bb46ece01ef34ad050e364b51d406b6f9730b64ac28eded", size = 1152444, upload-time = "2025-10-06T20:21:48.139Z" }, + { url = "https://files.pythonhosted.org/packages/78/db/a58e09687c1698a7c592e1038e01c206569b86a0377828d51635561f8ebf/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:508fa71810c0efdcd1b898fda574889ee62852989f7c1667414736bcb2b9a4bd", size = 1195080, upload-time = "2025-10-06T20:21:49.246Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/a9e4d2bf91d515c0f74afc526fd773a812232dd6cda33ebea7f531202325/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1af81a6c44f008cba48494089dd98cccb8b313f55e961a52f5b222d1e507967", size = 1255240, upload-time = "2025-10-06T20:21:50.274Z" }, + { url = "https://files.pythonhosted.org/packages/9d/15/963819345f1b1fb0809070a79e9dd96938d4ca41297367d471733e79c76c/tiktoken-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e68e3e593637b53e56f7237be560f7a394451cb8c11079755e80ae64b9e6def", size = 879422, upload-time = "2025-10-06T20:21:51.734Z" }, + { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728, upload-time = "2025-10-06T20:21:52.756Z" }, + { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049, upload-time = "2025-10-06T20:21:53.782Z" }, + { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008, upload-time = "2025-10-06T20:21:54.832Z" }, + { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665, upload-time = "2025-10-06T20:21:56.129Z" }, + { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230, upload-time = "2025-10-06T20:21:57.546Z" }, + { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688, upload-time = "2025-10-06T20:21:58.619Z" }, + { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694, upload-time = "2025-10-06T20:21:59.876Z" }, + { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802, upload-time = "2025-10-06T20:22:00.96Z" }, + { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995, upload-time = "2025-10-06T20:22:02.788Z" }, + { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948, upload-time = "2025-10-06T20:22:03.814Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/c028aa0babf77315e1cef357d4d768800c5f8a6de04d0eac0f377cb619fa/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4a1a4fcd021f022bfc81904a911d3df0f6543b9e7627b51411da75ff2fe7a1be", size = 1151986, upload-time = "2025-10-06T20:22:05.173Z" }, + { url = "https://files.pythonhosted.org/packages/a0/5a/886b108b766aa53e295f7216b509be95eb7d60b166049ce2c58416b25f2a/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:981a81e39812d57031efdc9ec59fa32b2a5a5524d20d4776574c4b4bd2e9014a", size = 1194222, upload-time = "2025-10-06T20:22:06.265Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/4db272048397636ac7a078d22773dd2795b1becee7bc4922fe6207288d57/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9baf52f84a3f42eef3ff4e754a0db79a13a27921b457ca9832cf944c6be4f8f3", size = 1255097, upload-time = "2025-10-06T20:22:07.403Z" }, + { url = "https://files.pythonhosted.org/packages/8e/32/45d02e2e0ea2be3a9ed22afc47d93741247e75018aac967b713b2941f8ea/tiktoken-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8a0cd0c789a61f31bf44851defbd609e8dd1e2c8589c614cc1060940ef1f697", size = 879117, upload-time = "2025-10-06T20:22:08.418Z" }, + { url = "https://files.pythonhosted.org/packages/ce/76/994fc868f88e016e6d05b0da5ac24582a14c47893f4474c3e9744283f1d5/tiktoken-0.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d5f89ea5680066b68bcb797ae85219c72916c922ef0fcdd3480c7d2315ffff16", size = 1050309, upload-time = "2025-10-06T20:22:10.939Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b8/57ef1456504c43a849821920d582a738a461b76a047f352f18c0b26c6516/tiktoken-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b4e7ed1c6a7a8a60a3230965bdedba8cc58f68926b835e519341413370e0399a", size = 993712, upload-time = "2025-10-06T20:22:12.115Z" }, + { url = "https://files.pythonhosted.org/packages/72/90/13da56f664286ffbae9dbcfadcc625439142675845baa62715e49b87b68b/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fc530a28591a2d74bce821d10b418b26a094bf33839e69042a6e86ddb7a7fb27", size = 1128725, upload-time = "2025-10-06T20:22:13.541Z" }, + { url = "https://files.pythonhosted.org/packages/05/df/4f80030d44682235bdaecd7346c90f67ae87ec8f3df4a3442cb53834f7e4/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:06a9f4f49884139013b138920a4c393aa6556b2f8f536345f11819389c703ebb", size = 1151875, upload-time = "2025-10-06T20:22:14.559Z" }, + { url = "https://files.pythonhosted.org/packages/22/1f/ae535223a8c4ef4c0c1192e3f9b82da660be9eb66b9279e95c99288e9dab/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:04f0e6a985d95913cabc96a741c5ffec525a2c72e9df086ff17ebe35985c800e", size = 1194451, upload-time = "2025-10-06T20:22:15.545Z" }, + { url = "https://files.pythonhosted.org/packages/78/a7/f8ead382fce0243cb625c4f266e66c27f65ae65ee9e77f59ea1653b6d730/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ee8f9ae00c41770b5f9b0bb1235474768884ae157de3beb5439ca0fd70f3e25", size = 1253794, upload-time = "2025-10-06T20:22:16.624Z" }, + { url = "https://files.pythonhosted.org/packages/93/e0/6cc82a562bc6365785a3ff0af27a2a092d57c47d7a81d9e2295d8c36f011/tiktoken-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dc2dd125a62cb2b3d858484d6c614d136b5b848976794edfb63688d539b8b93f", size = 878777, upload-time = "2025-10-06T20:22:18.036Z" }, +] + +[[package]] +name = "tinycss2" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821, upload-time = "2025-08-08T18:27:00.78Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563, upload-time = "2025-08-08T18:26:42.945Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729, upload-time = "2025-08-08T18:26:44.473Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295, upload-time = "2025-08-08T18:26:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644, upload-time = "2025-08-08T18:26:47.625Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878, upload-time = "2025-08-08T18:26:50.599Z" }, + { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549, upload-time = "2025-08-08T18:26:51.864Z" }, + { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973, upload-time = "2025-08-08T18:26:53.625Z" }, + { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954, upload-time = "2025-08-08T18:26:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023, upload-time = "2025-08-08T18:26:56.677Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427, upload-time = "2025-08-08T18:26:57.91Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456, upload-time = "2025-08-08T18:26:59.207Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "truststore" +version = "0.10.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/a3/1585216310e344e8102c22482f6060c7a6ea0322b63e026372e6dcefcfd6/truststore-0.10.4.tar.gz", hash = "sha256:9d91bd436463ad5e4ee4aba766628dd6cd7010cf3e2461756b3303710eebc301", size = 26169, upload-time = "2025-08-12T18:49:02.73Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/97/56608b2249fe206a67cd573bc93cd9896e1efb9e98bce9c163bcdc704b88/truststore-0.10.4-py3-none-any.whl", hash = "sha256:adaeaecf1cbb5f4de3b1959b42d41f6fab57b2b1666adb59e89cb0b53361d981", size = 18660, upload-time = "2025-08-12T18:49:01.46Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78", size = 13825, upload-time = "2023-05-24T20:25:47.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827, upload-time = "2023-05-24T20:25:45.287Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload-time = "2023-06-21T01:49:05.374Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload-time = "2023-06-21T01:49:03.467Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/f06b84e2697fef4688ca63bdb2fdf113ca0a3be33f94488f2cadb690b0cf/uvicorn-0.38.0.tar.gz", hash = "sha256:fd97093bdd120a2609fc0d3afe931d4d4ad688b6e75f0f929fde1bc36fe0e91d", size = 80605, upload-time = "2025-10-18T13:46:44.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/d9/d88e73ca598f4f6ff671fb5fde8a32925c2e08a637303a1d12883c7305fa/uvicorn-0.38.0-py3-none-any.whl", hash = "sha256:48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02", size = 68109, upload-time = "2025-10-18T13:46:42.958Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440, upload-time = "2025-10-14T15:06:21.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/f8/2c5f479fb531ce2f0564eda479faecf253d886b1ab3630a39b7bf7362d46/watchfiles-1.1.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5", size = 406529, upload-time = "2025-10-14T15:04:32.899Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cd/f515660b1f32f65df671ddf6f85bfaca621aee177712874dc30a97397977/watchfiles-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741", size = 394384, upload-time = "2025-10-14T15:04:33.761Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c3/28b7dc99733eab43fca2d10f55c86e03bd6ab11ca31b802abac26b23d161/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6", size = 448789, upload-time = "2025-10-14T15:04:34.679Z" }, + { url = "https://files.pythonhosted.org/packages/4a/24/33e71113b320030011c8e4316ccca04194bf0cbbaeee207f00cbc7d6b9f5/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b", size = 460521, upload-time = "2025-10-14T15:04:35.963Z" }, + { url = "https://files.pythonhosted.org/packages/f4/c3/3c9a55f255aa57b91579ae9e98c88704955fa9dac3e5614fb378291155df/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14", size = 488722, upload-time = "2025-10-14T15:04:37.091Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/506447b73eb46c120169dc1717fe2eff07c234bb3232a7200b5f5bd816e9/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d", size = 596088, upload-time = "2025-10-14T15:04:38.39Z" }, + { url = "https://files.pythonhosted.org/packages/82/ab/5f39e752a9838ec4d52e9b87c1e80f1ee3ccdbe92e183c15b6577ab9de16/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff", size = 472923, upload-time = "2025-10-14T15:04:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/af/b9/a419292f05e302dea372fa7e6fda5178a92998411f8581b9830d28fb9edb/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606", size = 456080, upload-time = "2025-10-14T15:04:40.643Z" }, + { url = "https://files.pythonhosted.org/packages/b0/c3/d5932fd62bde1a30c36e10c409dc5d54506726f08cb3e1d8d0ba5e2bc8db/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701", size = 629432, upload-time = "2025-10-14T15:04:41.789Z" }, + { url = "https://files.pythonhosted.org/packages/f7/77/16bddd9779fafb795f1a94319dc965209c5641db5bf1edbbccace6d1b3c0/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10", size = 623046, upload-time = "2025-10-14T15:04:42.718Z" }, + { url = "https://files.pythonhosted.org/packages/46/ef/f2ecb9a0f342b4bfad13a2787155c6ee7ce792140eac63a34676a2feeef2/watchfiles-1.1.1-cp311-cp311-win32.whl", hash = "sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849", size = 271473, upload-time = "2025-10-14T15:04:43.624Z" }, + { url = "https://files.pythonhosted.org/packages/94/bc/f42d71125f19731ea435c3948cad148d31a64fccde3867e5ba4edee901f9/watchfiles-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4", size = 287598, upload-time = "2025-10-14T15:04:44.516Z" }, + { url = "https://files.pythonhosted.org/packages/57/c9/a30f897351f95bbbfb6abcadafbaca711ce1162f4db95fc908c98a9165f3/watchfiles-1.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e", size = 277210, upload-time = "2025-10-14T15:04:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745, upload-time = "2025-10-14T15:04:46.731Z" }, + { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769, upload-time = "2025-10-14T15:04:48.003Z" }, + { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374, upload-time = "2025-10-14T15:04:49.179Z" }, + { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485, upload-time = "2025-10-14T15:04:50.155Z" }, + { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813, upload-time = "2025-10-14T15:04:51.059Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816, upload-time = "2025-10-14T15:04:52.031Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186, upload-time = "2025-10-14T15:04:53.064Z" }, + { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812, upload-time = "2025-10-14T15:04:55.174Z" }, + { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196, upload-time = "2025-10-14T15:04:56.22Z" }, + { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657, upload-time = "2025-10-14T15:04:57.521Z" }, + { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042, upload-time = "2025-10-14T15:04:59.046Z" }, + { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410, upload-time = "2025-10-14T15:05:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209, upload-time = "2025-10-14T15:05:01.168Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321, upload-time = "2025-10-14T15:05:02.063Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783, upload-time = "2025-10-14T15:05:03.052Z" }, + { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279, upload-time = "2025-10-14T15:05:04.004Z" }, + { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405, upload-time = "2025-10-14T15:05:04.942Z" }, + { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976, upload-time = "2025-10-14T15:05:05.905Z" }, + { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506, upload-time = "2025-10-14T15:05:06.906Z" }, + { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936, upload-time = "2025-10-14T15:05:07.906Z" }, + { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147, upload-time = "2025-10-14T15:05:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007, upload-time = "2025-10-14T15:05:10.117Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280, upload-time = "2025-10-14T15:05:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056, upload-time = "2025-10-14T15:05:12.156Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162, upload-time = "2025-10-14T15:05:13.208Z" }, + { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909, upload-time = "2025-10-14T15:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389, upload-time = "2025-10-14T15:05:15.777Z" }, + { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964, upload-time = "2025-10-14T15:05:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114, upload-time = "2025-10-14T15:05:17.876Z" }, + { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264, upload-time = "2025-10-14T15:05:18.962Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877, upload-time = "2025-10-14T15:05:20.094Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176, upload-time = "2025-10-14T15:05:21.134Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577, upload-time = "2025-10-14T15:05:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425, upload-time = "2025-10-14T15:05:23.348Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826, upload-time = "2025-10-14T15:05:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208, upload-time = "2025-10-14T15:05:25.45Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8e/e500f8b0b77be4ff753ac94dc06b33d8f0d839377fee1b78e8c8d8f031bf/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88", size = 408250, upload-time = "2025-10-14T15:06:10.264Z" }, + { url = "https://files.pythonhosted.org/packages/bd/95/615e72cd27b85b61eec764a5ca51bd94d40b5adea5ff47567d9ebc4d275a/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336", size = 396117, upload-time = "2025-10-14T15:06:11.28Z" }, + { url = "https://files.pythonhosted.org/packages/c9/81/e7fe958ce8a7fb5c73cc9fb07f5aeaf755e6aa72498c57d760af760c91f8/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24", size = 450493, upload-time = "2025-10-14T15:06:12.321Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d4/ed38dd3b1767193de971e694aa544356e63353c33a85d948166b5ff58b9e/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49", size = 457546, upload-time = "2025-10-14T15:06:13.372Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload-time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload-time = "2025-09-22T16:29:51.641Z" }, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/29/061ec845fb58521848f3739e466efd8250b4b7b98c1b6c5bf4d40b419b7e/webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6", size = 45064, upload-time = "2024-11-11T07:43:24.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/e8/c0e05e4684d13459f93d312077a9a2efbe04d59c393bc2b8802248c908d4/webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9", size = 14934, upload-time = "2024-11-11T07:43:22.529Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] + +[[package]] +name = "websocket-client" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/53/2e0253c5efd69c9656b1843892052a31c36d37ad42812b5da45c62191f7e/widgetsnbextension-4.0.14.tar.gz", hash = "sha256:a3629b04e3edb893212df862038c7232f62973373869db5084aed739b437b5af", size = 1097428, upload-time = "2025-04-10T13:01:25.628Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/51/5447876806d1088a0f8f71e16542bf350918128d0a69437df26047c8e46f/widgetsnbextension-4.0.14-py3-none-any.whl", hash = "sha256:4875a9eaf72fbf5079dc372a51a9f268fc38d46f767cbf85c43a36da5cb9b575", size = 2196503, upload-time = "2025-04-10T13:01:23.086Z" }, +] + +[[package]] +name = "xxhash" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160, upload-time = "2025-10-02T14:37:08.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/d4/cc2f0400e9154df4b9964249da78ebd72f318e35ccc425e9f403c392f22a/xxhash-3.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b47bbd8cf2d72797f3c2772eaaac0ded3d3af26481a26d7d7d41dc2d3c46b04a", size = 32844, upload-time = "2025-10-02T14:34:14.037Z" }, + { url = "https://files.pythonhosted.org/packages/5e/ec/1cc11cd13e26ea8bc3cb4af4eaadd8d46d5014aebb67be3f71fb0b68802a/xxhash-3.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2b6821e94346f96db75abaa6e255706fb06ebd530899ed76d32cd99f20dc52fa", size = 30809, upload-time = "2025-10-02T14:34:15.484Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/19fe357ea348d98ca22f456f75a30ac0916b51c753e1f8b2e0e6fb884cce/xxhash-3.6.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d0a9751f71a1a65ce3584e9cae4467651c7e70c9d31017fa57574583a4540248", size = 194665, upload-time = "2025-10-02T14:34:16.541Z" }, + { url = "https://files.pythonhosted.org/packages/90/3b/d1f1a8f5442a5fd8beedae110c5af7604dc37349a8e16519c13c19a9a2de/xxhash-3.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b29ee68625ab37b04c0b40c3fafdf24d2f75ccd778333cfb698f65f6c463f62", size = 213550, upload-time = "2025-10-02T14:34:17.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ef/3a9b05eb527457d5db13a135a2ae1a26c80fecd624d20f3e8dcc4cb170f3/xxhash-3.6.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6812c25fe0d6c36a46ccb002f40f27ac903bf18af9f6dd8f9669cb4d176ab18f", size = 212384, upload-time = "2025-10-02T14:34:19.182Z" }, + { url = "https://files.pythonhosted.org/packages/0f/18/ccc194ee698c6c623acbf0f8c2969811a8a4b6185af5e824cd27b9e4fd3e/xxhash-3.6.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4ccbff013972390b51a18ef1255ef5ac125c92dc9143b2d1909f59abc765540e", size = 445749, upload-time = "2025-10-02T14:34:20.659Z" }, + { url = "https://files.pythonhosted.org/packages/a5/86/cf2c0321dc3940a7aa73076f4fd677a0fb3e405cb297ead7d864fd90847e/xxhash-3.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:297b7fbf86c82c550e12e8fb71968b3f033d27b874276ba3624ea868c11165a8", size = 193880, upload-time = "2025-10-02T14:34:22.431Z" }, + { url = "https://files.pythonhosted.org/packages/82/fb/96213c8560e6f948a1ecc9a7613f8032b19ee45f747f4fca4eb31bb6d6ed/xxhash-3.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea26ae1eb293db089798d3973a5fc928a18fdd97cc8801226fae705b02b14b0", size = 210912, upload-time = "2025-10-02T14:34:23.937Z" }, + { url = "https://files.pythonhosted.org/packages/40/aa/4395e669b0606a096d6788f40dbdf2b819d6773aa290c19e6e83cbfc312f/xxhash-3.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7a0b169aafb98f4284f73635a8e93f0735f9cbde17bd5ec332480484241aaa77", size = 198654, upload-time = "2025-10-02T14:34:25.644Z" }, + { url = "https://files.pythonhosted.org/packages/67/74/b044fcd6b3d89e9b1b665924d85d3f400636c23590226feb1eb09e1176ce/xxhash-3.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:08d45aef063a4531b785cd72de4887766d01dc8f362a515693df349fdb825e0c", size = 210867, upload-time = "2025-10-02T14:34:27.203Z" }, + { url = "https://files.pythonhosted.org/packages/bc/fd/3ce73bf753b08cb19daee1eb14aa0d7fe331f8da9c02dd95316ddfe5275e/xxhash-3.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:929142361a48ee07f09121fe9e96a84950e8d4df3bb298ca5d88061969f34d7b", size = 414012, upload-time = "2025-10-02T14:34:28.409Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b3/5a4241309217c5c876f156b10778f3ab3af7ba7e3259e6d5f5c7d0129eb2/xxhash-3.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51312c768403d8540487dbbfb557454cfc55589bbde6424456951f7fcd4facb3", size = 191409, upload-time = "2025-10-02T14:34:29.696Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/99bfbc15fb9abb9a72b088c1d95219fc4782b7d01fc835bd5744d66dd0b8/xxhash-3.6.0-cp311-cp311-win32.whl", hash = "sha256:d1927a69feddc24c987b337ce81ac15c4720955b667fe9b588e02254b80446fd", size = 30574, upload-time = "2025-10-02T14:34:31.028Z" }, + { url = "https://files.pythonhosted.org/packages/65/79/9d24d7f53819fe301b231044ea362ce64e86c74f6e8c8e51320de248b3e5/xxhash-3.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:26734cdc2d4ffe449b41d186bbeac416f704a482ed835d375a5c0cb02bc63fef", size = 31481, upload-time = "2025-10-02T14:34:32.062Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/15cd0e3e8772071344eab2961ce83f6e485111fed8beb491a3f1ce100270/xxhash-3.6.0-cp311-cp311-win_arm64.whl", hash = "sha256:d72f67ef8bf36e05f5b6c65e8524f265bd61071471cd4cf1d36743ebeeeb06b7", size = 27861, upload-time = "2025-10-02T14:34:33.555Z" }, + { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744, upload-time = "2025-10-02T14:34:34.622Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816, upload-time = "2025-10-02T14:34:36.043Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035, upload-time = "2025-10-02T14:34:37.354Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914, upload-time = "2025-10-02T14:34:38.6Z" }, + { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163, upload-time = "2025-10-02T14:34:39.872Z" }, + { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411, upload-time = "2025-10-02T14:34:41.569Z" }, + { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883, upload-time = "2025-10-02T14:34:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392, upload-time = "2025-10-02T14:34:45.042Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898, upload-time = "2025-10-02T14:34:46.302Z" }, + { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655, upload-time = "2025-10-02T14:34:47.571Z" }, + { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001, upload-time = "2025-10-02T14:34:49.273Z" }, + { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431, upload-time = "2025-10-02T14:34:50.798Z" }, + { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617, upload-time = "2025-10-02T14:34:51.954Z" }, + { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534, upload-time = "2025-10-02T14:34:53.276Z" }, + { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876, upload-time = "2025-10-02T14:34:54.371Z" }, + { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738, upload-time = "2025-10-02T14:34:55.839Z" }, + { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821, upload-time = "2025-10-02T14:34:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127, upload-time = "2025-10-02T14:34:59.21Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975, upload-time = "2025-10-02T14:35:00.816Z" }, + { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241, upload-time = "2025-10-02T14:35:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471, upload-time = "2025-10-02T14:35:03.61Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936, upload-time = "2025-10-02T14:35:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440, upload-time = "2025-10-02T14:35:06.239Z" }, + { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990, upload-time = "2025-10-02T14:35:07.735Z" }, + { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689, upload-time = "2025-10-02T14:35:09.438Z" }, + { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068, upload-time = "2025-10-02T14:35:11.162Z" }, + { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495, upload-time = "2025-10-02T14:35:12.971Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620, upload-time = "2025-10-02T14:35:14.129Z" }, + { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542, upload-time = "2025-10-02T14:35:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880, upload-time = "2025-10-02T14:35:16.315Z" }, + { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956, upload-time = "2025-10-02T14:35:17.413Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072, upload-time = "2025-10-02T14:35:18.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409, upload-time = "2025-10-02T14:35:20.31Z" }, + { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736, upload-time = "2025-10-02T14:35:21.616Z" }, + { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833, upload-time = "2025-10-02T14:35:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348, upload-time = "2025-10-02T14:35:25.111Z" }, + { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070, upload-time = "2025-10-02T14:35:26.586Z" }, + { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907, upload-time = "2025-10-02T14:35:28.087Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839, upload-time = "2025-10-02T14:35:29.857Z" }, + { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304, upload-time = "2025-10-02T14:35:31.222Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930, upload-time = "2025-10-02T14:35:32.517Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787, upload-time = "2025-10-02T14:35:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916, upload-time = "2025-10-02T14:35:35.107Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799, upload-time = "2025-10-02T14:35:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044, upload-time = "2025-10-02T14:35:37.195Z" }, + { url = "https://files.pythonhosted.org/packages/93/1e/8aec23647a34a249f62e2398c42955acd9b4c6ed5cf08cbea94dc46f78d2/xxhash-3.6.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0f7b7e2ec26c1666ad5fc9dbfa426a6a3367ceaf79db5dd76264659d509d73b0", size = 30662, upload-time = "2025-10-02T14:37:01.743Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0b/b14510b38ba91caf43006209db846a696ceea6a847a0c9ba0a5b1adc53d6/xxhash-3.6.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5dc1e14d14fa0f5789ec29a7062004b5933964bb9b02aae6622b8f530dc40296", size = 41056, upload-time = "2025-10-02T14:37:02.879Z" }, + { url = "https://files.pythonhosted.org/packages/50/55/15a7b8a56590e66ccd374bbfa3f9ffc45b810886c8c3b614e3f90bd2367c/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:881b47fc47e051b37d94d13e7455131054b56749b91b508b0907eb07900d1c13", size = 36251, upload-time = "2025-10-02T14:37:04.44Z" }, + { url = "https://files.pythonhosted.org/packages/62/b2/5ac99a041a29e58e95f907876b04f7067a0242cb85b5f39e726153981503/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6dc31591899f5e5666f04cc2e529e69b4072827085c1ef15294d91a004bc1bd", size = 32481, upload-time = "2025-10-02T14:37:05.869Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/8d95e906764a386a3d3b596f3c68bb63687dfca806373509f51ce8eea81f/xxhash-3.6.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:15e0dac10eb9309508bfc41f7f9deaa7755c69e35af835db9cb10751adebc35d", size = 31565, upload-time = "2025-10-02T14:37:06.966Z" }, +] + +[[package]] +name = "yarl" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload-time = "2025-10-06T14:12:55.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607, upload-time = "2025-10-06T14:09:16.298Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027, upload-time = "2025-10-06T14:09:17.786Z" }, + { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963, upload-time = "2025-10-06T14:09:19.662Z" }, + { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406, upload-time = "2025-10-06T14:09:21.402Z" }, + { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581, upload-time = "2025-10-06T14:09:22.98Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924, upload-time = "2025-10-06T14:09:24.655Z" }, + { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890, upload-time = "2025-10-06T14:09:26.617Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819, upload-time = "2025-10-06T14:09:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601, upload-time = "2025-10-06T14:09:30.568Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072, upload-time = "2025-10-06T14:09:32.528Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311, upload-time = "2025-10-06T14:09:34.634Z" }, + { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094, upload-time = "2025-10-06T14:09:36.268Z" }, + { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944, upload-time = "2025-10-06T14:09:37.872Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804, upload-time = "2025-10-06T14:09:39.359Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858, upload-time = "2025-10-06T14:09:41.068Z" }, + { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637, upload-time = "2025-10-06T14:09:42.712Z" }, + { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000, upload-time = "2025-10-06T14:09:44.631Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338, upload-time = "2025-10-06T14:09:46.372Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909, upload-time = "2025-10-06T14:09:48.648Z" }, + { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940, upload-time = "2025-10-06T14:09:50.089Z" }, + { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825, upload-time = "2025-10-06T14:09:52.142Z" }, + { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705, upload-time = "2025-10-06T14:09:54.128Z" }, + { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518, upload-time = "2025-10-06T14:09:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267, upload-time = "2025-10-06T14:09:57.958Z" }, + { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797, upload-time = "2025-10-06T14:09:59.527Z" }, + { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535, upload-time = "2025-10-06T14:10:01.139Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324, upload-time = "2025-10-06T14:10:02.756Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803, upload-time = "2025-10-06T14:10:04.552Z" }, + { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220, upload-time = "2025-10-06T14:10:06.489Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589, upload-time = "2025-10-06T14:10:09.254Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213, upload-time = "2025-10-06T14:10:11.369Z" }, + { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330, upload-time = "2025-10-06T14:10:13.112Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980, upload-time = "2025-10-06T14:10:14.601Z" }, + { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424, upload-time = "2025-10-06T14:10:16.115Z" }, + { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821, upload-time = "2025-10-06T14:10:17.993Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243, upload-time = "2025-10-06T14:10:19.44Z" }, + { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361, upload-time = "2025-10-06T14:10:21.124Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036, upload-time = "2025-10-06T14:10:22.902Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671, upload-time = "2025-10-06T14:10:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059, upload-time = "2025-10-06T14:10:26.406Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356, upload-time = "2025-10-06T14:10:28.461Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331, upload-time = "2025-10-06T14:10:30.541Z" }, + { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590, upload-time = "2025-10-06T14:10:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316, upload-time = "2025-10-06T14:10:35.034Z" }, + { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431, upload-time = "2025-10-06T14:10:37.76Z" }, + { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555, upload-time = "2025-10-06T14:10:39.649Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965, upload-time = "2025-10-06T14:10:41.313Z" }, + { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205, upload-time = "2025-10-06T14:10:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209, upload-time = "2025-10-06T14:10:44.643Z" }, + { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966, upload-time = "2025-10-06T14:10:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312, upload-time = "2025-10-06T14:10:48.007Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967, upload-time = "2025-10-06T14:10:49.997Z" }, + { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949, upload-time = "2025-10-06T14:10:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818, upload-time = "2025-10-06T14:10:54.078Z" }, + { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626, upload-time = "2025-10-06T14:10:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129, upload-time = "2025-10-06T14:10:57.985Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776, upload-time = "2025-10-06T14:10:59.633Z" }, + { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879, upload-time = "2025-10-06T14:11:01.454Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996, upload-time = "2025-10-06T14:11:03.452Z" }, + { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047, upload-time = "2025-10-06T14:11:05.115Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947, upload-time = "2025-10-06T14:11:08.137Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943, upload-time = "2025-10-06T14:11:10.284Z" }, + { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715, upload-time = "2025-10-06T14:11:11.739Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857, upload-time = "2025-10-06T14:11:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, +] + +[[package]] +name = "zstandard" +version = "0.25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513, upload-time = "2025-09-14T22:15:54.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/83/c3ca27c363d104980f1c9cee1101cc8ba724ac8c28a033ede6aab89585b1/zstandard-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c", size = 795254, upload-time = "2025-09-14T22:16:26.137Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4d/e66465c5411a7cf4866aeadc7d108081d8ceba9bc7abe6b14aa21c671ec3/zstandard-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f", size = 640559, upload-time = "2025-09-14T22:16:27.973Z" }, + { url = "https://files.pythonhosted.org/packages/12/56/354fe655905f290d3b147b33fe946b0f27e791e4b50a5f004c802cb3eb7b/zstandard-0.25.0-cp311-cp311-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431", size = 5348020, upload-time = "2025-09-14T22:16:29.523Z" }, + { url = "https://files.pythonhosted.org/packages/3b/13/2b7ed68bd85e69a2069bcc72141d378f22cae5a0f3b353a2c8f50ef30c1b/zstandard-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a", size = 5058126, upload-time = "2025-09-14T22:16:31.811Z" }, + { url = "https://files.pythonhosted.org/packages/c9/dd/fdaf0674f4b10d92cb120ccff58bbb6626bf8368f00ebfd2a41ba4a0dc99/zstandard-0.25.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc", size = 5405390, upload-time = "2025-09-14T22:16:33.486Z" }, + { url = "https://files.pythonhosted.org/packages/0f/67/354d1555575bc2490435f90d67ca4dd65238ff2f119f30f72d5cde09c2ad/zstandard-0.25.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6", size = 5452914, upload-time = "2025-09-14T22:16:35.277Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072", size = 5559635, upload-time = "2025-09-14T22:16:37.141Z" }, + { url = "https://files.pythonhosted.org/packages/21/88/5ba550f797ca953a52d708c8e4f380959e7e3280af029e38fbf47b55916e/zstandard-0.25.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277", size = 5048277, upload-time = "2025-09-14T22:16:38.807Z" }, + { url = "https://files.pythonhosted.org/packages/46/c0/ca3e533b4fa03112facbe7fbe7779cb1ebec215688e5df576fe5429172e0/zstandard-0.25.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313", size = 5574377, upload-time = "2025-09-14T22:16:40.523Z" }, + { url = "https://files.pythonhosted.org/packages/12/9b/3fb626390113f272abd0799fd677ea33d5fc3ec185e62e6be534493c4b60/zstandard-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097", size = 4961493, upload-time = "2025-09-14T22:16:43.3Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d3/23094a6b6a4b1343b27ae68249daa17ae0651fcfec9ed4de09d14b940285/zstandard-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778", size = 5269018, upload-time = "2025-09-14T22:16:45.292Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a7/bb5a0c1c0f3f4b5e9d5b55198e39de91e04ba7c205cc46fcb0f95f0383c1/zstandard-0.25.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065", size = 5443672, upload-time = "2025-09-14T22:16:47.076Z" }, + { url = "https://files.pythonhosted.org/packages/27/22/503347aa08d073993f25109c36c8d9f029c7d5949198050962cb568dfa5e/zstandard-0.25.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa", size = 5822753, upload-time = "2025-09-14T22:16:49.316Z" }, + { url = "https://files.pythonhosted.org/packages/e2/be/94267dc6ee64f0f8ba2b2ae7c7a2df934a816baaa7291db9e1aa77394c3c/zstandard-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7", size = 5366047, upload-time = "2025-09-14T22:16:51.328Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a3/732893eab0a3a7aecff8b99052fecf9f605cf0fb5fb6d0290e36beee47a4/zstandard-0.25.0-cp311-cp311-win32.whl", hash = "sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4", size = 436484, upload-time = "2025-09-14T22:16:55.005Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/c6155f5c1cce691cb80dfd38627046e50af3ee9ddc5d0b45b9b063bfb8c9/zstandard-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2", size = 506183, upload-time = "2025-09-14T22:16:52.753Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/8945ab86a0820cc0e0cdbf38086a92868a9172020fdab8a03ac19662b0e5/zstandard-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137", size = 462533, upload-time = "2025-09-14T22:16:53.878Z" }, + { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738, upload-time = "2025-09-14T22:16:56.237Z" }, + { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436, upload-time = "2025-09-14T22:16:57.774Z" }, + { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019, upload-time = "2025-09-14T22:16:59.302Z" }, + { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012, upload-time = "2025-09-14T22:17:01.156Z" }, + { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148, upload-time = "2025-09-14T22:17:03.091Z" }, + { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652, upload-time = "2025-09-14T22:17:04.979Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993, upload-time = "2025-09-14T22:17:06.781Z" }, + { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806, upload-time = "2025-09-14T22:17:08.415Z" }, + { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659, upload-time = "2025-09-14T22:17:10.164Z" }, + { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933, upload-time = "2025-09-14T22:17:11.857Z" }, + { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008, upload-time = "2025-09-14T22:17:13.627Z" }, + { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517, upload-time = "2025-09-14T22:17:16.103Z" }, + { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292, upload-time = "2025-09-14T22:17:17.827Z" }, + { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237, upload-time = "2025-09-14T22:17:19.954Z" }, + { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922, upload-time = "2025-09-14T22:17:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276, upload-time = "2025-09-14T22:17:21.429Z" }, + { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679, upload-time = "2025-09-14T22:17:23.147Z" }, + { url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735, upload-time = "2025-09-14T22:17:26.042Z" }, + { url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440, upload-time = "2025-09-14T22:17:27.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070, upload-time = "2025-09-14T22:17:28.896Z" }, + { url = "https://files.pythonhosted.org/packages/6d/db/ddb11011826ed7db9d0e485d13df79b58586bfdec56e5c84a928a9a78c1c/zstandard-0.25.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bfc4e20784722098822e3eee42b8e576b379ed72cca4a7cb856ae733e62192ea", size = 5063001, upload-time = "2025-09-14T22:17:31.044Z" }, + { url = "https://files.pythonhosted.org/packages/db/00/87466ea3f99599d02a5238498b87bf84a6348290c19571051839ca943777/zstandard-0.25.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:457ed498fc58cdc12fc48f7950e02740d4f7ae9493dd4ab2168a47c93c31298e", size = 5394120, upload-time = "2025-09-14T22:17:32.711Z" }, + { url = "https://files.pythonhosted.org/packages/2b/95/fc5531d9c618a679a20ff6c29e2b3ef1d1f4ad66c5e161ae6ff847d102a9/zstandard-0.25.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:fd7a5004eb1980d3cefe26b2685bcb0b17989901a70a1040d1ac86f1d898c551", size = 5451230, upload-time = "2025-09-14T22:17:34.41Z" }, + { url = "https://files.pythonhosted.org/packages/63/4b/e3678b4e776db00f9f7b2fe58e547e8928ef32727d7a1ff01dea010f3f13/zstandard-0.25.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e735494da3db08694d26480f1493ad2cf86e99bdd53e8e9771b2752a5c0246a", size = 5547173, upload-time = "2025-09-14T22:17:36.084Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d5/ba05ed95c6b8ec30bd468dfeab20589f2cf709b5c940483e31d991f2ca58/zstandard-0.25.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3a39c94ad7866160a4a46d772e43311a743c316942037671beb264e395bdd611", size = 5046736, upload-time = "2025-09-14T22:17:37.891Z" }, + { url = "https://files.pythonhosted.org/packages/50/d5/870aa06b3a76c73eced65c044b92286a3c4e00554005ff51962deef28e28/zstandard-0.25.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:172de1f06947577d3a3005416977cce6168f2261284c02080e7ad0185faeced3", size = 5576368, upload-time = "2025-09-14T22:17:40.206Z" }, + { url = "https://files.pythonhosted.org/packages/5d/35/398dc2ffc89d304d59bc12f0fdd931b4ce455bddf7038a0a67733a25f550/zstandard-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3c83b0188c852a47cd13ef3bf9209fb0a77fa5374958b8c53aaa699398c6bd7b", size = 4954022, upload-time = "2025-09-14T22:17:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/9a/5c/36ba1e5507d56d2213202ec2b05e8541734af5f2ce378c5d1ceaf4d88dc4/zstandard-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1673b7199bbe763365b81a4f3252b8e80f44c9e323fc42940dc8843bfeaf9851", size = 5267889, upload-time = "2025-09-14T22:17:43.577Z" }, + { url = "https://files.pythonhosted.org/packages/70/e8/2ec6b6fb7358b2ec0113ae202647ca7c0e9d15b61c005ae5225ad0995df5/zstandard-0.25.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0be7622c37c183406f3dbf0cba104118eb16a4ea7359eeb5752f0794882fc250", size = 5433952, upload-time = "2025-09-14T22:17:45.271Z" }, + { url = "https://files.pythonhosted.org/packages/7b/01/b5f4d4dbc59ef193e870495c6f1275f5b2928e01ff5a81fecb22a06e22fb/zstandard-0.25.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:5f5e4c2a23ca271c218ac025bd7d635597048b366d6f31f420aaeb715239fc98", size = 5814054, upload-time = "2025-09-14T22:17:47.08Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e5/fbd822d5c6f427cf158316d012c5a12f233473c2f9c5fe5ab1ae5d21f3d8/zstandard-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f187a0bb61b35119d1926aee039524d1f93aaf38a9916b8c4b78ac8514a0aaf", size = 5360113, upload-time = "2025-09-14T22:17:48.893Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/69a553d2047f9a2c7347caa225bb3a63b6d7704ad74610cb7823baa08ed7/zstandard-0.25.0-cp313-cp313-win32.whl", hash = "sha256:7030defa83eef3e51ff26f0b7bfb229f0204b66fe18e04359ce3474ac33cbc09", size = 436936, upload-time = "2025-09-14T22:17:52.658Z" }, + { url = "https://files.pythonhosted.org/packages/d9/82/b9c06c870f3bd8767c201f1edbdf9e8dc34be5b0fbc5682c4f80fe948475/zstandard-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:1f830a0dac88719af0ae43b8b2d6aef487d437036468ef3c2ea59c51f9d55fd5", size = 506232, upload-time = "2025-09-14T22:17:50.402Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/60c3c01243bb81d381c9916e2a6d9e149ab8627c0c7d7abb2d73384b3c0c/zstandard-0.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:85304a43f4d513f5464ceb938aa02c1e78c2943b29f44a750b48b25ac999a049", size = 462671, upload-time = "2025-09-14T22:17:51.533Z" }, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..fde0418 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,12 @@ +[project] +name = "python-notes" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.14" +dependencies = [ + "gradio>=6.12.0", + "haystack-ai>=2.27.0", + "ipykernel>=7.2.0", + "pip>=26.0.1", +] diff --git a/streamlit_apps/101/README.md b/streamlit_apps/101/README.md new file mode 100644 index 0000000..ad334a3 --- /dev/null +++ b/streamlit_apps/101/README.md @@ -0,0 +1,10 @@ +## Simple Streamlit App + +1. Required Python modules +``` +pandas +streamlit +altair + ``` +3. Run the app +`streamlit run app.py` diff --git a/streamlit_apps/101/app.py b/streamlit_apps/101/app.py new file mode 100644 index 0000000..ecac159 --- /dev/null +++ b/streamlit_apps/101/app.py @@ -0,0 +1,45 @@ +import streamlit as st +import pandas as pd +import altair as alt + +# Read data from CSV file +df = pd.read_csv("stock_prices.csv") + +# Filter data by stock name +def filter_data(stock_name): + return df[df["Stock"] == stock_name] + +# Create bar chart +def create_bar_chart(stock_name): + data = filter_data(stock_name) + chart = alt.Chart(data).mark_bar().encode( + x=alt.X("Date:T", axis=alt.Axis(title="Date")), + y=alt.Y("Close:Q", axis=alt.Axis(title="Closing Price")), + color=alt.Color("Stock:N", legend=alt.Legend(title="Stock")) + ).properties(width=600, height=400, title=f"{stock_name} Closing Prices (Bar Chart)") + return chart + +# Create line chart +def create_line_chart(stock_name): + data = filter_data(stock_name) + chart = alt.Chart(data).mark_line().encode( + x=alt.X("Date:T", axis=alt.Axis(title="Date")), + y=alt.Y("Close:Q", axis=alt.Axis(title="Closing Price")), + color=alt.Color("Stock:N", legend=alt.Legend(title="Stock")) + ).properties(width=600, height=400, title=f"{stock_name} Closing Prices (Line Chart)") + return chart + +# Streamlit app +def main(): + st.title("Apple and Tesla Stock Prices") + stock_names = ["Apple", "Tesla"] + stock_name = st.sidebar.selectbox("Select a stock", stock_names) + chart_type = st.sidebar.radio("Select a chart type", ["Bar Chart", "Line Chart"]) + if chart_type == "Bar Chart": + chart = create_bar_chart(stock_name) + else: + chart = create_line_chart(stock_name) + st.altair_chart(chart, use_container_width=True) + +if __name__ == "__main__": + main() diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..f171c24 --- /dev/null +++ b/uv.lock @@ -0,0 +1,1539 @@ +version = 1 +revision = 3 +requires-python = ">=3.14" +resolution-markers = [ + "sys_platform == 'win32'", + "sys_platform == 'emscripten'", + "sys_platform != 'emscripten' and sys_platform != 'win32'", +] + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "audioop-lts" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/53/946db57842a50b2da2e0c1e34bd37f36f5aadba1a929a3971c5d7841dbca/audioop_lts-0.2.2.tar.gz", hash = "sha256:64d0c62d88e67b98a1a5e71987b7aa7b5bcffc7dcee65b635823dbdd0a8dbbd0", size = 30686, upload-time = "2025-08-05T16:43:17.409Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/d4/94d277ca941de5a507b07f0b592f199c22454eeaec8f008a286b3fbbacd6/audioop_lts-0.2.2-cp313-abi3-macosx_10_13_universal2.whl", hash = "sha256:fd3d4602dc64914d462924a08c1a9816435a2155d74f325853c1f1ac3b2d9800", size = 46523, upload-time = "2025-08-05T16:42:20.836Z" }, + { url = "https://files.pythonhosted.org/packages/f8/5a/656d1c2da4b555920ce4177167bfeb8623d98765594af59702c8873f60ec/audioop_lts-0.2.2-cp313-abi3-macosx_10_13_x86_64.whl", hash = "sha256:550c114a8df0aafe9a05442a1162dfc8fec37e9af1d625ae6060fed6e756f303", size = 27455, upload-time = "2025-08-05T16:42:22.283Z" }, + { url = "https://files.pythonhosted.org/packages/1b/83/ea581e364ce7b0d41456fb79d6ee0ad482beda61faf0cab20cbd4c63a541/audioop_lts-0.2.2-cp313-abi3-macosx_11_0_arm64.whl", hash = "sha256:9a13dc409f2564de15dd68be65b462ba0dde01b19663720c68c1140c782d1d75", size = 26997, upload-time = "2025-08-05T16:42:23.849Z" }, + { url = "https://files.pythonhosted.org/packages/b8/3b/e8964210b5e216e5041593b7d33e97ee65967f17c282e8510d19c666dab4/audioop_lts-0.2.2-cp313-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:51c916108c56aa6e426ce611946f901badac950ee2ddaf302b7ed35d9958970d", size = 85844, upload-time = "2025-08-05T16:42:25.208Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2e/0a1c52faf10d51def20531a59ce4c706cb7952323b11709e10de324d6493/audioop_lts-0.2.2-cp313-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47eba38322370347b1c47024defbd36374a211e8dd5b0dcbce7b34fdb6f8847b", size = 85056, upload-time = "2025-08-05T16:42:26.559Z" }, + { url = "https://files.pythonhosted.org/packages/75/e8/cd95eef479656cb75ab05dfece8c1f8c395d17a7c651d88f8e6e291a63ab/audioop_lts-0.2.2-cp313-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba7c3a7e5f23e215cb271516197030c32aef2e754252c4c70a50aaff7031a2c8", size = 93892, upload-time = "2025-08-05T16:42:27.902Z" }, + { url = "https://files.pythonhosted.org/packages/5c/1e/a0c42570b74f83efa5cca34905b3eef03f7ab09fe5637015df538a7f3345/audioop_lts-0.2.2-cp313-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:def246fe9e180626731b26e89816e79aae2276f825420a07b4a647abaa84becc", size = 96660, upload-time = "2025-08-05T16:42:28.9Z" }, + { url = "https://files.pythonhosted.org/packages/50/d5/8a0ae607ca07dbb34027bac8db805498ee7bfecc05fd2c148cc1ed7646e7/audioop_lts-0.2.2-cp313-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e160bf9df356d841bb6c180eeeea1834085464626dc1b68fa4e1d59070affdc3", size = 79143, upload-time = "2025-08-05T16:42:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/12/17/0d28c46179e7910bfb0bb62760ccb33edb5de973052cb2230b662c14ca2e/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4b4cd51a57b698b2d06cb9993b7ac8dfe89a3b2878e96bc7948e9f19ff51dba6", size = 84313, upload-time = "2025-08-05T16:42:30.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/ba/bd5d3806641564f2024e97ca98ea8f8811d4e01d9b9f9831474bc9e14f9e/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4a53aa7c16a60a6857e6b0b165261436396ef7293f8b5c9c828a3a203147ed4a", size = 93044, upload-time = "2025-08-05T16:42:31.959Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5e/435ce8d5642f1f7679540d1e73c1c42d933331c0976eb397d1717d7f01a3/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:3fc38008969796f0f689f1453722a0f463da1b8a6fbee11987830bfbb664f623", size = 78766, upload-time = "2025-08-05T16:42:33.302Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3b/b909e76b606cbfd53875693ec8c156e93e15a1366a012f0b7e4fb52d3c34/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_s390x.whl", hash = "sha256:15ab25dd3e620790f40e9ead897f91e79c0d3ce65fe193c8ed6c26cffdd24be7", size = 87640, upload-time = "2025-08-05T16:42:34.854Z" }, + { url = "https://files.pythonhosted.org/packages/30/e7/8f1603b4572d79b775f2140d7952f200f5e6c62904585d08a01f0a70393a/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:03f061a1915538fd96272bac9551841859dbb2e3bf73ebe4a23ef043766f5449", size = 86052, upload-time = "2025-08-05T16:42:35.839Z" }, + { url = "https://files.pythonhosted.org/packages/b5/96/c37846df657ccdda62ba1ae2b6534fa90e2e1b1742ca8dcf8ebd38c53801/audioop_lts-0.2.2-cp313-abi3-win32.whl", hash = "sha256:3bcddaaf6cc5935a300a8387c99f7a7fbbe212a11568ec6cf6e4bc458c048636", size = 26185, upload-time = "2025-08-05T16:42:37.04Z" }, + { url = "https://files.pythonhosted.org/packages/34/a5/9d78fdb5b844a83da8a71226c7bdae7cc638861085fff7a1d707cb4823fa/audioop_lts-0.2.2-cp313-abi3-win_amd64.whl", hash = "sha256:a2c2a947fae7d1062ef08c4e369e0ba2086049a5e598fda41122535557012e9e", size = 30503, upload-time = "2025-08-05T16:42:38.427Z" }, + { url = "https://files.pythonhosted.org/packages/34/25/20d8fde083123e90c61b51afb547bb0ea7e77bab50d98c0ab243d02a0e43/audioop_lts-0.2.2-cp313-abi3-win_arm64.whl", hash = "sha256:5f93a5db13927a37d2d09637ccca4b2b6b48c19cd9eda7b17a2e9f77edee6a6f", size = 24173, upload-time = "2025-08-05T16:42:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/5c/73/413b5a2804091e2c7d5def1d618e4837f1cb82464e230f827226278556b7/audioop_lts-0.2.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f9ee9b52f5f857fbaf9d605a360884f034c92c1c23021fb90b2e39b8e64bede6", size = 47104, upload-time = "2025-08-05T16:42:58.518Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/daa3308dc6593944410c2c68306a5e217f5c05b70a12e70228e7dd42dc5c/audioop_lts-0.2.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:49ee1a41738a23e98d98b937a0638357a2477bc99e61b0f768a8f654f45d9b7a", size = 27754, upload-time = "2025-08-05T16:43:00.132Z" }, + { url = "https://files.pythonhosted.org/packages/4e/86/c2e0f627168fcf61781a8f72cab06b228fe1da4b9fa4ab39cfb791b5836b/audioop_lts-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5b00be98ccd0fc123dcfad31d50030d25fcf31488cde9e61692029cd7394733b", size = 27332, upload-time = "2025-08-05T16:43:01.666Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bd/35dce665255434f54e5307de39e31912a6f902d4572da7c37582809de14f/audioop_lts-0.2.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6d2e0f9f7a69403e388894d4ca5ada5c47230716a03f2847cfc7bd1ecb589d6", size = 92396, upload-time = "2025-08-05T16:43:02.991Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d2/deeb9f51def1437b3afa35aeb729d577c04bcd89394cb56f9239a9f50b6f/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9b0b8a03ef474f56d1a842af1a2e01398b8f7654009823c6d9e0ecff4d5cfbf", size = 91811, upload-time = "2025-08-05T16:43:04.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/3b/09f8b35b227cee28cc8231e296a82759ed80c1a08e349811d69773c48426/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2b267b70747d82125f1a021506565bdc5609a2b24bcb4773c16d79d2bb260bbd", size = 100483, upload-time = "2025-08-05T16:43:05.085Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/05b48a935cf3b130c248bfdbdea71ce6437f5394ee8533e0edd7cfd93d5e/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0337d658f9b81f4cd0fdb1f47635070cc084871a3d4646d9de74fdf4e7c3d24a", size = 103885, upload-time = "2025-08-05T16:43:06.197Z" }, + { url = "https://files.pythonhosted.org/packages/83/80/186b7fce6d35b68d3d739f228dc31d60b3412105854edb975aa155a58339/audioop_lts-0.2.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:167d3b62586faef8b6b2275c3218796b12621a60e43f7e9d5845d627b9c9b80e", size = 84899, upload-time = "2025-08-05T16:43:07.291Z" }, + { url = "https://files.pythonhosted.org/packages/49/89/c78cc5ac6cb5828f17514fb12966e299c850bc885e80f8ad94e38d450886/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0d9385e96f9f6da847f4d571ce3cb15b5091140edf3db97276872647ce37efd7", size = 89998, upload-time = "2025-08-05T16:43:08.335Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4b/6401888d0c010e586c2ca50fce4c903d70a6bb55928b16cfbdfd957a13da/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:48159d96962674eccdca9a3df280e864e8ac75e40a577cc97c5c42667ffabfc5", size = 99046, upload-time = "2025-08-05T16:43:09.367Z" }, + { url = "https://files.pythonhosted.org/packages/de/f8/c874ca9bb447dae0e2ef2e231f6c4c2b0c39e31ae684d2420b0f9e97ee68/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8fefe5868cd082db1186f2837d64cfbfa78b548ea0d0543e9b28935ccce81ce9", size = 84843, upload-time = "2025-08-05T16:43:10.749Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c0/0323e66f3daebc13fd46b36b30c3be47e3fc4257eae44f1e77eb828c703f/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:58cf54380c3884fb49fdd37dfb7a772632b6701d28edd3e2904743c5e1773602", size = 94490, upload-time = "2025-08-05T16:43:12.131Z" }, + { url = "https://files.pythonhosted.org/packages/98/6b/acc7734ac02d95ab791c10c3f17ffa3584ccb9ac5c18fd771c638ed6d1f5/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:088327f00488cdeed296edd9215ca159f3a5a5034741465789cad403fcf4bec0", size = 92297, upload-time = "2025-08-05T16:43:13.139Z" }, + { url = "https://files.pythonhosted.org/packages/13/c3/c3dc3f564ce6877ecd2a05f8d751b9b27a8c320c2533a98b0c86349778d0/audioop_lts-0.2.2-cp314-cp314t-win32.whl", hash = "sha256:068aa17a38b4e0e7de771c62c60bbca2455924b67a8814f3b0dee92b5820c0b3", size = 27331, upload-time = "2025-08-05T16:43:14.19Z" }, + { url = "https://files.pythonhosted.org/packages/72/bb/b4608537e9ffcb86449091939d52d24a055216a36a8bf66b936af8c3e7ac/audioop_lts-0.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:a5bf613e96f49712073de86f20dbdd4014ca18efd4d34ed18c75bd808337851b", size = 31697, upload-time = "2025-08-05T16:43:15.193Z" }, + { url = "https://files.pythonhosted.org/packages/f6/22/91616fe707a5c5510de2cac9b046a30defe7007ba8a0c04f9c08f27df312/audioop_lts-0.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:b492c3b040153e68b9fdaff5913305aaaba5bb433d8a7f73d5cf6a64ed3cc1dd", size = 25206, upload-time = "2025-08-05T16:43:16.444Z" }, +] + +[[package]] +name = "backoff" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba", size = 17001, upload-time = "2022-10-05T19:19:32.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148, upload-time = "2022-10-05T19:19:30.546Z" }, +] + +[[package]] +name = "brotli" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/16/c92ca344d646e71a43b8bb353f0a6490d7f6e06210f8554c8f874e454285/brotli-1.2.0.tar.gz", hash = "sha256:e310f77e41941c13340a95976fe66a8a95b01e783d430eeaf7a2f87e0a57dd0a", size = 7388632, upload-time = "2025-11-05T18:39:42.86Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/e1/298c2ddf786bb7347a1cd71d63a347a79e5712a7c0cba9e3c3458ebd976f/brotli-1.2.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6c12dad5cd04530323e723787ff762bac749a7b256a5bece32b2243dd5c27b21", size = 863080, upload-time = "2025-11-05T18:38:45.503Z" }, + { url = "https://files.pythonhosted.org/packages/84/0c/aac98e286ba66868b2b3b50338ffbd85a35c7122e9531a73a37a29763d38/brotli-1.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3219bd9e69868e57183316ee19c84e03e8f8b5a1d1f2667e1aa8c2f91cb061ac", size = 445453, upload-time = "2025-11-05T18:38:46.433Z" }, + { url = "https://files.pythonhosted.org/packages/ec/f1/0ca1f3f99ae300372635ab3fe2f7a79fa335fee3d874fa7f9e68575e0e62/brotli-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:963a08f3bebd8b75ac57661045402da15991468a621f014be54e50f53a58d19e", size = 1528168, upload-time = "2025-11-05T18:38:47.371Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a6/2ebfc8f766d46df8d3e65b880a2e220732395e6d7dc312c1e1244b0f074a/brotli-1.2.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9322b9f8656782414b37e6af884146869d46ab85158201d82bab9abbcb971dc7", size = 1627098, upload-time = "2025-11-05T18:38:48.385Z" }, + { url = "https://files.pythonhosted.org/packages/f3/2f/0976d5b097ff8a22163b10617f76b2557f15f0f39d6a0fe1f02b1a53e92b/brotli-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cf9cba6f5b78a2071ec6fb1e7bd39acf35071d90a81231d67e92d637776a6a63", size = 1419861, upload-time = "2025-11-05T18:38:49.372Z" }, + { url = "https://files.pythonhosted.org/packages/9c/97/d76df7176a2ce7616ff94c1fb72d307c9a30d2189fe877f3dd99af00ea5a/brotli-1.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7547369c4392b47d30a3467fe8c3330b4f2e0f7730e45e3103d7d636678a808b", size = 1484594, upload-time = "2025-11-05T18:38:50.655Z" }, + { url = "https://files.pythonhosted.org/packages/d3/93/14cf0b1216f43df5609f5b272050b0abd219e0b54ea80b47cef9867b45e7/brotli-1.2.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:fc1530af5c3c275b8524f2e24841cbe2599d74462455e9bae5109e9ff42e9361", size = 1593455, upload-time = "2025-11-05T18:38:51.624Z" }, + { url = "https://files.pythonhosted.org/packages/b3/73/3183c9e41ca755713bdf2cc1d0810df742c09484e2e1ddd693bee53877c1/brotli-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d2d085ded05278d1c7f65560aae97b3160aeb2ea2c0b3e26204856beccb60888", size = 1488164, upload-time = "2025-11-05T18:38:53.079Z" }, + { url = "https://files.pythonhosted.org/packages/64/6a/0c78d8f3a582859236482fd9fa86a65a60328a00983006bcf6d83b7b2253/brotli-1.2.0-cp314-cp314-win32.whl", hash = "sha256:832c115a020e463c2f67664560449a7bea26b0c1fdd690352addad6d0a08714d", size = 339280, upload-time = "2025-11-05T18:38:54.02Z" }, + { url = "https://files.pythonhosted.org/packages/f5/10/56978295c14794b2c12007b07f3e41ba26acda9257457d7085b0bb3bb90c/brotli-1.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:e7c0af964e0b4e3412a0ebf341ea26ec767fa0b4cf81abb5e897c9338b5ad6a3", size = 375639, upload-time = "2025-11-05T18:38:55.67Z" }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" }, + { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" }, + { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" }, + { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" }, + { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" }, + { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" }, + { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" }, + { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" }, + { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" }, + { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" }, + { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" }, + { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" }, + { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" }, + { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" }, + { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" }, + { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" }, +] + +[[package]] +name = "click" +version = "8.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/75/31212c6bf2503fdf920d87fee5d7a86a2e3bcf444984126f13d8e4016804/click-8.3.2.tar.gz", hash = "sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5", size = 302856, upload-time = "2026-04-03T19:14:45.118Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/20/71885d8b97d4f3dde17b1fdb92dbd4908b00541c5a3379787137285f602e/click-8.3.2-py3-none-any.whl", hash = "sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d", size = 108379, upload-time = "2026-04-03T19:14:43.505Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "debugpy" +version = "1.8.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/b7/cd8080344452e4874aae67c40d8940e2b4d47b01601a8fd9f44786c757c7/debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33", size = 1645207, upload-time = "2026-01-29T23:03:28.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/2e/f6cb9a8a13f5058f0a20fe09711a7b726232cd5a78c6a7c05b2ec726cff9/debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173", size = 2538066, upload-time = "2026-01-29T23:03:54.999Z" }, + { url = "https://files.pythonhosted.org/packages/c5/56/6ddca50b53624e1ca3ce1d1e49ff22db46c47ea5fb4c0cc5c9b90a616364/debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad", size = 4269425, upload-time = "2026-01-29T23:03:56.518Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d9/d64199c14a0d4c476df46c82470a3ce45c8d183a6796cfb5e66533b3663c/debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f", size = 5331407, upload-time = "2026-01-29T23:03:58.481Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d9/1f07395b54413432624d61524dfd98c1a7c7827d2abfdb8829ac92638205/debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be", size = 5372521, upload-time = "2026-01-29T23:03:59.864Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c3/7f67dea8ccf8fdcb9c99033bbe3e90b9e7395415843accb81428c441be2d/debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7", size = 5337658, upload-time = "2026-01-29T23:04:17.404Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, +] + +[[package]] +name = "docstring-parser" +version = "0.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/4d/f332313098c1de1b2d2ff91cf2674415cc7cddab2ca1b01ae29774bd5fdf/docstring_parser-0.18.0.tar.gz", hash = "sha256:292510982205c12b1248696f44959db3cdd1740237a968ea1e2e7a900eeb2015", size = 29341, upload-time = "2026-04-14T04:09:19.867Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl", hash = "sha256:b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b", size = 22484, upload-time = "2026-04-14T04:09:18.638Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastapi" +version = "0.136.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4e/d9/e66315807e41e69e7f6a1b42a162dada2f249c5f06ad3f1a95f84ab336ef/fastapi-0.136.0.tar.gz", hash = "sha256:cf08e067cc66e106e102d9ba659463abfac245200752f8a5b7b1e813de4ff73e", size = 396607, upload-time = "2026-04-16T11:47:13.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/a3/0bd5f0cdb0bbc92650e8dc457e9250358411ee5d1b65e42b6632387daf81/fastapi-0.136.0-py3-none-any.whl", hash = "sha256:8793d44ec7378e2be07f8a013cf7f7aa47d6327d0dfe9804862688ec4541a6b4", size = 117556, upload-time = "2026-04-16T11:47:11.922Z" }, +] + +[[package]] +name = "filelock" +version = "3.28.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/17/6e8890271880903e3538660a21d63a6c1fea969ac71d0d6b608b78727fa9/filelock-3.28.0.tar.gz", hash = "sha256:4ed1010aae813c4ee8d9c660e4792475ee60c4a0ba76073ceaf862bd317e3ca6", size = 56474, upload-time = "2026-04-14T22:54:33.625Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/21/2f728888c45033d34a417bfcd248ea2564c9e08ab1bfd301377cf05d5586/filelock-3.28.0-py3-none-any.whl", hash = "sha256:de9af6712788e7171df1b28b15eba2446c69721433fa427a9bee07b17820a9db", size = 39189, upload-time = "2026-04-14T22:54:32.037Z" }, +] + +[[package]] +name = "filetype" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/29/745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1/filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb", size = 998020, upload-time = "2022-11-02T17:34:04.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970, upload-time = "2022-11-02T17:34:01.425Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/cf/b50ddf667c15276a9ab15a70ef5f257564de271957933ffea49d2cdbcdfb/fsspec-2026.3.0.tar.gz", hash = "sha256:1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41", size = 313547, upload-time = "2026-03-27T19:11:14.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl", hash = "sha256:d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4", size = 202595, upload-time = "2026-03-27T19:11:13.595Z" }, +] + +[[package]] +name = "gradio" +version = "6.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "audioop-lts" }, + { name = "brotli" }, + { name = "fastapi" }, + { name = "gradio-client" }, + { name = "groovy" }, + { name = "hf-gradio" }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "numpy" }, + { name = "orjson" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "pydantic" }, + { name = "pydub" }, + { name = "python-multipart" }, + { name = "pytz" }, + { name = "pyyaml" }, + { name = "safehttpx" }, + { name = "semantic-version" }, + { name = "starlette" }, + { name = "tomlkit" }, + { name = "typer" }, + { name = "typing-extensions" }, + { name = "uvicorn" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/a3/d7b0f752d010a9ccf7ab938d787c912d7ebb43cd3424754e0266a53b4273/gradio-6.12.0.tar.gz", hash = "sha256:5a7808e7ef82cdcb711608275d6779d3368072f93777d649661ffae968af8107", size = 35955906, upload-time = "2026-04-10T20:57:02.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/30/d7c61ec8c3f4ad337e20090d771c20d4b61e84aede8d92dc784ab32efa3c/gradio-6.12.0-py3-none-any.whl", hash = "sha256:5587f9ab7b8bfb757e0de9dffebadc63bb354dec5dde22fd7f0266df4b8bd271", size = 19633159, upload-time = "2026-04-10T20:56:59.084Z" }, +] + +[[package]] +name = "gradio-client" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fsspec" }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "packaging" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/5f/d480fb5e61cf47eaae6c4de2c84a5f130ebcaa2a0a4f36f9f494f53eea35/gradio_client-2.4.1.tar.gz", hash = "sha256:c08783eb3dbdfd6d567bfd912a432fd8ab37b9e633b03e794cc1a0fa105a6d31", size = 58611, upload-time = "2026-04-10T20:57:13.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/72/a4611ed242a7936d38bd5262c6071fff8dda86cab1c06172a1e372783772/gradio_client-2.4.1-py3-none-any.whl", hash = "sha256:e6cef91ddee06e6a10788c5119977a35aee987968e7a87b0c4716809172c33d4", size = 59563, upload-time = "2026-04-10T20:57:11.774Z" }, +] + +[[package]] +name = "groovy" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/36/bbdede67400277bef33d3ec0e6a31750da972c469f75966b4930c753218f/groovy-0.1.2.tar.gz", hash = "sha256:25c1dc09b3f9d7e292458aa762c6beb96ea037071bf5e917fc81fb78d2231083", size = 17325, upload-time = "2025-02-28T20:24:56.068Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/27/3d6dcadc8a3214d8522c1e7f6a19554e33659be44546d44a2f7572ac7d2a/groovy-0.1.2-py3-none-any.whl", hash = "sha256:7f7975bab18c729a257a8b1ae9dcd70b7cafb1720481beae47719af57c35fa64", size = 14090, upload-time = "2025-02-28T20:24:55.152Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "haystack-ai" +version = "2.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docstring-parser" }, + { name = "filetype" }, + { name = "haystack-experimental" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "lazy-imports" }, + { name = "markupsafe" }, + { name = "more-itertools" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "openai" }, + { name = "posthog" }, + { name = "pydantic" }, + { name = "python-dateutil" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/b2/e95314168e6e67f746eeab21a3e5bbedb5a889dc3174fccb09d928bc70bb/haystack_ai-2.27.0.tar.gz", hash = "sha256:69707af91511eb37a1a9c8e254bcf9a01378544ca06d811821766ebaf21ec40f", size = 480483, upload-time = "2026-04-01T13:49:47.004Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/68/b09f66449a0b0f74d7ad3fc8ce733d1713d8e5dcd57f8ce5fafabb348d0c/haystack_ai-2.27.0-py3-none-any.whl", hash = "sha256:df50f442e663adb23f62870da7d62c16cf552521787e062f4fc081a7d64bdead", size = 698153, upload-time = "2026-04-01T13:49:45.208Z" }, +] + +[[package]] +name = "haystack-experimental" +version = "0.19.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "haystack-ai" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/a3/02eb86716f4856072feb852555f2d23855bb20c993264dcf4e83dfe87a8a/haystack_experimental-0.19.0.tar.gz", hash = "sha256:194f9074f9184a20d2f4efa7b5082dd33118bc886f87937d13e33616cd549067", size = 45328, upload-time = "2026-02-05T08:31:33.862Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/c4/6719e1b03b72ab31729b556a47fe3df1ab7fa233b1d01182f0c5ddadfda6/haystack_experimental-0.19.0-py3-none-any.whl", hash = "sha256:ebe1691a4b8d06f934bad792ff95fb4b6858a2ae08f08519e9cf35b7b439b4bd", size = 63150, upload-time = "2026-02-05T08:31:34.683Z" }, +] + +[[package]] +name = "hf-gradio" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gradio-client" }, + { name = "typer" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/2d/afff2ee87e75d8eb85c92bb8cf0e15b05c23c2ebd8fd8dec781d8601ed7f/hf_gradio-0.4.1-py3-none-any.whl", hash = "sha256:76b8cb8be6abe62d74c1ad2d35b42f0629db89aa9e1a8d033cecfe7c856eeab3", size = 4482, upload-time = "2026-04-17T19:53:31.827Z" }, +] + +[[package]] +name = "hf-xet" +version = "1.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477, upload-time = "2026-03-31T22:40:07.874Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/36/3e8f85ca9fe09b8de2b2e10c63b3b3353d7dda88a0b3d426dffbe7b8313b/hf_xet-1.4.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6", size = 3801019, upload-time = "2026-03-31T22:39:56.651Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9c/defb6cb1de28bccb7bd8d95f6e60f72a3d3fa4cb3d0329c26fb9a488bfe7/hf_xet-1.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2", size = 3558746, upload-time = "2026-03-31T22:39:54.766Z" }, + { url = "https://files.pythonhosted.org/packages/c1/bd/8d001191893178ff8e826e46ad5299446e62b93cd164e17b0ffea08832ec/hf_xet-1.4.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791", size = 4207692, upload-time = "2026-03-31T22:39:46.246Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/6790b402803250e9936435613d3a78b9aaeee7973439f0918848dde58309/hf_xet-1.4.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653", size = 3986281, upload-time = "2026-03-31T22:39:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/51/56/ea62552fe53db652a9099eda600b032d75554d0e86c12a73824bfedef88b/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd", size = 4187414, upload-time = "2026-03-31T22:40:04.951Z" }, + { url = "https://files.pythonhosted.org/packages/7d/f5/bc1456d4638061bea997e6d2db60a1a613d7b200e0755965ec312dc1ef79/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8", size = 4424368, upload-time = "2026-03-31T22:40:06.347Z" }, + { url = "https://files.pythonhosted.org/packages/e4/76/ab597bae87e1f06d18d3ecb8ed7f0d3c9a37037fc32ce76233d369273c64/hf_xet-1.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07", size = 3672280, upload-time = "2026-03-31T22:40:16.401Z" }, + { url = "https://files.pythonhosted.org/packages/62/05/2e462d34e23a09a74d73785dbed71cc5dbad82a72eee2ad60a72a554155d/hf_xet-1.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075", size = 3528945, upload-time = "2026-03-31T22:40:14.995Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9f/9c23e4a447b8f83120798f9279d0297a4d1360bdbf59ef49ebec78fe2545/hf_xet-1.4.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025", size = 3805048, upload-time = "2026-03-31T22:39:53.105Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178, upload-time = "2026-03-31T22:39:51.295Z" }, + { url = "https://files.pythonhosted.org/packages/df/9a/a24b26dc8a65f0ecc0fe5be981a19e61e7ca963b85e062c083f3a9100529/hf_xet-1.4.3-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08", size = 4212320, upload-time = "2026-03-31T22:39:42.922Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/46d493db155d2ee2801b71fb1b0fd67696359047fdd8caee2c914cc50c79/hf_xet-1.4.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f", size = 3991546, upload-time = "2026-03-31T22:39:41.335Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f5/067363e1c96c6b17256910830d1b54099d06287e10f4ec6ec4e7e08371fc/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac", size = 4193200, upload-time = "2026-03-31T22:40:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/42/4b/53951592882d9c23080c7644542fda34a3813104e9e11fa1a7d82d419cb8/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba", size = 4429392, upload-time = "2026-03-31T22:40:03.492Z" }, + { url = "https://files.pythonhosted.org/packages/8a/21/75a6c175b4e79662ad8e62f46a40ce341d8d6b206b06b4320d07d55b188c/hf_xet-1.4.3-cp37-abi3-win_amd64.whl", hash = "sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021", size = 3677359, upload-time = "2026-03-31T22:40:13.619Z" }, + { url = "https://files.pythonhosted.org/packages/8a/7c/44314ecd0e89f8b2b51c9d9e5e7a60a9c1c82024ac471d415860557d3cd8/hf_xet-1.4.3-cp37-abi3-win_arm64.whl", hash = "sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47", size = 3533664, upload-time = "2026-03-31T22:40:12.152Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/89/e7aa12d8a6b9259bed10671abb25ae6fa437c0f88a86ecbf59617bae7759/huggingface_hub-1.11.0.tar.gz", hash = "sha256:15fb3713c7f9cdff7b808a94fd91664f661ab142796bb48c9cd9493e8d166278", size = 761749, upload-time = "2026-04-16T13:07:39.73Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/02/4f3f8997d1ea7fe0146b343e5e14bd065fa87af790d07e5576d31b31cc18/huggingface_hub-1.11.0-py3-none-any.whl", hash = "sha256:42a6de0afbfeb5e022222d36398f029679db4eb4778801aafda32257ae9131ab", size = 645499, upload-time = "2026-04-16T13:07:37.716Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "ipykernel" +version = "7.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e", size = 176046, upload-time = "2026-02-06T16:43:27.403Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661", size = 118788, upload-time = "2026-02-06T16:43:25.149Z" }, +] + +[[package]] +name = "ipython" +version = "9.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/73/7114f80a8f9cabdb13c27732dce24af945b2923dcab80723602f7c8bc2d8/ipython-9.12.0.tar.gz", hash = "sha256:01daa83f504b693ba523b5a407246cabde4eb4513285a3c6acaff11a66735ee4", size = 4428879, upload-time = "2026-03-27T09:42:45.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/22/906c8108974c673ebef6356c506cebb6870d48cedea3c41e949e2dd556bb/ipython-9.12.0-py3-none-any.whl", hash = "sha256:0f2701e8ee86e117e37f50563205d36feaa259d2e08d4a6bc6b6d74b18ce128d", size = 625661, upload-time = "2026-03-27T09:42:42.831Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jiter" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6e/c1/0cddc6eb17d4c53a99840953f95dd3accdc5cfc7a337b0e9b26476276be9/jiter-0.14.0.tar.gz", hash = "sha256:e8a39e66dac7153cf3f964a12aad515afa8d74938ec5cc0018adcdae5367c79e", size = 165725, upload-time = "2026-04-10T14:28:42.01Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/1e/354ed92461b165bd581f9ef5150971a572c873ec3b68a916d5aa91da3cc2/jiter-0.14.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:6f396837fc7577871ca8c12edaf239ed9ccef3bbe39904ae9b8b63ce0a48b140", size = 315277, upload-time = "2026-04-10T14:27:18.109Z" }, + { url = "https://files.pythonhosted.org/packages/a6/95/8c7c7028aa8636ac21b7a55faef3e34215e6ed0cbf5ae58258427f621aa3/jiter-0.14.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a4d50ea3d8ba4176f79754333bd35f1bbcd28e91adc13eb9b7ca91bc52a6cef9", size = 315923, upload-time = "2026-04-10T14:27:19.603Z" }, + { url = "https://files.pythonhosted.org/packages/47/40/e2a852a44c4a089f2681a16611b7ce113224a80fd8504c46d78491b47220/jiter-0.14.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce17f8a050447d1b4153bda4fb7d26e6a9e74eb4f4a41913f30934c5075bf615", size = 344943, upload-time = "2026-04-10T14:27:21.262Z" }, + { url = "https://files.pythonhosted.org/packages/fc/1f/670f92adee1e9895eac41e8a4d623b6da68c4d46249d8b556b60b63f949e/jiter-0.14.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4f1c4b125e1652aefbc2e2c1617b60a160ab789d180e3d423c41439e5f32850", size = 369725, upload-time = "2026-04-10T14:27:22.766Z" }, + { url = "https://files.pythonhosted.org/packages/01/2f/541c9ba567d05de1c4874a0f8f8c5e3fd78e2b874266623da9a775cf46e0/jiter-0.14.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be808176a6a3a14321d18c603f2d40741858a7c4fc982f83232842689fe86dd9", size = 461210, upload-time = "2026-04-10T14:27:24.315Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a9/c31cbec09627e0d5de7aeaec7690dba03e090caa808fefd8133137cf45bc/jiter-0.14.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26679d58ba816f88c3849306dd58cb863a90a1cf352cdd4ef67e30ccf8a77994", size = 380002, upload-time = "2026-04-10T14:27:26.155Z" }, + { url = "https://files.pythonhosted.org/packages/50/02/3c05c1666c41904a2f607475a73e7a4763d1cbde2d18229c4f85b22dc253/jiter-0.14.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80381f5a19af8fa9aef743f080e34f6b25ebd89656475f8cf0470ec6157052aa", size = 354678, upload-time = "2026-04-10T14:27:27.701Z" }, + { url = "https://files.pythonhosted.org/packages/7d/97/e15b33545c2b13518f560d695f974b9891b311641bdcf178d63177e8801e/jiter-0.14.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:004df5fdb8ecbd6d99f3227df18ba1a259254c4359736a2e6f036c944e02d7c5", size = 358920, upload-time = "2026-04-10T14:27:29.256Z" }, + { url = "https://files.pythonhosted.org/packages/ad/d2/8b1461def6b96ba44530df20d07ef7a1c7da22f3f9bf1727e2d611077bf1/jiter-0.14.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cff5708f7ed0fa098f2b53446c6fa74c48469118e5cd7497b4f1cd569ab06928", size = 394512, upload-time = "2026-04-10T14:27:31.344Z" }, + { url = "https://files.pythonhosted.org/packages/e3/88/837566dd6ed6e452e8d3205355afd484ce44b2533edfa4ed73a298ea893e/jiter-0.14.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:2492e5f06c36a976d25c7cc347a60e26d5470178d44cde1b9b75e60b4e519f28", size = 521120, upload-time = "2026-04-10T14:27:33.299Z" }, + { url = "https://files.pythonhosted.org/packages/89/6b/b00b45c4d1b4c031777fe161d620b755b5b02cdade1e316dcb46e4471d63/jiter-0.14.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7609cfbe3a03d37bfdbf5052012d5a879e72b83168a363deae7b3a26564d57de", size = 553668, upload-time = "2026-04-10T14:27:34.868Z" }, + { url = "https://files.pythonhosted.org/packages/ad/d8/6fe5b42011d19397433d345716eac16728ac241862a2aac9c91923c7509a/jiter-0.14.0-cp314-cp314-win32.whl", hash = "sha256:7282342d32e357543565286b6450378c3cd402eea333fc1ebe146f1fabb306fc", size = 207001, upload-time = "2026-04-10T14:27:36.455Z" }, + { url = "https://files.pythonhosted.org/packages/e5/43/5c2e08da1efad5e410f0eaaabeadd954812612c33fbbd8fd5328b489139d/jiter-0.14.0-cp314-cp314-win_amd64.whl", hash = "sha256:bd77945f38866a448e73b0b7637366afa814d4617790ecd88a18ca74377e6c02", size = 202187, upload-time = "2026-04-10T14:27:38Z" }, + { url = "https://files.pythonhosted.org/packages/aa/1f/6e39ac0b4cdfa23e606af5b245df5f9adaa76f35e0c5096790da430ca506/jiter-0.14.0-cp314-cp314-win_arm64.whl", hash = "sha256:f2d4c61da0821ee42e0cdf5489da60a6d074306313a377c2b35af464955a3611", size = 192257, upload-time = "2026-04-10T14:27:39.504Z" }, + { url = "https://files.pythonhosted.org/packages/05/57/7dbc0ffbbb5176a27e3518716608aa464aee2e2887dc938f0b900a120449/jiter-0.14.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1bf7ff85517dd2f20a5750081d2b75083c1b269cf75afc7511bdf1f9548beb3b", size = 323441, upload-time = "2026-04-10T14:27:41.039Z" }, + { url = "https://files.pythonhosted.org/packages/83/6e/7b3314398d8983f06b557aa21b670511ec72d3b79a68ee5e4d9bff972286/jiter-0.14.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8ef8791c3e78d6c6b157c6d360fbb5c715bebb8113bc6a9303c5caff012754a", size = 348109, upload-time = "2026-04-10T14:27:42.552Z" }, + { url = "https://files.pythonhosted.org/packages/ae/4f/8dc674bcd7db6dba566de73c08c763c337058baff1dbeb34567045b27cdc/jiter-0.14.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e74663b8b10da1fe0f4e4703fd7980d24ad17174b6bb35d8498d6e3ebce2ae6a", size = 368328, upload-time = "2026-04-10T14:27:44.574Z" }, + { url = "https://files.pythonhosted.org/packages/3b/5f/188e09a1f20906f98bbdec44ed820e19f4e8eb8aff88b9d1a5a497587ff3/jiter-0.14.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1aca29ba52913f78362ec9c2da62f22cdc4c3083313403f90c15460979b84d9b", size = 463301, upload-time = "2026-04-10T14:27:46.717Z" }, + { url = "https://files.pythonhosted.org/packages/ac/f0/19046ef965ed8f349e8554775bb12ff4352f443fbe12b95d31f575891256/jiter-0.14.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b39b7d87a952b79949af5fef44d2544e58c21a28da7f1bae3ef166455c61746", size = 378891, upload-time = "2026-04-10T14:27:48.32Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c3/da43bd8431ee175695777ee78cf0e93eacbb47393ff493f18c45231b427d/jiter-0.14.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d918a68b26e9fab068c2b5453577ef04943ab2807b9a6275df2a812599a310", size = 360749, upload-time = "2026-04-10T14:27:49.88Z" }, + { url = "https://files.pythonhosted.org/packages/72/26/e054771be889707c6161dbdec9c23d33a9ec70945395d70f07cfea1e9a6f/jiter-0.14.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:b08997c35aee1201c1a5361466a8fb9162d03ae7bf6568df70b6c859f1e654a4", size = 358526, upload-time = "2026-04-10T14:27:51.504Z" }, + { url = "https://files.pythonhosted.org/packages/c3/0f/7bea65ea2a6d91f2bf989ff11a18136644392bf2b0497a1fa50934c30a9c/jiter-0.14.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:260bf7ca20704d58d41f669e5e9fe7fe2fa72901a6b324e79056f5d52e9c9be2", size = 393926, upload-time = "2026-04-10T14:27:53.368Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/b1ff7d70deef61ac0b7c6c2f12d2ace950cdeecb4fdc94500a0926802857/jiter-0.14.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:37826e3df29e60f30a382f9294348d0238ef127f4b5d7f5f8da78b5b9e050560", size = 521052, upload-time = "2026-04-10T14:27:55.058Z" }, + { url = "https://files.pythonhosted.org/packages/0b/7b/3b0649983cbaf15eda26a414b5b1982e910c67bd6f7b1b490f3cfc76896a/jiter-0.14.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:645be49c46f2900937ba0eaf871ad5183c96858c0af74b6becc7f4e367e36e06", size = 553716, upload-time = "2026-04-10T14:27:57.269Z" }, + { url = "https://files.pythonhosted.org/packages/97/f8/33d78c83bd93ae0c0af05293a6660f88a1977caef39a6d72a84afab94ce0/jiter-0.14.0-cp314-cp314t-win32.whl", hash = "sha256:2f7877ed45118de283786178eceaf877110abacd04fde31efff3940ae9672674", size = 207957, upload-time = "2026-04-10T14:27:59.285Z" }, + { url = "https://files.pythonhosted.org/packages/d6/ac/2b760516c03e2227826d1f7025d89bf6bf6357a28fe75c2a2800873c50bf/jiter-0.14.0-cp314-cp314t-win_amd64.whl", hash = "sha256:14c0cb10337c49f5eafe8e7364daca5e29a020ea03580b8f8e6c597fed4e1588", size = 204690, upload-time = "2026-04-10T14:28:00.962Z" }, + { url = "https://files.pythonhosted.org/packages/dc/2e/a44c20c58aeed0355f2d326969a181696aeb551a25195f47563908a815be/jiter-0.14.0-cp314-cp314t-win_arm64.whl", hash = "sha256:5419d4aa2024961da9fe12a9cfe7484996735dca99e8e090b5c88595ef1951ff", size = 191338, upload-time = "2026-04-10T14:28:02.853Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter-client" +version = "8.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/e4/ba649102a3bc3fbca54e7239fb924fd434c766f855693d86de0b1f2bec81/jupyter_client-8.8.0.tar.gz", hash = "sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e", size = 348020, upload-time = "2026-01-08T13:55:47.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/0b/ceb7694d864abc0a047649aec263878acb9f792e1fec3e676f22dc9015e3/jupyter_client-8.8.0-py3-none-any.whl", hash = "sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a", size = 107371, upload-time = "2026-01-08T13:55:45.562Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "lazy-imports" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/25/67/04432aae0c1e2729bff14e1841f4a3fb63a9e354318e66622251487760c3/lazy_imports-1.2.0.tar.gz", hash = "sha256:3c546b3c1e7c4bf62a07f897f6179d9feda6118e71ef6ecc47a339cab3d2e2d9", size = 24470, upload-time = "2025-12-28T13:51:51.218Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/62/60ed24fa8707f10c1c5aef94791252b820be3dd6bdfc6e2fcdb08bc8912f/lazy_imports-1.2.0-py3-none-any.whl", hash = "sha256:97134d6552e2ba16f1a278e316f05313ab73b360e848e40d593d08a5c2406fdf", size = 18681, upload-time = "2025-12-28T13:51:49.802Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "more-itertools" +version = "11.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/f7/139d22fef48ac78127d18e01d80cf1be40236ae489769d17f35c3d425293/more_itertools-11.0.2.tar.gz", hash = "sha256:392a9e1e362cbc106a2457d37cabf9b36e5e12efd4ebff1654630e76597df804", size = 144659, upload-time = "2026-04-09T15:01:33.297Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/98/6af411189d9413534c3eb691182bff1f5c6d44ed2f93f2edfe52a1bbceb8/more_itertools-11.0.2-py3-none-any.whl", hash = "sha256:6e35b35f818b01f691643c6c611bc0902f2e92b46c18fffa77ae1e7c46e912e4", size = 71939, upload-time = "2026-04-09T15:01:32.21Z" }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/9f/b8cef5bffa569759033adda9481211426f12f53299629b410340795c2514/numpy-2.4.4.tar.gz", hash = "sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0", size = 20731587, upload-time = "2026-03-29T13:22:01.298Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/06/c54062f85f673dd5c04cbe2f14c3acb8c8b95e3384869bb8cc9bff8cb9df/numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0", size = 16684353, upload-time = "2026-03-29T13:20:29.504Z" }, + { url = "https://files.pythonhosted.org/packages/4c/39/8a320264a84404c74cc7e79715de85d6130fa07a0898f67fb5cd5bd79908/numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a", size = 14704914, upload-time = "2026-03-29T13:20:33.547Z" }, + { url = "https://files.pythonhosted.org/packages/91/fb/287076b2614e1d1044235f50f03748f31fa287e3dbe6abeb35cdfa351eca/numpy-2.4.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a", size = 5210005, upload-time = "2026-03-29T13:20:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/63/eb/fcc338595309910de6ecabfcef2419a9ce24399680bfb149421fa2df1280/numpy-2.4.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b", size = 6544974, upload-time = "2026-03-29T13:20:39.014Z" }, + { url = "https://files.pythonhosted.org/packages/44/5d/e7e9044032a716cdfaa3fba27a8e874bf1c5f1912a1ddd4ed071bf8a14a6/numpy-2.4.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a", size = 15684591, upload-time = "2026-03-29T13:20:42.146Z" }, + { url = "https://files.pythonhosted.org/packages/98/7c/21252050676612625449b4807d6b695b9ce8a7c9e1c197ee6216c8a65c7c/numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d", size = 16637700, upload-time = "2026-03-29T13:20:46.204Z" }, + { url = "https://files.pythonhosted.org/packages/b1/29/56d2bbef9465db24ef25393383d761a1af4f446a1df9b8cded4fe3a5a5d7/numpy-2.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252", size = 17035781, upload-time = "2026-03-29T13:20:50.242Z" }, + { url = "https://files.pythonhosted.org/packages/e3/2b/a35a6d7589d21f44cea7d0a98de5ddcbb3d421b2622a5c96b1edf18707c3/numpy-2.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f", size = 18362959, upload-time = "2026-03-29T13:20:54.019Z" }, + { url = "https://files.pythonhosted.org/packages/64/c9/d52ec581f2390e0f5f85cbfd80fb83d965fc15e9f0e1aec2195faa142cde/numpy-2.4.4-cp314-cp314-win32.whl", hash = "sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc", size = 6008768, upload-time = "2026-03-29T13:20:56.912Z" }, + { url = "https://files.pythonhosted.org/packages/fa/22/4cc31a62a6c7b74a8730e31a4274c5dc80e005751e277a2ce38e675e4923/numpy-2.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74", size = 12449181, upload-time = "2026-03-29T13:20:59.548Z" }, + { url = "https://files.pythonhosted.org/packages/70/2e/14cda6f4d8e396c612d1bf97f22958e92148801d7e4f110cabebdc0eef4b/numpy-2.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb", size = 10496035, upload-time = "2026-03-29T13:21:02.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e8/8fed8c8d848d7ecea092dc3469643f9d10bc3a134a815a3b033da1d2039b/numpy-2.4.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e", size = 14824958, upload-time = "2026-03-29T13:21:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/05/1a/d8007a5138c179c2bf33ef44503e83d70434d2642877ee8fbb230e7c0548/numpy-2.4.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113", size = 5330020, upload-time = "2026-03-29T13:21:08.635Z" }, + { url = "https://files.pythonhosted.org/packages/99/64/ffb99ac6ae93faf117bcbd5c7ba48a7f45364a33e8e458545d3633615dda/numpy-2.4.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d", size = 6650758, upload-time = "2026-03-29T13:21:10.949Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6e/795cc078b78a384052e73b2f6281ff7a700e9bf53bcce2ee579d4f6dd879/numpy-2.4.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d", size = 15729948, upload-time = "2026-03-29T13:21:14.047Z" }, + { url = "https://files.pythonhosted.org/packages/5f/86/2acbda8cc2af5f3d7bfc791192863b9e3e19674da7b5e533fded124d1299/numpy-2.4.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f", size = 16679325, upload-time = "2026-03-29T13:21:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/bc/59/cafd83018f4aa55e0ac6fa92aa066c0a1877b77a615ceff1711c260ffae8/numpy-2.4.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0", size = 17084883, upload-time = "2026-03-29T13:21:21.106Z" }, + { url = "https://files.pythonhosted.org/packages/f0/85/a42548db84e65ece46ab2caea3d3f78b416a47af387fcbb47ec28e660dc2/numpy-2.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150", size = 18403474, upload-time = "2026-03-29T13:21:24.828Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ad/483d9e262f4b831000062e5d8a45e342166ec8aaa1195264982bca267e62/numpy-2.4.4-cp314-cp314t-win32.whl", hash = "sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871", size = 6155500, upload-time = "2026-03-29T13:21:28.205Z" }, + { url = "https://files.pythonhosted.org/packages/c7/03/2fc4e14c7bd4ff2964b74ba90ecb8552540b6315f201df70f137faa5c589/numpy-2.4.4-cp314-cp314t-win_amd64.whl", hash = "sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e", size = 12637755, upload-time = "2026-03-29T13:21:31.107Z" }, + { url = "https://files.pythonhosted.org/packages/58/78/548fb8e07b1a341746bfbecb32f2c268470f45fa028aacdbd10d9bc73aab/numpy-2.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7", size = 10566643, upload-time = "2026-03-29T13:21:34.339Z" }, +] + +[[package]] +name = "openai" +version = "2.32.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/59/bdcc6b759b8c42dd73afaf5bf8f902c04b37987a5514dbc1c64dba390fef/openai-2.32.0.tar.gz", hash = "sha256:c54b27a9e4cb8d51f0dd94972ffd1a04437efeb259a9e60d8922b8bd26fe55e0", size = 693286, upload-time = "2026-04-15T22:28:19.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/c1/d6e64ccd0536bf616556f0cad2b6d94a8125f508d25cfd814b1d2db4e2f1/openai-2.32.0-py3-none-any.whl", hash = "sha256:4dcc9badeb4bf54ad0d187453742f290226d30150890b7890711bda4f32f192f", size = 1162570, upload-time = "2026-04-15T22:28:17.714Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/1b/2024d06792d0779f9dbc51531b61c24f76c75b9f4ce05e6f3377a1814cea/orjson-3.11.8.tar.gz", hash = "sha256:96163d9cdc5a202703e9ad1b9ae757d5f0ca62f4fa0cc93d1f27b0e180cc404e", size = 5603832, upload-time = "2026-03-31T16:16:27.878Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/35/b01910c3d6b85dc882442afe5060cbf719c7d1fc85749294beda23d17873/orjson-3.11.8-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ec795530a73c269a55130498842aaa762e4a939f6ce481a7e986eeaa790e9da4", size = 229171, upload-time = "2026-03-31T16:16:00.651Z" }, + { url = "https://files.pythonhosted.org/packages/c2/56/c9ec97bd11240abef39b9e5d99a15462809c45f677420fd148a6c5e6295e/orjson-3.11.8-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:c492a0e011c0f9066e9ceaa896fbc5b068c54d365fea5f3444b697ee01bc8625", size = 128746, upload-time = "2026-03-31T16:16:02.673Z" }, + { url = "https://files.pythonhosted.org/packages/3b/e4/66d4f30a90de45e2f0cbd9623588e8ae71eef7679dbe2ae954ed6d66a41f/orjson-3.11.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:883206d55b1bd5f5679ad5e6ddd3d1a5e3cac5190482927fdb8c78fb699193b5", size = 131867, upload-time = "2026-03-31T16:16:04.342Z" }, + { url = "https://files.pythonhosted.org/packages/19/30/2a645fc9286b928675e43fa2a3a16fb7b6764aa78cc719dc82141e00f30b/orjson-3.11.8-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5774c1fdcc98b2259800b683b19599c133baeb11d60033e2095fd9d4667b82db", size = 124664, upload-time = "2026-03-31T16:16:05.837Z" }, + { url = "https://files.pythonhosted.org/packages/db/44/77b9a86d84a28d52ba3316d77737f6514e17118119ade3f91b639e859029/orjson-3.11.8-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ac7381c83dd3d4a6347e6635950aa448f54e7b8406a27c7ecb4a37e9f1ae08b", size = 129701, upload-time = "2026-03-31T16:16:07.407Z" }, + { url = "https://files.pythonhosted.org/packages/b3/ea/eff3d9bfe47e9bc6969c9181c58d9f71237f923f9c86a2d2f490cd898c82/orjson-3.11.8-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14439063aebcb92401c11afc68ee4e407258d2752e62d748b6942dad20d2a70d", size = 141202, upload-time = "2026-03-31T16:16:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/52/c8/90d4b4c60c84d62068d0cf9e4d8f0a4e05e76971d133ac0c60d818d4db20/orjson-3.11.8-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa72e71977bff96567b0f500fc5bfd2fdf915f34052c782a4c6ebbdaa97aa858", size = 127194, upload-time = "2026-03-31T16:16:11.02Z" }, + { url = "https://files.pythonhosted.org/packages/8d/c7/ea9e08d1f0ba981adffb629811148b44774d935171e7b3d780ae43c4c254/orjson-3.11.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7679bc2f01bb0d219758f1a5f87bb7c8a81c0a186824a393b366876b4948e14f", size = 133639, upload-time = "2026-03-31T16:16:13.434Z" }, + { url = "https://files.pythonhosted.org/packages/6c/8c/ddbbfd6ba59453c8fc7fe1d0e5983895864e264c37481b2a791db635f046/orjson-3.11.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:14f7b8fcb35ef403b42fa5ecfa4ed032332a91f3dc7368fbce4184d59e1eae0d", size = 141914, upload-time = "2026-03-31T16:16:14.955Z" }, + { url = "https://files.pythonhosted.org/packages/4e/31/dbfbefec9df060d34ef4962cd0afcb6fa7a9ec65884cb78f04a7859526c3/orjson-3.11.8-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:c2bdf7b2facc80b5e34f48a2d557727d5c5c57a8a450de122ae81fa26a81c1bc", size = 423800, upload-time = "2026-03-31T16:16:16.594Z" }, + { url = "https://files.pythonhosted.org/packages/87/cf/f74e9ae9803d4ab46b163494adba636c6d7ea955af5cc23b8aaa94cfd528/orjson-3.11.8-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ccd7ba1b0605813a0715171d39ec4c314cb97a9c85893c2c5c0c3a3729df38bf", size = 147837, upload-time = "2026-03-31T16:16:18.585Z" }, + { url = "https://files.pythonhosted.org/packages/64/e6/9214f017b5db85e84e68602792f742e5dc5249e963503d1b356bee611e01/orjson-3.11.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cdbc8c9c02463fef4d3c53a9ba3336d05496ec8e1f1c53326a1e4acc11f5c600", size = 136441, upload-time = "2026-03-31T16:16:20.151Z" }, + { url = "https://files.pythonhosted.org/packages/24/dd/3590348818f58f837a75fb969b04cdf187ae197e14d60b5e5a794a38b79d/orjson-3.11.8-cp314-cp314-win32.whl", hash = "sha256:0b57f67710a8cd459e4e54eb96d5f77f3624eba0c661ba19a525807e42eccade", size = 131983, upload-time = "2026-03-31T16:16:21.823Z" }, + { url = "https://files.pythonhosted.org/packages/3f/0f/b6cb692116e05d058f31ceee819c70f097fa9167c82f67fabe7516289abc/orjson-3.11.8-cp314-cp314-win_amd64.whl", hash = "sha256:735e2262363dcbe05c35e3a8869898022af78f89dde9e256924dc02e99fe69ca", size = 127396, upload-time = "2026-03-31T16:16:23.685Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d1/facb5b5051fabb0ef9d26c6544d87ef19a939a9a001198655d0d891062dd/orjson-3.11.8-cp314-cp314-win_arm64.whl", hash = "sha256:6ccdea2c213cf9f3d9490cbd5d427693c870753df41e6cb375bd79bcbafc8817", size = 127330, upload-time = "2026-03-31T16:16:25.496Z" }, +] + +[[package]] +name = "packaging" +version = "26.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" }, +] + +[[package]] +name = "pandas" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/99/b342345300f13440fe9fe385c3c481e2d9a595ee3bab4d3219247ac94e9a/pandas-3.0.2.tar.gz", hash = "sha256:f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043", size = 4645855, upload-time = "2026-03-31T06:48:30.816Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/40/c6ea527147c73b24fc15c891c3fcffe9c019793119c5742b8784a062c7db/pandas-3.0.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:db0dbfd2a6cdf3770aa60464d50333d8f3d9165b2f2671bcc299b72de5a6677b", size = 10326084, upload-time = "2026-03-31T06:47:43.834Z" }, + { url = "https://files.pythonhosted.org/packages/95/25/bdb9326c3b5455f8d4d3549fce7abcf967259de146fe2cf7a82368141948/pandas-3.0.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0555c5882688a39317179ab4a0ed41d3ebc8812ab14c69364bbee8fb7a3f6288", size = 9914146, upload-time = "2026-03-31T06:47:46.67Z" }, + { url = "https://files.pythonhosted.org/packages/8d/77/3a227ff3337aa376c60d288e1d61c5d097131d0ac71f954d90a8f369e422/pandas-3.0.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01f31a546acd5574ef77fe199bc90b55527c225c20ccda6601cf6b0fd5ed597c", size = 10444081, upload-time = "2026-03-31T06:47:49.681Z" }, + { url = "https://files.pythonhosted.org/packages/15/88/3cdd54fa279341afa10acf8d2b503556b1375245dccc9315659f795dd2e9/pandas-3.0.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:deeca1b5a931fdf0c2212c8a659ade6d3b1edc21f0914ce71ef24456ca7a6535", size = 10897535, upload-time = "2026-03-31T06:47:53.033Z" }, + { url = "https://files.pythonhosted.org/packages/06/9d/98cc7a7624f7932e40f434299260e2917b090a579d75937cb8a57b9d2de3/pandas-3.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0f48afd9bb13300ffb5a3316973324c787054ba6665cda0da3fbd67f451995db", size = 11446992, upload-time = "2026-03-31T06:47:56.193Z" }, + { url = "https://files.pythonhosted.org/packages/9a/cd/19ff605cc3760e80602e6826ddef2824d8e7050ed80f2e11c4b079741dc3/pandas-3.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6c4d8458b97a35717b62469a4ea0e85abd5ed8687277f5ccfc67f8a5126f8c53", size = 11968257, upload-time = "2026-03-31T06:47:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/db/60/aba6a38de456e7341285102bede27514795c1eaa353bc0e7638b6b785356/pandas-3.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:b35d14bb5d8285d9494fe93815a9e9307c0876e10f1e8e89ac5b88f728ec8dcf", size = 9865893, upload-time = "2026-03-31T06:48:02.038Z" }, + { url = "https://files.pythonhosted.org/packages/08/71/e5ec979dd2e8a093dacb8864598c0ff59a0cee0bbcdc0bfec16a51684d4f/pandas-3.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:63d141b56ef686f7f0d714cfb8de4e320475b86bf4b620aa0b7da89af8cbdbbb", size = 9188644, upload-time = "2026-03-31T06:48:05.045Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6c/7b45d85db19cae1eb524f2418ceaa9d85965dcf7b764ed151386b7c540f0/pandas-3.0.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:140f0cffb1fa2524e874dde5b477d9defe10780d8e9e220d259b2c0874c89d9d", size = 10776246, upload-time = "2026-03-31T06:48:07.789Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3e/7b00648b086c106e81766f25322b48aa8dfa95b55e621dbdf2fdd413a117/pandas-3.0.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae37e833ff4fed0ba352f6bdd8b73ba3ab3256a85e54edfd1ab51ae40cca0af8", size = 10424801, upload-time = "2026-03-31T06:48:10.897Z" }, + { url = "https://files.pythonhosted.org/packages/da/6e/558dd09a71b53b4008e7fc8a98ec6d447e9bfb63cdaeea10e5eb9b2dabe8/pandas-3.0.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d888a5c678a419a5bb41a2a93818e8ed9fd3172246555c0b37b7cc27027effd", size = 10345643, upload-time = "2026-03-31T06:48:13.7Z" }, + { url = "https://files.pythonhosted.org/packages/be/e3/921c93b4d9a280409451dc8d07b062b503bbec0531d2627e73a756e99a82/pandas-3.0.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b444dc64c079e84df91baa8bf613d58405645461cabca929d9178f2cd392398d", size = 10743641, upload-time = "2026-03-31T06:48:16.659Z" }, + { url = "https://files.pythonhosted.org/packages/56/ca/fd17286f24fa3b4d067965d8d5d7e14fe557dd4f979a0b068ac0deaf8228/pandas-3.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4544c7a54920de8eeacaa1466a6b7268ecfbc9bc64ab4dbb89c6bbe94d5e0660", size = 11361993, upload-time = "2026-03-31T06:48:19.475Z" }, + { url = "https://files.pythonhosted.org/packages/e4/a5/2f6ed612056819de445a433ca1f2821ac3dab7f150d569a59e9cc105de1d/pandas-3.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:734be7551687c00fbd760dc0522ed974f82ad230d4a10f54bf51b80d44a08702", size = 11815274, upload-time = "2026-03-31T06:48:22.695Z" }, + { url = "https://files.pythonhosted.org/packages/00/2f/b622683e99ec3ce00b0854bac9e80868592c5b051733f2cf3a868e5fea26/pandas-3.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:57a07209bebcbcf768d2d13c9b78b852f9a15978dac41b9e6421a81ad4cdd276", size = 10888530, upload-time = "2026-03-31T06:48:25.806Z" }, + { url = "https://files.pythonhosted.org/packages/cb/2b/f8434233fab2bd66a02ec014febe4e5adced20e2693e0e90a07d118ed30e/pandas-3.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:5371b72c2d4d415d08765f32d689217a43227484e81b2305b52076e328f6f482", size = 9455341, upload-time = "2026-03-31T06:48:28.418Z" }, +] + +[[package]] +name = "parso" +version = "0.8.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pillow" +version = "12.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819, upload-time = "2026-04-01T14:46:17.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848, upload-time = "2026-04-01T14:44:48.48Z" }, + { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515, upload-time = "2026-04-01T14:44:51.353Z" }, + { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159, upload-time = "2026-04-01T14:44:53.588Z" }, + { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185, upload-time = "2026-04-01T14:44:56.039Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386, upload-time = "2026-04-01T14:44:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384, upload-time = "2026-04-01T14:45:01.5Z" }, + { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599, upload-time = "2026-04-01T14:45:04.5Z" }, + { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021, upload-time = "2026-04-01T14:45:07.117Z" }, + { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360, upload-time = "2026-04-01T14:45:09.763Z" }, + { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628, upload-time = "2026-04-01T14:45:12.378Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321, upload-time = "2026-04-01T14:45:15.122Z" }, + { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723, upload-time = "2026-04-01T14:45:17.797Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400, upload-time = "2026-04-01T14:45:20.529Z" }, + { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835, upload-time = "2026-04-01T14:45:23.162Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225, upload-time = "2026-04-01T14:45:25.637Z" }, + { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541, upload-time = "2026-04-01T14:45:28.355Z" }, + { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251, upload-time = "2026-04-01T14:45:30.924Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807, upload-time = "2026-04-01T14:45:33.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935, upload-time = "2026-04-01T14:45:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720, upload-time = "2026-04-01T14:45:39.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498, upload-time = "2026-04-01T14:45:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413, upload-time = "2026-04-01T14:45:44.705Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084, upload-time = "2026-04-01T14:45:47.568Z" }, + { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152, upload-time = "2026-04-01T14:45:50.032Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579, upload-time = "2026-04-01T14:45:52.529Z" }, +] + +[[package]] +name = "pip" +version = "26.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/83/0d7d4e9efe3344b8e2fe25d93be44f64b65364d3c8d7bc6dc90198d5422e/pip-26.0.1.tar.gz", hash = "sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8", size = 1812747, upload-time = "2026-02-05T02:20:18.702Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/f0/c81e05b613866b76d2d1066490adf1a3dbc4ee9d9c839961c3fc8a6997af/pip-26.0.1-py3-none-any.whl", hash = "sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b", size = 1787723, upload-time = "2026-02-05T02:20:16.416Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload-time = "2026-04-09T00:04:10.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" }, +] + +[[package]] +name = "posthog" +version = "7.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backoff" }, + { name = "distro" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "six" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/cc/cbebc13accaa015f733a67c74261ae13b86860cdf84e86a65e77c6125d8c/posthog-7.12.0.tar.gz", hash = "sha256:9385b207b87e642f17b784d74c18e6f28952ac7cde781d31675097d1a4dbc14e", size = 193445, upload-time = "2026-04-16T08:39:08.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/4b/40894963647d5044f591099cfe10fe16b688e8e6fb6ed980ccc2c784a3f5/posthog-7.12.0-py3-none-any.whl", hash = "sha256:df1444aa485b45318207f7b5100d955cde4d585e2e7f5b736ade45dcc6d2a60d", size = 226894, upload-time = "2026-04-16T08:39:05.896Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/e5/06d23afac9973109d1e3c8ad38e1547a12e860610e327c05ee686827dc37/pydantic-2.13.2.tar.gz", hash = "sha256:b418196607e61081c3226dcd4f0672f2a194828abb9109e9cfb84026564df2d1", size = 843836, upload-time = "2026-04-17T09:31:59.636Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/ca/b45c378e6e8d0b90577288b533e04e95b7afd61bb1d51b6c263176435489/pydantic-2.13.2-py3-none-any.whl", hash = "sha256:a525087f4c03d7e7456a3de89b64cd693d2229933bb1068b9af6befd5563694e", size = 471947, upload-time = "2026-04-17T09:31:57.541Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/bb/4742f05b739b2478459bb16fa8470549518c802e06ddcf3f106c5081315e/pydantic_core-2.46.2.tar.gz", hash = "sha256:37bb079f9ee3f1a519392b73fda2a96379b31f2013c6b467fe693e7f2987f596", size = 471269, upload-time = "2026-04-17T09:10:07.017Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/96/a50ccb6b539ae780f73cea74905468777680e30c6c3bdf714b9d4c116ea0/pydantic_core-2.46.2-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:4f59b45f3ef8650c0c736a57f59031d47ed9df4c0a64e83796849d7d14863a2d", size = 2097111, upload-time = "2026-04-17T09:10:49.617Z" }, + { url = "https://files.pythonhosted.org/packages/34/5f/fdead7b3afa822ab6e5a18ee0ecffd54937de1877c01ed13a342e0fb3f07/pydantic_core-2.46.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3a075a29ebef752784a91532a1a85be6b234ccffec0a9d7978a92696387c3da6", size = 1951904, upload-time = "2026-04-17T09:12:32.062Z" }, + { url = "https://files.pythonhosted.org/packages/95/e0/1c5d547e550cdab1bec737492aa08865337af6fe7fc9b96f7f45f17d9519/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d12d786e30c04a9d307c5d7080bf720d9bac7f1668191d8e37633a9562749e2", size = 1978667, upload-time = "2026-04-17T09:11:35.589Z" }, + { url = "https://files.pythonhosted.org/packages/0e/cb/665ce629e218c8228302cb94beff4f6531082a2c87d3ecc3d5e63a26f392/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0d5e6d6343b0b5dcacb3503b5de90022968da8ed0ab9ab39d3eda71c20cbf84e", size = 2046721, upload-time = "2026-04-17T09:11:47.725Z" }, + { url = "https://files.pythonhosted.org/packages/77/e9/6cb2cf60f54c1472bbdfce19d957553b43dbba79d1d7b2930a195c594785/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:233eebac0999b6b9ba76eb56f3ec8fce13164aa16b6d2225a36a79e0f95b5973", size = 2228483, upload-time = "2026-04-17T09:12:08.837Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2a/93e018dd5571f781ebaeda8c0cf65398489d5bee9b1f484df0b6149b43b9/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cc0eee720dd2f14f3b7c349469402b99ad81a174ab49d3533974529e9d93992", size = 2294663, upload-time = "2026-04-17T09:12:52.053Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/49e57ca55c770c93d9bb046666a54949b42e3c9099a0c5fe94557873fe30/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83ee76bf2c9910513dbc19e7d82367131fa7508dedd6186a462393071cc11059", size = 2098742, upload-time = "2026-04-17T09:13:45.472Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b0/6e46b5cd3332af665f794b8cdeea206618a8630bd9e7bcc36864518fce81/pydantic_core-2.46.2-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:d61db38eb4ee5192f0c261b7f2d38e420b554df8912245e3546aee5c45e2fd78", size = 2125922, upload-time = "2026-04-17T09:12:54.304Z" }, + { url = "https://files.pythonhosted.org/packages/06/d1/40850c81585be443a2abfdf7f795f8fae831baf8e2f9b2133c8246ac671c/pydantic_core-2.46.2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f09a713d17bcd55da8ab02ebd9110c5246a49c44182af213b5212800af8bc83", size = 2183000, upload-time = "2026-04-17T09:10:59.027Z" }, + { url = "https://files.pythonhosted.org/packages/04/af/8493d7dfa03ebb7866909e577c6aa65ea0de7377b86023cc51d0c8e11db3/pydantic_core-2.46.2-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:30cacc5fb696e64b8ef6fd31d9549d394dd7d52760db072eecb98e37e3af1677", size = 2180335, upload-time = "2026-04-17T09:12:57.01Z" }, + { url = "https://files.pythonhosted.org/packages/72/5b/1f6a344c4ffdf284da41c6067b82d5ebcbd11ce1b515ae4b662d4adb6f61/pydantic_core-2.46.2-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:7ccfb105fcfe91a22bbb5563ad3dc124bc1aa75bfd2e53a780ab05f78cdf6108", size = 2330002, upload-time = "2026-04-17T09:12:02.958Z" }, + { url = "https://files.pythonhosted.org/packages/25/ff/9a694126c12d6d2f48a0cafa6f8eef88ef0d8825600e18d03ff2e896c3b2/pydantic_core-2.46.2-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:13ffef637dc8370c249e5b26bd18e9a80a4fca3d809618c44e18ec834a7ca7a8", size = 2359920, upload-time = "2026-04-17T09:10:27.764Z" }, + { url = "https://files.pythonhosted.org/packages/51/c8/3a35c763d68a9cb2675eb10ef242cf66c5d4701b28ae12e688d67d2c180e/pydantic_core-2.46.2-cp314-cp314-win32.whl", hash = "sha256:1b0ab6d756ca2704a938e6c31b53f290c2f9c10d3914235410302a149de1a83e", size = 1953701, upload-time = "2026-04-17T09:13:30.021Z" }, + { url = "https://files.pythonhosted.org/packages/1a/6a/f2726a780365f7dfd89d62036f984f7acb99978c60c5e1fa7c0cb898ed11/pydantic_core-2.46.2-cp314-cp314-win_amd64.whl", hash = "sha256:99ebade8c9ada4df975372d8dd25883daa0e379a05f1cd0c99aa0c04368d01a6", size = 2071867, upload-time = "2026-04-17T09:10:39.205Z" }, + { url = "https://files.pythonhosted.org/packages/e1/79/76baacb9feba3d7c399b245ca1a29c74ea0db04ea693811374827eec2290/pydantic_core-2.46.2-cp314-cp314-win_arm64.whl", hash = "sha256:de87422197cf7f83db91d89c86a21660d749b3cd76cd8a45d115b8e675670f02", size = 2017252, upload-time = "2026-04-17T09:10:26.175Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3b/77c26938f817668d9ad9bab1a905cb23f11d9a3d4bf724d429b3e55a8eaf/pydantic_core-2.46.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:236f22b4a206b5b61db955396b7cf9e2e1ff77f372efe9570128ccfcd6a525eb", size = 2094545, upload-time = "2026-04-17T09:12:19.339Z" }, + { url = "https://files.pythonhosted.org/packages/fe/de/42c13f590e3c260966aa49bcdb1674774f975467c49abd51191e502bea28/pydantic_core-2.46.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c2012f64d2cd7cca50f49f22445aa5a88691ac2b4498ee0a9a977f8ca4f7289f", size = 1933953, upload-time = "2026-04-17T09:09:55.889Z" }, + { url = "https://files.pythonhosted.org/packages/4e/84/ebe3ebb3e2d8db656937cfa6f97f544cb7132f2307a4a7dfdcd0ea102a12/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d07d6c63106d3a9c9a333e2636f9c82c703b1a9e3b079299e58747964e4fdb72", size = 1974435, upload-time = "2026-04-17T09:10:12.371Z" }, + { url = "https://files.pythonhosted.org/packages/b9/15/0bf51ca6709477cd4ef86148b6d7844f3308f029eac361dd0383f1e17b1a/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c326a2b4b85e959d9a1fc3a11f32f84611b6ec07c053e1828a860edf8d068208", size = 2031113, upload-time = "2026-04-17T09:10:00.752Z" }, + { url = "https://files.pythonhosted.org/packages/02/ae/b7b5af9b79db036d9e61a44c481c17a213dc8fc4b8b71fe6875a72fc778b/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac8a65e798f2462552c00d2e013d532c94d646729dda98458beaf51f9ec7b120", size = 2236325, upload-time = "2026-04-17T09:10:33.227Z" }, + { url = "https://files.pythonhosted.org/packages/a6/ae/ecef7477b5a03d4a499708f7e75d2836452ebb70b776c2d64612b334f57a/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a3c2bc1cc8164bedbc160b7bb1e8cc1e8b9c27f69ae4f9ae2b976cdae02b2dd", size = 2278135, upload-time = "2026-04-17T09:10:23.287Z" }, + { url = "https://files.pythonhosted.org/packages/db/e4/2f9d82faa47af6c39fc3f120145fd915971e1e0cb6b55b494fad9fdf8275/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69aa5e10b7e8b1bb4a6888650fd12fcbf11d396ca11d4a44de1450875702830", size = 2109071, upload-time = "2026-04-17T09:11:06.149Z" }, + { url = "https://files.pythonhosted.org/packages/f1/9c/677cf10873fbd0b116575ab7b97c90482b21564f8a8040beb18edef7a577/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4e6df5c3301e65fb42bc5338bf9a1027a02b0a31dc7f54c33775229af474daf0", size = 2106028, upload-time = "2026-04-17T09:10:51.525Z" }, + { url = "https://files.pythonhosted.org/packages/d6/53/6a06183544daba51c059123a2064a99039df25f115a06bdb26f2ea177038/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c2f6e32548ac8d559b47944effcf8ae4d81c161f6b6c885edc53bc08b8f192d", size = 2164816, upload-time = "2026-04-17T09:11:56.187Z" }, + { url = "https://files.pythonhosted.org/packages/57/6f/10fcdd9e3eca66fc828eef0f6f5850f2dd3bca2c59e6e041fb8bc3da39be/pydantic_core-2.46.2-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:b089a81c58e6ea0485562bbbbbca4f65c0549521606d5ef27fba217aac9b665a", size = 2166130, upload-time = "2026-04-17T09:10:03.804Z" }, + { url = "https://files.pythonhosted.org/packages/29/83/92d3fd0e0156cad2e3cb5c26de73794af78ac9fa0c22ab666e566dd67061/pydantic_core-2.46.2-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:7f700a6d6f64112ae9193709b84303bbab84424ad4b47d0253301aabce9dfc70", size = 2316605, upload-time = "2026-04-17T09:12:45.249Z" }, + { url = "https://files.pythonhosted.org/packages/97/f1/facffdb970981068219582e499b8d0871ed163ffcc6b347de5c412669e4c/pydantic_core-2.46.2-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:67db6814beaa5fefe91101ec7eb9efda613795767be96f7cf58b1ca8c9ca9972", size = 2358385, upload-time = "2026-04-17T09:09:54.657Z" }, + { url = "https://files.pythonhosted.org/packages/8b/a1/b8160b2f22b2199467bc68581a4ed380643c16b348a27d6165c6c242d694/pydantic_core-2.46.2-cp314-cp314t-win32.whl", hash = "sha256:32fbc7447be8e3be99bf7869f7066308f16be55b61f9882c2cefc7931f5c7664", size = 1942373, upload-time = "2026-04-17T09:12:59.594Z" }, + { url = "https://files.pythonhosted.org/packages/0d/90/db89acabe5b150e11d1b59fe3d947dda2ef6abbfef5c82f056ff63802f5d/pydantic_core-2.46.2-cp314-cp314t-win_amd64.whl", hash = "sha256:b317a2b97019c0b95ce99f4f901ae383f40132da6706cdf1731066a73394c25c", size = 2052078, upload-time = "2026-04-17T09:10:19.96Z" }, + { url = "https://files.pythonhosted.org/packages/97/32/e19b83ceb07a3f1bb21798407790bbc9a31740158fd132b94139cb84e16c/pydantic_core-2.46.2-cp314-cp314t-win_arm64.whl", hash = "sha256:7dcb9d40930dfad7ab6b20bcc6ca9d2b030b0f347a0cd9909b54bd53ead521b1", size = 2016941, upload-time = "2026-04-17T09:12:34.447Z" }, +] + +[[package]] +name = "pydub" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/9a/e6bca0eed82db26562c73b5076539a4a08d3cffd19c3cc5913a3e61145fd/pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f", size = 38326, upload-time = "2021-03-10T02:09:54.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6", size = 32327, upload-time = "2021-03-10T02:09:53.503Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.26" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/71/b145a380824a960ebd60e1014256dbb7d2253f2316ff2d73dfd8928ec2c3/python_multipart-0.0.26.tar.gz", hash = "sha256:08fadc45918cd615e26846437f50c5d6d23304da32c341f289a617127b081f17", size = 43501, upload-time = "2026-04-10T14:09:59.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/22/f1925cdda983ab66fc8ec6ec8014b959262747e58bdca26a4e3d1da29d56/python_multipart-0.0.26-py3-none-any.whl", hash = "sha256:c0b169f8c4484c13b0dcf2ef0ec3a4adb255c4b7d18d8e420477d2b1dd03f185", size = 28847, upload-time = "2026-04-10T14:09:58.131Z" }, +] + +[[package]] +name = "python-notes" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "gradio" }, + { name = "haystack-ai" }, + { name = "ipykernel" }, + { name = "pip" }, +] + +[package.metadata] +requires-dist = [ + { name = "gradio", specifier = ">=6.12.0" }, + { name = "haystack-ai", specifier = ">=2.27.0" }, + { name = "ipykernel", specifier = ">=7.2.0" }, + { name = "pip", specifier = ">=26.0.1" }, +] + +[[package]] +name = "pytz" +version = "2026.1.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/db/b8721d71d945e6a8ac63c0fc900b2067181dbb50805958d4d4661cf7d277/pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1", size = 321088, upload-time = "2026-03-03T07:47:50.683Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a", size = 510489, upload-time = "2026-03-03T07:47:49.167Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, + { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "requests" +version = "2.33.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, +] + +[[package]] +name = "rich" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "safehttpx" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/d1/4282284d9cf1ee873607a46442da977fc3c985059315ab23610be31d5885/safehttpx-0.1.7.tar.gz", hash = "sha256:db201c0978c41eddb8bb480f3eee59dd67304fdd91646035e9d9a720049a9d23", size = 10385, upload-time = "2025-10-24T18:30:09.783Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/a3/0f0b7d78e2f1eb9e8e1afbff1d2bff8d60144aee17aca51c065b516743dd/safehttpx-0.1.7-py3-none-any.whl", hash = "sha256:c4f4a162db6993464d7ca3d7cc4af0ffc6515a606dfd220b9f82c6945d869cde", size = 8959, upload-time = "2025-10-24T18:30:08.733Z" }, +] + +[[package]] +name = "semantic-version" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/31/f2289ce78b9b473d582568c234e104d2a342fd658cc288a7553d83bb8595/semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c", size = 52289, upload-time = "2022-05-26T13:35:23.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload-time = "2022-05-26T13:35:21.206Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/c6/ee486fd809e357697ee8a44d3d69222b344920433d3b6666ccd9b374630c/tenacity-9.1.4.tar.gz", hash = "sha256:adb31d4c263f2bd041081ab33b498309a57c77f9acf2db65aadf0898179cf93a", size = 49413, upload-time = "2026-02-07T10:45:33.841Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/c1/eb8f9debc45d3b7918a32ab756658a0904732f75e555402972246b0b8e71/tenacity-9.1.4-py3-none-any.whl", hash = "sha256:6095a360c919085f28c6527de529e76a06ad89b23659fa881ae0649b867a9d55", size = 28926, upload-time = "2026-02-07T10:45:32.24Z" }, +] + +[[package]] +name = "tomlkit" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz", hash = "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064", size = 187167, upload-time = "2026-01-13T01:14:53.304Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl", hash = "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680", size = 39310, upload-time = "2026-01-13T01:14:51.965Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/f1/3173dfa4a18db4a9b03e5d55325559dab51ee653763bb8745a75af491286/tornado-6.5.5.tar.gz", hash = "sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9", size = 516006, upload-time = "2026-03-10T21:31:02.067Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/8c/77f5097695f4dd8255ecbd08b2a1ed8ba8b953d337804dd7080f199e12bf/tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa", size = 445983, upload-time = "2026-03-10T21:30:44.28Z" }, + { url = "https://files.pythonhosted.org/packages/ab/5e/7625b76cd10f98f1516c36ce0346de62061156352353ef2da44e5c21523c/tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521", size = 444246, upload-time = "2026-03-10T21:30:46.571Z" }, + { url = "https://files.pythonhosted.org/packages/b2/04/7b5705d5b3c0fab088f434f9c83edac1573830ca49ccf29fb83bf7178eec/tornado-6.5.5-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5", size = 447229, upload-time = "2026-03-10T21:30:48.273Z" }, + { url = "https://files.pythonhosted.org/packages/34/01/74e034a30ef59afb4097ef8659515e96a39d910b712a89af76f5e4e1f93c/tornado-6.5.5-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07", size = 448192, upload-time = "2026-03-10T21:30:51.22Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/fe9e02c5a96429fce1a1d15a517f5d8444f9c412e0bb9eadfbe3b0fc55bf/tornado-6.5.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e", size = 448039, upload-time = "2026-03-10T21:30:53.52Z" }, + { url = "https://files.pythonhosted.org/packages/82/9e/656ee4cec0398b1d18d0f1eb6372c41c6b889722641d84948351ae19556d/tornado-6.5.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca", size = 447445, upload-time = "2026-03-10T21:30:55.541Z" }, + { url = "https://files.pythonhosted.org/packages/5a/76/4921c00511f88af86a33de770d64141170f1cfd9c00311aea689949e274e/tornado-6.5.5-cp39-abi3-win32.whl", hash = "sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7", size = 448582, upload-time = "2026-03-10T21:30:57.142Z" }, + { url = "https://files.pythonhosted.org/packages/2c/23/f6c6112a04d28eed765e374435fb1a9198f73e1ec4b4024184f21faeb1ad/tornado-6.5.5-cp39-abi3-win_amd64.whl", hash = "sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b", size = 448990, upload-time = "2026-03-10T21:30:58.857Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c8/876602cbc96469911f0939f703453c1157b0c826ecb05bdd32e023397d4e/tornado-6.5.5-cp39-abi3-win_arm64.whl", hash = "sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6", size = 448016, upload-time = "2026-03-10T21:31:00.43Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "typer" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/f5/cd531b2d15a671a40c0f66cf06bc3570a12cd56eef98960068ebbad1bf5a/tzdata-2026.1.tar.gz", hash = "sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98", size = 197639, upload-time = "2026-04-03T11:25:22.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/70/d460bd685a170790ec89317e9bd33047988e4bce507b831f5db771e142de/tzdata-2026.1-py2.py3-none-any.whl", hash = "sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9", size = 348952, upload-time = "2026-04-03T11:25:20.313Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/da/6eee1ff8b6cbeed47eeb5229749168e81eb4b7b999a1a15a7176e51410c9/uvicorn-0.44.0.tar.gz", hash = "sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e", size = 86947, upload-time = "2026-04-06T09:23:22.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl", hash = "sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89", size = 69425, upload-time = "2026-04-06T09:23:21.524Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, +]