From 860d105c7a22c23a203ae6d96e87e70d8b37a93f Mon Sep 17 00:00:00 2001 From: David Zhang Date: Fri, 19 Jun 2026 23:30:38 +0000 Subject: [PATCH 1/2] chore(backend): add uv dependency lock --- .github/workflows/backend-hermetic-e2e.yml | 17 +- backend/.python-version | 1 + backend/AGENTS.md | 11 +- backend/pylock.toml | 1612 ++++++++++++++++++ backend/scripts/sync-python-deps.sh | 20 + backend/scripts/update-python-lock.sh | 22 + docs/doc/developer/backend/Backend_Setup.mdx | 30 +- 7 files changed, 1681 insertions(+), 32 deletions(-) create mode 100644 backend/.python-version create mode 100644 backend/pylock.toml create mode 100755 backend/scripts/sync-python-deps.sh create mode 100755 backend/scripts/update-python-lock.sh diff --git a/.github/workflows/backend-hermetic-e2e.yml b/.github/workflows/backend-hermetic-e2e.yml index e4bc5d9c3cd..f149672aed2 100644 --- a/.github/workflows/backend-hermetic-e2e.yml +++ b/.github/workflows/backend-hermetic-e2e.yml @@ -21,18 +21,17 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' - cache: 'pip' - cache-dependency-path: | - backend/requirements.txt - backend/testing/e2e/requirements.txt + python-version-file: backend/.python-version + + - name: Set up uv + uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + cache-dependency-glob: backend/pylock.toml - name: Install backend and e2e dependencies working-directory: backend - run: | - python -m pip install --upgrade pip - python -m pip install -r requirements.txt - python -m pip install -r testing/e2e/requirements.txt + run: uv pip sync pylock.toml --system - name: Prewarm tokenizer cache working-directory: backend diff --git a/backend/.python-version b/backend/.python-version new file mode 100644 index 00000000000..ed7d51a38ec --- /dev/null +++ b/backend/.python-version @@ -0,0 +1 @@ +3.11.15 diff --git a/backend/AGENTS.md b/backend/AGENTS.md index 4418e891658..1fc29e3044b 100644 --- a/backend/AGENTS.md +++ b/backend/AGENTS.md @@ -4,14 +4,21 @@ Inherits all rules from the root `../AGENTS.md`. This file adds backend-specific ## Setup -Python 3.11 required (not 3.12+ — Dockerfile pins 3.11). Also needs FFmpeg, Opus (`opuslib`), Redis (optional). +Python 3.11 is required (not 3.12+ — Dockerfile pins 3.11). Backend local dev pins the exact interpreter in `.python-version` and uses `uv` for reproducible dependency sync. Also needs FFmpeg, Opus (`opuslib`), Redis (optional). ```bash cp .env.template .env # Fill in required values (see .env.template for full list) -pip install -r requirements.txt +./scripts/sync-python-deps.sh # creates .venv from .python-version + pylock.toml +source .venv/bin/activate uvicorn main:app --host 0.0.0.0 --port 8080 ``` +When intentionally changing backend Python dependencies, edit the relevant `requirements*.txt` input file and refresh the lock: + +```bash +./scripts/update-python-lock.sh +``` + Key env vars: `OPENAI_API_KEY` (LLM calls — not `OPENAI_ADMIN_KEY` which is billing-only), `DEEPGRAM_API_KEY` (STT), `ENCRYPTION_SECRET` (required for tests), `REDIS_DB_HOST` (cache/rate-limiting, fail-open without it), `ADMIN_KEY` (local dev auth bypass via token `ADMIN_KEY`), `SERVICE_ACCOUNT_JSON` (Firestore/GCS credentials). ## Directory Structure diff --git a/backend/pylock.toml b/backend/pylock.toml new file mode 100644 index 00000000000..70d53dfeb48 --- /dev/null +++ b/backend/pylock.toml @@ -0,0 +1,1612 @@ +# This file was autogenerated by uv via the following command: +# backend/scripts/update-python-lock.sh +lock-version = "1.0" +created-by = "uv" +requires-python = ">=3.11.15" + +[[packages]] +name = "aenum" +version = "3.1.15" +sdist = { url = "https://files.pythonhosted.org/packages/d0/f8/33e75863394f42e429bb553e05fda7c59763f0fd6848de847a25b3fbccf6/aenum-3.1.15.tar.gz", upload-time = 2023-06-27T00:19:52Z, size = 134730, hashes = { sha256 = "8cbd76cd18c4f870ff39b24284d3ea028fbe8731a58df3aa581e434c575b9559" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d0/fa/ca0c66b388624ba9dbbf35aab3a9f326bfdf5e56a7237fe8f1b600da6864/aenum-3.1.15-py3-none-any.whl", upload-time = 2023-06-27T00:19:55Z, size = 137633, hashes = { sha256 = "e0dfaeea4c2bd362144b87377e2c61d91958c5ed0b4daf89cb6f45ae23af6288" } }] + +[[packages]] +name = "aiofiles" +version = "24.1.0" +sdist = { url = "https://files.pythonhosted.org/packages/0b/03/a88171e277e8caa88a4c77808c20ebb04ba74cc4681bf1e9416c862de237/aiofiles-24.1.0.tar.gz", upload-time = 2024-06-24T11:02:03Z, size = 30247, hashes = { sha256 = "22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a5/45/30bb92d442636f570cb5651bc661f52b610e2eec3f891a5dc3a4c3667db0/aiofiles-24.1.0-py3-none-any.whl", upload-time = 2024-06-24T11:02:01Z, size = 15896, hashes = { sha256 = "b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5" } }] + +[[packages]] +name = "aiohappyeyeballs" +version = "2.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/a2/0c/458958007041f4b4de2d307e6b75d9e7554dad0baf26fe7a48b741aac126/aiohappyeyeballs-2.5.0.tar.gz", upload-time = 2025-03-06T01:13:44Z, size = 22494, hashes = { sha256 = "18fde6204a76deeabc97c48bdd01d5801cfda5d6b9c8bbeb1aaaee9d648ca191" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1b/9a/e4886864ce06e1579bd428208127fbdc0d62049c751e4e9e3b509c0059dc/aiohappyeyeballs-2.5.0-py3-none-any.whl", upload-time = 2025-03-06T01:13:41Z, size = 15128, hashes = { sha256 = "0850b580748c7071db98bffff6d4c94028d0d3035acc20fd721a0ce7e8cac35d" } }] + +[[packages]] +name = "aiohttp" +version = "3.13.4" +sdist = { url = "https://files.pythonhosted.org/packages/45/4a/064321452809dae953c1ed6e017504e72551a26b6f5708a5a80e4bf556ff/aiohttp-3.13.4.tar.gz", upload-time = 2026-03-28T17:19:40Z, size = 7859748, hashes = { sha256 = "d97a6d09c66087890c2ab5d49069e1e570583f7ac0314ecf98294c1b6aaebd38" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/af/53/29f9e2054ea6900413f3b4c3eb9d8331f60678ec855f13ba8714c47fd48d/aiohttp-3.13.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-03-28T17:15:45Z, size = 1767655, hashes = { sha256 = "0bc0a5cf4f10ef5a2c94fdde488734b582a3a7a000b131263e27c9295bd682d9" } }] + +[[packages]] +name = "aiohttp-retry" +version = "2.9.1" +sdist = { url = "https://files.pythonhosted.org/packages/9d/61/ebda4d8e3d8cfa1fd3db0fb428db2dd7461d5742cea35178277ad180b033/aiohttp_retry-2.9.1.tar.gz", upload-time = 2024-11-06T10:44:54Z, size = 13608, hashes = { sha256 = "8eb75e904ed4ee5c2ec242fefe85bf04240f685391c4879d8f541d6028ff01f1" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1a/99/84ba7273339d0f3dfa57901b846489d2e5c2cd731470167757f1935fffbd/aiohttp_retry-2.9.1-py3-none-any.whl", upload-time = 2024-11-06T10:44:52Z, size = 9981, hashes = { sha256 = "66d2759d1921838256a05a3f80ad7e724936f083e35be5abb5e16eed6be6dc54" } }] + +[[packages]] +name = "aioresponses" +version = "0.7.8" +sdist = { url = "https://files.pythonhosted.org/packages/de/03/532bbc645bdebcf3b6af3b25d46655259d66ce69abba7720b71ebfabbade/aioresponses-0.7.8.tar.gz", upload-time = 2025-01-19T18:14:03Z, size = 40253, hashes = { sha256 = "b861cdfe5dc58f3b8afac7b0a6973d5d7b2cb608dd0f6253d16b8ee8eaf6df11" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/12/b7/584157e43c98aa89810bc2f7099e7e01c728ecf905a66cf705106009228f/aioresponses-0.7.8-py2.py3-none-any.whl", upload-time = 2025-01-19T18:13:59Z, size = 12518, hashes = { sha256 = "b73bd4400d978855e55004b23a3a84cb0f018183bcf066a85ad392800b5b9a94" } }] + +[[packages]] +name = "aiosignal" +version = "1.4.0" +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", upload-time = 2025-07-03T22:54:43Z, size = 25007, hashes = { sha256 = "f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", upload-time = 2025-07-03T22:54:42Z, size = 7490, hashes = { sha256 = "053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e" } }] + +[[packages]] +name = "aiostream" +version = "0.5.2" +sdist = { url = "https://files.pythonhosted.org/packages/e4/60/0b46dfd568d1e22ff587ff0b00829a11411bc34be1b6497c8783cbd9ec82/aiostream-0.5.2.tar.gz", upload-time = 2023-10-24T10:11:30Z, size = 35339, hashes = { sha256 = "b71b519a2d66c38f0872403ab86417955b77352f08d9ad02ad46fc3926b389f4" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b3/2a/4140da24a81adce23b79e4fdc3fc722c9ff698460c1b9f8f7bd3742eb02e/aiostream-0.5.2-py3-none-any.whl", upload-time = 2023-10-24T10:11:28Z, size = 39486, hashes = { sha256 = "054660370be9d37f6fe3ece3851009240416bd082e469fd90cc8673d3818cf71" } }] + +[[packages]] +name = "alembic" +version = "1.13.2" +sdist = { url = "https://files.pythonhosted.org/packages/66/e2/efa88e86029cada2da5941ec664d50d9a3b2a91f5066405c6f90e5016c16/alembic-1.13.2.tar.gz", upload-time = 2024-06-26T15:46:17Z, size = 1206463, hashes = { sha256 = "1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/df/ed/c884465c33c25451e4a5cd4acad154c29e5341e3214e220e7f3478aa4b0d/alembic-1.13.2-py3-none-any.whl", upload-time = 2024-06-26T15:46:21Z, size = 232990, hashes = { sha256 = "6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953" } }] + +[[packages]] +name = "altair" +version = "5.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/16/b1/f2969c7bdb8ad8bbdda031687defdce2c19afba2aa2c8e1d2a17f78376d8/altair-5.5.0.tar.gz", upload-time = 2024-11-23T23:39:58Z, size = 705305, hashes = { sha256 = "d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/aa/f3/0b6ced594e51cc95d8c1fc1640d3623770d01e4969d29c0bd09945fafefa/altair-5.5.0-py3-none-any.whl", upload-time = 2024-11-23T23:39:56Z, size = 731200, hashes = { sha256 = "91a310b926508d560fe0148d02a194f38b824122641ef528113d029fcd129f8c" } }] + +[[packages]] +name = "annotated-doc" +version = "0.0.4" +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", upload-time = 2025-11-10T22:07:42Z, size = 7288, hashes = { sha256 = "fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", upload-time = 2025-11-10T22:07:40Z, size = 5303, hashes = { sha256 = "571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320" } }] + +[[packages]] +name = "annotated-types" +version = "0.7.0" +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", upload-time = 2024-05-20T21:33:25Z, size = 16081, hashes = { sha256 = "aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", upload-time = 2024-05-20T21:33:24Z, size = 13643, hashes = { sha256 = "1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53" } }] + +[[packages]] +name = "anthropic" +version = "0.111.0" +sdist = { url = "https://files.pythonhosted.org/packages/b9/8a/9afc7305a2ce4b52b30e137f83cd2a6a90b918b3997073db11bb5a1de55a/anthropic-0.111.0.tar.gz", upload-time = 2026-06-18T17:31:44Z, size = 934001, hashes = { sha256 = "39cbda0ac17a6d423e5bf609811bd69b26eddf6299d7a468126e05bc711ce826" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f1/bb/09e82a81885d787f350fb55ca9df865b63140dd28b3b5b3104c4ae261657/anthropic-0.111.0-py3-none-any.whl", upload-time = 2026-06-18T17:31:43Z, size = 929774, hashes = { sha256 = "c14edb36ed80da9099acbd26b5cec810d76606c31f32a0d56a4cf9d4fa9e25ae" } }] + +[[packages]] +name = "antlr4-python3-runtime" +version = "4.9.3" +sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", upload-time = 2021-11-06T17:52:23Z, size = 117034, hashes = { sha256 = "f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b" } } + +[[packages]] +name = "anyio" +version = "4.4.0" +sdist = { url = "https://files.pythonhosted.org/packages/e6/e3/c4c8d473d6780ef1853d630d581f70d655b4f8d7553c6997958c283039a2/anyio-4.4.0.tar.gz", upload-time = 2024-05-26T22:02:15Z, size = 163930, hashes = { sha256 = "5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7b/a2/10639a79341f6c019dedc95bd48a4928eed9f1d1197f4c04f546fc7ae0ff/anyio-4.4.0-py3-none-any.whl", upload-time = 2024-05-26T22:02:13Z, size = 86780, hashes = { sha256 = "c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7" } }] + +[[packages]] +name = "assemblyai" +version = "0.33.0" +sdist = { url = "https://files.pythonhosted.org/packages/c2/42/52104035b40c8c3b1f681ee09f1e064f440b28de7da9dd4bb04aba63dbbe/assemblyai-0.33.0.tar.gz", upload-time = 2024-08-26T14:04:37Z, size = 67039, hashes = { sha256 = "782a53707851c0e4485496d307b7270084146a0e9f6b86b027c17f4f63a8fbf0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9e/20/95f378069ad8a981bc779e4dcf7fc25dd7f947b7cb49b8749124a92ece8c/assemblyai-0.33.0-py3-none-any.whl", upload-time = 2024-08-26T14:04:35Z, size = 72673, hashes = { sha256 = "7f5ae220eb33924768c2bbe7312c42bcef59323f9b17c8c82ba083c4e35d1774" } }] + +[[packages]] +name = "asttokens" +version = "2.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", upload-time = 2023-10-26T10:03:05Z, size = 62284, hashes = { sha256 = "b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl", upload-time = 2023-10-26T10:03:01Z, size = 27764, hashes = { sha256 = "051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24" } }] + +[[packages]] +name = "attrs" +version = "24.1.0" +sdist = { url = "https://files.pythonhosted.org/packages/39/31/ca3e2de55503d8ad75985865629f69a2c376a44428c5df1450b749d30751/attrs-24.1.0.tar.gz", upload-time = 2024-08-03T14:30:20Z, size = 792572, hashes = { sha256 = "adbdec84af72d38be7628e353a09b6a6790d15cd71819f6e9d7b0faa8a125745" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9b/2b/913eda7a67f7bea7496c1a8e1666f48aa9f15520da79368e4ec1109e2690/attrs-24.1.0-py3-none-any.whl", upload-time = 2024-08-03T14:30:18Z, size = 63880, hashes = { sha256 = "377b47448cb61fea38533f671fba0d0f8a96fd58facd4dc518e3dac9dbea0905" } }] + +[[packages]] +name = "audioread" +version = "3.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/db/d2/87016ca9f083acadffb2d8da59bfa3253e4da7eeb9f71fb8e7708dc97ecd/audioread-3.0.1.tar.gz", upload-time = 2023-09-27T19:27:53Z, size = 116513, hashes = { sha256 = "ac5460a5498c48bdf2e8e767402583a4dcd13f4414d286f42ce4379e8b35066d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/57/8d/30aa32745af16af0a9a650115fbe81bde7c610ed5c21b381fca0196f3a7f/audioread-3.0.1-py3-none-any.whl", upload-time = 2023-09-27T19:27:51Z, size = 23492, hashes = { sha256 = "4cdce70b8adc0da0a3c9e0d85fb10b3ace30fbdf8d1670fd443929b61d117c33" } }] + +[[packages]] +name = "av" +version = "12.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/e7/45/282a04df72c17cc6cdd86df51b77754f61d1a8f3d68155e1821a8a76e399/av-12.0.0.tar.gz", upload-time = 2024-03-21T11:17:51Z, size = 3760491, hashes = { sha256 = "bcf21ebb722d4538b4099e5a78f730d78814dd70003511c185941dba5651b14d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/51/95/d43a02410e4e1cb6397a675facf5a65285d670697c0762a0e29c0c3615b4/av-12.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-03-21T11:15:50Z, size = 34691295, hashes = { sha256 = "7a6d4f1e261df48932128e6495772faa4cc23f5dd1512eec73daab82ad9f3240" } }] + +[[packages]] +name = "backoff" +version = "2.2.1" +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", upload-time = 2022-10-05T19:19:32Z, size = 17001, hashes = { sha256 = "03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", upload-time = 2022-10-05T19:19:30Z, size = 15148, hashes = { sha256 = "63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8" } }] + +[[packages]] +name = "blinker" +version = "1.8.2" +sdist = { url = "https://files.pythonhosted.org/packages/1e/57/a6a1721eff09598fb01f3c7cda070c1b6a0f12d63c83236edf79a440abcc/blinker-1.8.2.tar.gz", upload-time = 2024-05-06T17:04:10Z, size = 23161, hashes = { sha256 = "8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/bb/2a/10164ed1f31196a2f7f3799368a821765c62851ead0e630ab52b8e14b4d0/blinker-1.8.2-py3-none-any.whl", upload-time = 2024-05-06T17:04:08Z, size = 9456, hashes = { sha256 = "1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01" } }] + +[[packages]] +name = "cachecontrol" +version = "0.14.0" +sdist = { url = "https://files.pythonhosted.org/packages/06/55/edea9d90ee57ca54d34707607d15c20f72576b96cb9f3e7fc266cb06b426/cachecontrol-0.14.0.tar.gz", upload-time = 2024-02-02T02:53:30Z, size = 28899, hashes = { sha256 = "7db1195b41c81f8274a7bbd97c956f44e8348265a1bc7641c37dfebc39f0c938" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a3/a9/7d331fec593a4b2953338df33e954aac6ff79eb5a073bca2783766bc7722/cachecontrol-0.14.0-py3-none-any.whl", upload-time = 2024-02-02T02:53:29Z, size = 22064, hashes = { sha256 = "f5bf3f0620c38db2e5122c0726bdebb0d16869de966ea6a2befe92470b740ea0" } }] + +[[packages]] +name = "cachetools" +version = "5.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/c3/38/a0f315319737ecf45b4319a8cd1f3a908e29d9277b46942263292115eee7/cachetools-5.5.0.tar.gz", upload-time = 2024-08-18T20:28:44Z, size = 27661, hashes = { sha256 = "2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a4/07/14f8ad37f2d12a5ce41206c21820d8cb6561b728e51fad4530dff0552a67/cachetools-5.5.0-py3-none-any.whl", upload-time = 2024-08-18T20:28:43Z, size = 9524, hashes = { sha256 = "02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292" } }] + +[[packages]] +name = "certifi" +version = "2024.7.4" +sdist = { url = "https://files.pythonhosted.org/packages/c2/02/a95f2b11e207f68bc64d7aae9666fed2e2b3f307748d5123dffb72a1bbea/certifi-2024.7.4.tar.gz", upload-time = 2024-07-04T01:36:11Z, size = 164065, hashes = { sha256 = "5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl", upload-time = 2024-07-04T01:36:09Z, size = 162960, hashes = { sha256 = "c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90" } }] + +[[packages]] +name = "cffi" +version = "2.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", upload-time = 2025-09-08T23:24:04Z, size = 523588, hashes = { sha256 = "44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-09-08T23:22:35Z, size = 215574, hashes = { sha256 = "8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26" } }] + +[[packages]] +name = "charset-normalizer" +version = "3.3.2" +sdist = { url = "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz", upload-time = 2023-11-01T04:04:59Z, size = 104809, hashes = { sha256 = "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2023-11-01T04:03:05Z, size = 140273, hashes = { sha256 = "753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8" } }, + { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", upload-time = 2023-11-01T04:04:58Z, size = 48543, hashes = { sha256 = "3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc" } }, +] + +[[packages]] +name = "click" +version = "8.1.7" +sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", upload-time = 2023-08-17T17:29:11Z, size = 336121, hashes = { sha256 = "ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", upload-time = 2023-08-17T17:29:10Z, size = 97941, hashes = { sha256 = "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28" } }] + +[[packages]] +name = "click-spinner" +version = "0.1.10" +sdist = { url = "https://files.pythonhosted.org/packages/af/3a/7dbc558fcf0ae9e2e8b7ccc52daeb4eaf32b21f851497f5b409e1638dcee/click-spinner-0.1.10.tar.gz", upload-time = 2020-04-24T07:14:51Z, size = 18720, hashes = { sha256 = "87eacf9d7298973a25d7615ef57d4782aebf913a532bba4b28a37e366e975daf" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/93/2a/04893832bfeddc2d40a7de2e8153b3085f12d63507d91a9cf0157dc3a1c2/click_spinner-0.1.10-py2.py3-none-any.whl", upload-time = 2020-04-24T07:14:50Z, size = 3986, hashes = { sha256 = "d1ffcff1fdad9882396367f15fb957bcf7f5c64ab91927dee2127e0d2991ee84" } }] + +[[packages]] +name = "coloredlogs" +version = "15.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", upload-time = 2021-06-11T10:22:45Z, size = 278520, hashes = { sha256 = "7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", upload-time = 2021-06-11T10:22:42Z, size = 46018, hashes = { sha256 = "612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934" } }] + +[[packages]] +name = "colorlog" +version = "6.8.2" +sdist = { url = "https://files.pythonhosted.org/packages/db/38/2992ff192eaa7dd5a793f8b6570d6bbe887c4fbbf7e72702eb0a693a01c8/colorlog-6.8.2.tar.gz", upload-time = 2024-01-26T13:59:28Z, size = 16529, hashes = { sha256 = "3e3e079a41feb5a1b64f978b5ea4f46040a94f11f0e8bbb8261e3dbbeca64d44" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f3/18/3e867ab37a24fdf073c1617b9c7830e06ec270b1ea4694a624038fc40a03/colorlog-6.8.2-py3-none-any.whl", upload-time = 2024-01-26T13:59:27Z, size = 11357, hashes = { sha256 = "4dcbb62368e2800cb3c5abd348da7e53f6c362dda502ec27c560b2e58a66bd33" } }] + +[[packages]] +name = "contourpy" +version = "1.2.1" +sdist = { url = "https://files.pythonhosted.org/packages/8d/9e/e4786569b319847ffd98a8326802d5cf8a5500860dbfc2df1f0f4883ed99/contourpy-1.2.1.tar.gz", upload-time = 2024-04-02T20:41:48Z, size = 13457196, hashes = { sha256 = "4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ee/c0/9bd123d676eb61750e116a2cd915b06483fc406143cfc36c7f263f0f5368/contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-04-02T20:36:35Z, size = 306008, hashes = { sha256 = "d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df" } }] + +[[packages]] +name = "croniter" +version = "1.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/96/56/f8500161d9ab57ea5ad29c203b85989f87af13a367b3178ade0cd34d8d3a/croniter-1.4.1.tar.gz", upload-time = 2023-06-15T18:03:35Z, size = 42301, hashes = { sha256 = "1a6df60eacec3b7a0aa52a8f2ef251ae3dd2a7c7c8b9874e73e791636d55a361" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f2/91/e5ae454da8200c6eb6cf94ca05d799b51e2cb2cc458a7737aebc0c5a21bb/croniter-1.4.1-py2.py3-none-any.whl", upload-time = 2023-06-15T18:03:32Z, size = 19579, hashes = { sha256 = "9595da48af37ea06ec3a9f899738f1b2c1c13da3c38cea606ef7cd03ea421128" } }] + +[[packages]] +name = "cryptography" +version = "46.0.7" +sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", upload-time = 2026-04-08T01:57:54Z, size = 750652, hashes = { sha256 = "e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2026-04-08T01:56:21Z, size = 4426670, hashes = { sha256 = "5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308" } }, + { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", upload-time = 2026-04-08T01:56:27Z, size = 4459985, hashes = { sha256 = "420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef" } }, + { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", upload-time = 2026-04-08T01:56:34Z, size = 4459756, hashes = { sha256 = "42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b" } }, + { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2026-04-08T01:57:14Z, size = 4415405, hashes = { sha256 = "128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832" } }, + { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", upload-time = 2026-04-08T01:57:21Z, size = 4450634, hashes = { sha256 = "1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067" } }, + { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", upload-time = 2026-04-08T01:57:29Z, size = 4449961, hashes = { sha256 = "35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0" } }, +] + +[[packages]] +name = "cycler" +version = "0.12.1" +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", upload-time = 2023-10-07T05:32:18Z, size = 7615, hashes = { sha256 = "88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", upload-time = 2023-10-07T05:32:16Z, size = 8321, hashes = { sha256 = "85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30" } }] + +[[packages]] +name = "dataclasses-json" +version = "0.6.7" +sdist = { url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz", upload-time = 2024-06-09T16:20:19Z, size = 32227, hashes = { sha256 = "b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", upload-time = 2024-06-09T16:20:16Z, size = 28686, hashes = { sha256 = "0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a" } }] + +[[packages]] +name = "decorator" +version = "5.1.1" +sdist = { url = "https://files.pythonhosted.org/packages/66/0c/8d907af351aa16b42caae42f9d6aa37b900c67308052d10fdce809f8d952/decorator-5.1.1.tar.gz", upload-time = 2022-01-07T08:20:05Z, size = 35016, hashes = { sha256 = "637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", upload-time = 2022-01-07T08:20:03Z, size = 9073, hashes = { sha256 = "b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" } }] + +[[packages]] +name = "deepgram-sdk" +version = "4.8.1" +sdist = { url = "https://files.pythonhosted.org/packages/e1/7a/420a885ddfc16b6142353414e8e529882a1e261fd4cfbae449ce84d59590/deepgram_sdk-4.8.1.tar.gz", upload-time = 2025-08-02T01:00:33Z, size = 100105, hashes = { sha256 = "aada4c34532096bb8c438ed23c6d182920e8cba9609bf1b1e40a7f30820cfa32" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7d/85/70151387088f110623ff066d6e27d1169f5dd130eaf8b2044f4de9d41034/deepgram_sdk-4.8.1-py3-none-any.whl", upload-time = 2025-08-02T01:00:32Z, size = 157925, hashes = { sha256 = "1af2a9fab57c858f2201bebd8f553fdfe9ef3d1b036e0ac588104b11ae3bc727" } }] + +[[packages]] +name = "deprecation" +version = "2.1.0" +sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", upload-time = 2020-04-20T14:23:38Z, size = 173788, hashes = { sha256 = "72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", upload-time = 2020-04-20T14:23:36Z, size = 11178, hashes = { sha256 = "a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a" } }] + +[[packages]] +name = "distro" +version = "1.9.0" +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", upload-time = 2023-12-24T09:54:32Z, size = 60722, hashes = { sha256 = "2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", upload-time = 2023-12-24T09:54:30Z, size = 20277, hashes = { sha256 = "7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2" } }] + +[[packages]] +name = "dnspython" +version = "2.6.1" +sdist = { url = "https://files.pythonhosted.org/packages/37/7d/c871f55054e403fdfd6b8f65fd6d1c4e147ed100d3e9f9ba1fe695403939/dnspython-2.6.1.tar.gz", upload-time = 2024-02-18T18:48:48Z, size = 332727, hashes = { sha256 = "e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/87/a1/8c5287991ddb8d3e4662f71356d9656d91ab3a36618c3dd11b280df0d255/dnspython-2.6.1-py3-none-any.whl", upload-time = 2024-02-18T18:48:46Z, size = 307696, hashes = { sha256 = "5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50" } }] + +[[packages]] +name = "docopt" +version = "0.6.2" +sdist = { url = "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz", upload-time = 2014-06-16T11:18:57Z, size = 25901, hashes = { sha256 = "49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491" } } + +[[packages]] +name = "docstring-parser" +version = "0.18.0" +sdist = { url = "https://files.pythonhosted.org/packages/e0/4d/f332313098c1de1b2d2ff91cf2674415cc7cddab2ca1b01ae29774bd5fdf/docstring_parser-0.18.0.tar.gz", upload-time = 2026-04-14T04:09:19Z, size = 29341, hashes = { sha256 = "292510982205c12b1248696f44959db3cdd1740237a968ea1e2e7a900eeb2015" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl", upload-time = 2026-04-14T04:09:18Z, size = 22484, hashes = { sha256 = "b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b" } }] + +[[packages]] +name = "email-validator" +version = "2.2.0" +sdist = { url = "https://files.pythonhosted.org/packages/48/ce/13508a1ec3f8bb981ae4ca79ea40384becc868bfae97fd1c942bb3a001b1/email_validator-2.2.0.tar.gz", upload-time = 2024-06-20T11:30:30Z, size = 48967, hashes = { sha256 = "cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d7/ee/bf0adb559ad3c786f12bcbc9296b3f5675f529199bef03e2df281fa1fadb/email_validator-2.2.0-py3-none-any.whl", upload-time = 2024-06-20T11:30:28Z, size = 33521, hashes = { sha256 = "561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631" } }] + +[[packages]] +name = "executing" +version = "2.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/08/41/85d2d28466fca93737592b7f3cc456d1cfd6bcd401beceeba17e8e792b50/executing-2.0.1.tar.gz", upload-time = 2023-10-29T10:17:13Z, size = 836501, hashes = { sha256 = "35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl", upload-time = 2023-10-29T10:17:10Z, size = 24922, hashes = { sha256 = "eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc" } }] + +[[packages]] +name = "fake-firestore" +version = "0.13.1" +sdist = { url = "https://files.pythonhosted.org/packages/11/cc/5ee31fc19d664ae34a60639e5b06cc94cb46772ee9a9a93032f91c30b042/fake_firestore-0.13.1.tar.gz", upload-time = 2026-03-24T14:58:10Z, size = 16150, hashes = { sha256 = "184b6933075822f307e2967a32f868242be2389a55d187914a267356bd40f99c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b8/e0/e5a6dde2850d364522152cfbf74b9bdb7777ede7263173767d64c01f9922/fake_firestore-0.13.1-py3-none-any.whl", upload-time = 2026-03-24T14:58:08Z, size = 22508, hashes = { sha256 = "f8d29534681b84525761b2f32162afe5f0191d8f186def7f74261062198fe3f9" } }] + +[[packages]] +name = "fakeredis" +version = "2.36.2" +sdist = { url = "https://files.pythonhosted.org/packages/0a/ed/86ed74d8829c3bc565025c1c9efaf8518c9165fbf8c9cc2c026c8ed21bd9/fakeredis-2.36.2.tar.gz", upload-time = 2026-06-17T13:25:38Z, size = 213336, hashes = { sha256 = "c37a0b307fae3f27ec7c19e59519e57b8c52782e00303df9075361b5ba441be6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/fd/4d/e6e40f93031adbf654d34e542bd396e9f3bc1c6209b40c920d58c9e1317a/fakeredis-2.36.2-py3-none-any.whl", upload-time = 2026-06-17T13:25:36Z, size = 141039, hashes = { sha256 = "84cbb9c74ca8946c0d2499daadf3a5d0bfe3cfbac71e3398316d1a1eab3421c4" } }] + +[[packages]] +name = "fal-client" +version = "0.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/e3/54/7674e1c8181e5b4125dba43ea10e2324131bfee0498444d5bdf39907713b/fal_client-0.4.1.tar.gz", upload-time = 2024-06-28T18:43:25Z, size = 8413, hashes = { sha256 = "3121cdbf4be8a47226e6df8e782340c1a603b17ec04942a131c2929a32aedff3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/0d/fd/340396fdceb9ac2fac768f9d91b0e8a1cf18c554567afd9bf01b60c949e8/fal_client-0.4.1-py3-none-any.whl", upload-time = 2024-06-28T18:43:24Z, size = 6296, hashes = { sha256 = "3fe13ac5108a02c1c27e146e52dcbb0b10d33694d870c8a1769966af18ff4a3f" } }] + +[[packages]] +name = "fastapi" +version = "0.121.0" +sdist = { url = "https://files.pythonhosted.org/packages/8c/e3/77a2df0946703973b9905fd0cde6172c15e0781984320123b4f5079e7113/fastapi-0.121.0.tar.gz", upload-time = 2025-11-03T10:25:54Z, size = 342412, hashes = { sha256 = "06663356a0b1ee93e875bbf05a31fb22314f5bed455afaaad2b2dad7f26e98fa" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/dd/2c/42277afc1ba1a18f8358561eee40785d27becab8f80a1f945c0a3051c6eb/fastapi-0.121.0-py3-none-any.whl", upload-time = 2025-11-03T10:25:53Z, size = 109183, hashes = { sha256 = "8bdf1b15a55f4e4b0d6201033da9109ea15632cb76cf156e7b8b4019f2172106" } }] + +[[packages]] +name = "fastapi-cli" +version = "0.0.5" +sdist = { url = "https://files.pythonhosted.org/packages/c5/f8/1ad5ce32d029aeb9117e9a5a9b3e314a8477525d60c12a9b7730a3c186ec/fastapi_cli-0.0.5.tar.gz", upload-time = 2024-08-02T05:48:13Z, size = 15571, hashes = { sha256 = "d30e1239c6f46fcb95e606f02cdda59a1e2fa778a54b64686b3ff27f6211ff9f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/24/ea/4b5011012ac925fe2f83b19d0e09cee9d324141ec7bf5e78bb2817f96513/fastapi_cli-0.0.5-py3-none-any.whl", upload-time = 2024-08-02T05:48:11Z, size = 9489, hashes = { sha256 = "e94d847524648c748a5350673546bbf9bcaeb086b33c24f2e82e021436866a46" } }] + +[[packages]] +name = "fastapi-utilities" +version = "0.2.0" +sdist = { url = "https://files.pythonhosted.org/packages/35/fe/d213aec075b042672671dadfca1e41195a296c9fb5eafa4dfbd83f6ef312/fastapi_utilities-0.2.0.tar.gz", upload-time = 2023-12-23T12:00:00Z, size = 9001, hashes = { sha256 = "8932db04060cdd55c2630065865b43f61647125368405500732cd26d125af73c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/2a/98/2616c5353089f35b1fb4662149b956254db136ccecc8964a27aba7f4e586/fastapi_utilities-0.2.0-py3-none-any.whl", upload-time = 2023-12-23T11:59:58Z, size = 14268, hashes = { sha256 = "f2f0c91a279141185ed8de10f2d4c30dd85f80a983c09cb5535302ad6299444f" } }] + +[[packages]] +name = "filelock" +version = "3.20.3" +sdist = { url = "https://files.pythonhosted.org/packages/1d/65/ce7f1b70157833bf3cb851b556a37d4547ceafc158aa9b34b36782f23696/filelock-3.20.3.tar.gz", upload-time = 2026-01-09T17:55:05Z, size = 19485, hashes = { sha256 = "18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b5/36/7fb70f04bf00bc646cd5bb45aa9eddb15e19437a28b8fb2b4a5249fac770/filelock-3.20.3-py3-none-any.whl", upload-time = 2026-01-09T17:55:04Z, size = 16701, hashes = { sha256 = "4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1" } }] + +[[packages]] +name = "filetype" +version = "1.2.0" +sdist = { url = "https://files.pythonhosted.org/packages/bb/29/745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1/filetype-1.2.0.tar.gz", upload-time = 2022-11-02T17:34:04Z, size = 998020, hashes = { sha256 = "66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", upload-time = 2022-11-02T17:34:01Z, size = 19970, hashes = { sha256 = "7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25" } }] + +[[packages]] +name = "firebase-admin" +version = "6.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/b5/cf/3460630d2290b0f5982801271404ade7363f5205feb63f781db417a3ebc2/firebase_admin-6.5.0.tar.gz", upload-time = 2024-03-11T14:53:31Z, size = 99896, hashes = { sha256 = "e716dde1447f0a1cd1523be76ff872df33c4e1a3c079564ace033b2ad60bcc4f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/8a/68/ef35057415342fc14bdc5f7fc999d417de5a4efd25e1352d4df8e40cb628/firebase_admin-6.5.0-py3-none-any.whl", upload-time = 2024-03-11T14:53:29Z, size = 126345, hashes = { sha256 = "fe34ee3ca0e625c5156b3931ca4b4b69b5fc344dbe51bba9706ff674ce277898" } }] + +[[packages]] +name = "flatbuffers" +version = "24.3.25" +sdist = { url = "https://files.pythonhosted.org/packages/a9/74/2df95ef84b214d2bee0886d572775a6f38793f5ca6d7630c3239c91104ac/flatbuffers-24.3.25.tar.gz", upload-time = 2024-03-26T05:33:36Z, size = 22139, hashes = { sha256 = "de2ec5b203f21441716617f38443e0a8ebf3d25bf0d9c0bb0ce68fa00ad546a4" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/41/f0/7e988a019bc54b2dbd0ad4182ef2d53488bb02e58694cd79d61369e85900/flatbuffers-24.3.25-py2.py3-none-any.whl", upload-time = 2024-03-26T05:33:35Z, size = 26784, hashes = { sha256 = "8dbdec58f935f3765e4f7f3cf635ac3a77f83568138d6a2311f524ec96364812" } }] + +[[packages]] +name = "fonttools" +version = "4.60.2" +sdist = { url = "https://files.pythonhosted.org/packages/3e/c4/db6a7b5eb0656534c3aa2596c2c5e18830d74f1b9aa5aa8a7dff63a0b11d/fonttools-4.60.2.tar.gz", upload-time = 2025-12-09T13:38:11Z, size = 3562254, hashes = { sha256 = "d29552e6b155ebfc685b0aecf8d429cb76c14ab734c22ef5d3dea6fdf800c92c" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/06/5353bea128ff39e857c31de3dd605725b4add956badae0b31bc9a50d4c8e/fonttools-4.60.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-12-09T13:36:21Z, size = 5031652, hashes = { sha256 = "13a53d479d187b09bfaa4a35ffcbc334fc494ff355f0a587386099cb66674f1e" } }, + { url = "https://files.pythonhosted.org/packages/79/6c/10280af05b44fafd1dff69422805061fa1af29270bc52dce031ac69540bf/fonttools-4.60.2-py3-none-any.whl", upload-time = 2025-12-09T13:38:09Z, size = 1144610, hashes = { sha256 = "73cf92eeda67cf6ff10c8af56fc8f4f07c1647d989a979be9e388a49be26552a" } }, +] + +[[packages]] +name = "frozenlist" +version = "1.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/cf/3d/2102257e7acad73efc4a0c306ad3953f68c504c16982bbdfee3ad75d8085/frozenlist-1.4.1.tar.gz", upload-time = 2023-12-15T08:42:23Z, size = 37820, hashes = { sha256 = "c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/c9/0bc5ee7e1f5cc7358ab67da0b7dfe60fbd05c254cea5c6108e7d1ae28c63/frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2023-12-15T08:41:03Z, size = 272276, hashes = { sha256 = "4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19" } }, + { url = "https://files.pythonhosted.org/packages/83/10/466fe96dae1bff622021ee687f68e5524d6392b0a2f80d05001cd3a451ba/frozenlist-1.4.1-py3-none-any.whl", upload-time = 2023-12-15T08:42:22Z, size = 11552, hashes = { sha256 = "04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7" } }, +] + +[[packages]] +name = "fsspec" +version = "2024.6.1" +sdist = { url = "https://files.pythonhosted.org/packages/90/b6/eba5024a9889fcfff396db543a34bef0ab9d002278f163129f9f01005960/fsspec-2024.6.1.tar.gz", upload-time = 2024-06-27T14:35:45Z, size = 284584, hashes = { sha256 = "fad7d7e209dd4c1208e3bbfda706620e0da5142bebbd9c384afb95b07e798e49" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/5e/44/73bea497ac69bafde2ee4269292fa3b41f1198f4bb7bbaaabde30ad29d4a/fsspec-2024.6.1-py3-none-any.whl", upload-time = 2024-06-27T14:35:42Z, size = 177561, hashes = { sha256 = "3cb443f8bcd2efb31295a5b9fdb02aee81d8452c80d28f97a6d0959e6cee101e" } }] + +[[packages]] +name = "gitdb" +version = "4.0.11" +sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", upload-time = 2023-10-20T07:43:19Z, size = 394469, hashes = { sha256 = "bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/fd/5b/8f0c4a5bb9fd491c277c21eff7ccae71b47d43c4446c9d0c6cff2fe8c2c4/gitdb-4.0.11-py3-none-any.whl", upload-time = 2023-10-20T07:43:16Z, size = 62721, hashes = { sha256 = "81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4" } }] + +[[packages]] +name = "gitpython" +version = "3.1.50" +sdist = { url = "https://files.pythonhosted.org/packages/33/f6/354ae6491228b5eb40e10d89c4d13c651fe1cf7556e35ebdded50cff57ce/gitpython-3.1.50.tar.gz", upload-time = 2026-05-06T04:01:26Z, size = 219798, hashes = { sha256 = "80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/20/7a/1c6e3562dfd8950adbb11ffbc65d21e7c89d01a6e4f137fa981056de25c5/gitpython-3.1.50-py3-none-any.whl", upload-time = 2026-05-06T04:01:23Z, size = 212507, hashes = { sha256 = "d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9" } }] + +[[packages]] +name = "google-ai-generativelanguage" +version = "0.11.0" +sdist = { url = "https://files.pythonhosted.org/packages/b3/36/9365ca196c4753d0d22951ee0147ecb2124382a010d5dbfb9f3ecd57f2cf/google_ai_generativelanguage-0.11.0.tar.gz", upload-time = 2026-03-30T22:51:43Z, size = 1539696, hashes = { sha256 = "d9e24e9836e894a85b52ca03d03530988aeb492d48df71cd1573dc1c3b6d81fc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/06/8c/dc1faf90d7a6ec77e09a6706abefabb41ae5b8d838e5e5b16914da26ee1e/google_ai_generativelanguage-0.11.0-py3-none-any.whl", upload-time = 2026-03-30T22:47:56Z, size = 1432183, hashes = { sha256 = "f797f307f0969ae49622e09c1d1a23aa86c7538ffae881279506548166e91d45" } }] + +[[packages]] +name = "google-api-core" +version = "2.19.1" +sdist = { url = "https://files.pythonhosted.org/packages/c2/41/42a127bf163d9bf1f21540a3bf41c69b231b88707d8d753680b8878201a6/google-api-core-2.19.1.tar.gz", upload-time = 2024-06-24T16:51:17Z, size = 148925, hashes = { sha256 = "f4695f1e3650b316a795108a76a1c416e6afb036199d1c1f1f110916df479ffd" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/44/99/daa3541e8ecd7d8b7907b714ba92126097a976b5b3dbabdb5febdcf08554/google_api_core-2.19.1-py3-none-any.whl", upload-time = 2024-06-24T16:51:15Z, size = 139384, hashes = { sha256 = "f12a9b8309b5e21d92483bbd47ce2c445861ec7d269ef6784ecc0ea8c1fa6125" } }] + +[[packages]] +name = "google-api-python-client" +version = "2.139.0" +sdist = { url = "https://files.pythonhosted.org/packages/d9/a1/0bd557922bd9cf8b544547f3e91346fda767c11831250cf90f1d7ec920d5/google_api_python_client-2.139.0.tar.gz", upload-time = 2024-07-30T14:38:20Z, size = 11606939, hashes = { sha256 = "ed4bc3abe2c060a87412465b4e8254620bbbc548eefc5388e2c5ff912d36a68b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1c/8a/12a389757b025dda3d6df29c4143dd896a3cd837f00587e162ad4baf3d31/google_api_python_client-2.139.0-py2.py3-none-any.whl", upload-time = 2024-07-30T14:38:16Z, size = 12105887, hashes = { sha256 = "1850a92505d91a82e2ca1635ab2b8dff179f4b67082c2651e1db332e8039840c" } }] + +[[packages]] +name = "google-auth" +version = "2.32.0" +sdist = { url = "https://files.pythonhosted.org/packages/8c/a3/cc4dc2e8a7f67012a26dec5b6b1fdf5261b12e7d54981c88de2580315726/google_auth-2.32.0.tar.gz", upload-time = 2024-07-08T23:17:04Z, size = 254614, hashes = { sha256 = "49315be72c55a6a37d62819e3573f6b416aca00721f7e3e31a008d928bf64022" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e7/00/85c22f7f73fa2e88dfbf0e1f63c565386ba40e0264b59c8a4362ae27c9fc/google_auth-2.32.0-py2.py3-none-any.whl", upload-time = 2024-07-08T23:17:00Z, size = 195501, hashes = { sha256 = "53326ea2ebec768070a94bee4e1b9194c9646ea0c2bd72422785bd0f9abfad7b" } }] + +[[packages]] +name = "google-auth-httplib2" +version = "0.2.0" +sdist = { url = "https://files.pythonhosted.org/packages/56/be/217a598a818567b28e859ff087f347475c807a5649296fb5a817c58dacef/google-auth-httplib2-0.2.0.tar.gz", upload-time = 2023-12-12T17:40:30Z, size = 10842, hashes = { sha256 = "38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/be/8a/fe34d2f3f9470a27b01c9e76226965863f153d5fbe276f83608562e49c04/google_auth_httplib2-0.2.0-py2.py3-none-any.whl", upload-time = 2023-12-12T17:40:13Z, size = 9253, hashes = { sha256 = "b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d" } }] + +[[packages]] +name = "google-cloud-core" +version = "2.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/b8/1f/9d1e0ba6919668608570418a9a51e47070ac15aeff64261fb092d8be94c0/google-cloud-core-2.4.1.tar.gz", upload-time = 2023-12-07T21:12:32Z, size = 35587, hashes = { sha256 = "9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/5e/0f/2e2061e3fbcb9d535d5da3f58cc8de4947df1786fe6a1355960feb05a681/google_cloud_core-2.4.1-py2.py3-none-any.whl", upload-time = 2023-12-07T21:12:29Z, size = 29233, hashes = { sha256 = "a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61" } }] + +[[packages]] +name = "google-cloud-firestore" +version = "2.20.0" +sdist = { url = "https://files.pythonhosted.org/packages/ce/9b/7c2f746cd8ec3f08d02d5626d863c2486dd69eb0b1f77bdcd9b0fe15d478/google_cloud_firestore-2.20.0.tar.gz", upload-time = 2025-01-13T21:39:43Z, size = 491103, hashes = { sha256 = "ad863be58667233921e02f0b81aa94a816f5e63a707cb33c97b1aa357a50566d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/80/3f/52fd16f3de3ed4ac2e3b7c728fb3b29b081791cf6292b74e4301ad489737/google_cloud_firestore-2.20.0-py2.py3-none-any.whl", upload-time = 2025-01-13T21:39:40Z, size = 337765, hashes = { sha256 = "505ef6951b56ea91f6762d99b3429ca6def6dceb254b4ba1ffc85e69b71414d7" } }] + +[[packages]] +name = "google-cloud-storage" +version = "2.18.0" +sdist = { url = "https://files.pythonhosted.org/packages/26/00/9d17394eba3e214ba3748d16eeac4b060d35a45da86061b3e3268077cc55/google_cloud_storage-2.18.0.tar.gz", upload-time = 2024-07-22T22:21:52Z, size = 5532490, hashes = { sha256 = "0aa3f7c57f3632f81b455d91558d2b27ada96eee2de3aaa17f689db1470d9578" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/27/6f/13f385443cba65e04922881fc44ad3fec51bc12bfcbb17488cee61f50e2f/google_cloud_storage-2.18.0-py2.py3-none-any.whl", upload-time = 2024-07-22T22:21:49Z, size = 130452, hashes = { sha256 = "e8e1a9577952143c3fca8163005ecfadd2d70ec080fa158a8b305000e2c22fbb" } }] + +[[packages]] +name = "google-cloud-tasks" +version = "2.16.4" +sdist = { url = "https://files.pythonhosted.org/packages/e8/b7/93c04dc64b66aabb9560a72a518f98a2b61b91cbba115ed5e466313ce2b8/google-cloud-tasks-2.16.4.tar.gz", upload-time = 2024-07-08T19:25:29Z, size = 306730, hashes = { sha256 = "61033c1edd7dc5aa3b9fbe5c8deb64be0c50e0baee9d9465f3f8b75b2cda55b9" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/40/63/55c80136afe926a2adcb94fb6b5cfcb4be66f8f30b6ed692d2c9bb07e42f/google_cloud_tasks-2.16.4-py2.py3-none-any.whl", upload-time = 2024-07-08T19:25:27Z, size = 259545, hashes = { sha256 = "7db2b364ded9c2e0143b2794d1ae53ef7461a99567698e3e4ba9e02b614e1adb" } }] + +[[packages]] +name = "google-cloud-translate" +version = "3.20.2" +sdist = { url = "https://files.pythonhosted.org/packages/97/e8/6357631b843d38e696da0a3cce12f51e4d7cbb41f1d8872524f6fb9c4644/google_cloud_translate-3.20.2.tar.gz", upload-time = 2025-03-17T11:37:42Z, size = 254012, hashes = { sha256 = "b54384ee55f4bc5d966cee0e10b0814ffee1375c1f2af70b9220d3bcf58d85f8" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a4/ed/6fe8c1e2c02504d4dcbb678b4f472ce3c985bdf0223189a15cdc3ff4c161/google_cloud_translate-3.20.2-py3-none-any.whl", upload-time = 2025-03-17T11:37:41Z, size = 198465, hashes = { sha256 = "6208d6a740ecdcf9076c31994510eb02697261d89fd68fad6bc87f4dea29dce2" } }] + +[[packages]] +name = "google-crc32c" +version = "1.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/d3/a5/4bb58448fffd36ede39684044df93a396c13d1ea3516f585767f9f960352/google-crc32c-1.5.0.tar.gz", upload-time = 2022-09-01T14:33:40Z, size = 12689, hashes = { sha256 = "89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/72/92/2a2fa23db7d0b0382accbdf09768c28f7c07fc8c354cdcf2f44a47f4314e/google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2022-09-01T14:32:35Z, size = 32317, hashes = { sha256 = "77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906" } }] + +[[packages]] +name = "google-resumable-media" +version = "2.7.1" +sdist = { url = "https://files.pythonhosted.org/packages/d6/3d/d51e8c691d24e08cbf5b1924a4f950c492d44f7e3ccbacf362f1de04ce2b/google-resumable-media-2.7.1.tar.gz", upload-time = 2024-06-10T22:21:54Z, size = 2163099, hashes = { sha256 = "eae451a7b2e2cdbaaa0fd2eb00cc8a1ee5e95e16b55597359cbc3d27d7d90e33" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/52/0e/9705df684aa14e9097d739a812c6d32ae1f71aabfd96c47489655cbb6828/google_resumable_media-2.7.1-py2.py3-none-any.whl", upload-time = 2024-06-10T22:21:52Z, size = 81231, hashes = { sha256 = "103ebc4ba331ab1bfdac0250f8033627a2cd7cde09e7ccff9181e31ba4315b2c" } }] + +[[packages]] +name = "googleapis-common-protos" +version = "1.63.2" +sdist = { url = "https://files.pythonhosted.org/packages/0b/1a/41723ae380fa9c561cbe7b61c4eef9091d5fe95486465ccfc84845877331/googleapis-common-protos-1.63.2.tar.gz", upload-time = 2024-06-24T16:51:33Z, size = 112890, hashes = { sha256 = "27c5abdffc4911f28101e635de1533fb4cfd2c37fbaa9174587c799fac90aa87" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/02/48/87422ff1bddcae677fb6f58c97f5cfc613304a5e8ce2c3662760199c0a84/googleapis_common_protos-1.63.2-py2.py3-none-any.whl", upload-time = 2024-06-24T16:51:31Z, size = 220001, hashes = { sha256 = "27a2499c7e8aff199665b22741997e485eccc8645aa9176c7c988e6fae507945" } }] + +[[packages]] +name = "graphviz" +version = "0.20.3" +sdist = { url = "https://files.pythonhosted.org/packages/fa/83/5a40d19b8347f017e417710907f824915fba411a9befd092e52746b63e9f/graphviz-0.20.3.zip", upload-time = 2024-03-21T07:50:45Z, size = 256455, hashes = { sha256 = "09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/00/be/d59db2d1d52697c6adc9eacaf50e8965b6345cc143f671e1ed068818d5cf/graphviz-0.20.3-py3-none-any.whl", upload-time = 2024-03-21T07:50:43Z, size = 47126, hashes = { sha256 = "81f848f2904515d8cd359cc611faba817598d2feaac4027b266aa3eda7b3dde5" } }] + +[[packages]] +name = "greenlet" +version = "3.5.2" +marker = "(python_full_version < '3.13' and platform_machine == 'AMD64') or (python_full_version < '3.13' and platform_machine == 'WIN32') or (python_full_version < '3.13' and platform_machine == 'aarch64') or (python_full_version < '3.13' and platform_machine == 'amd64') or (python_full_version < '3.13' and platform_machine == 'ppc64le') or (python_full_version < '3.13' and platform_machine == 'win32') or (python_full_version < '3.13' and platform_machine == 'x86_64')" +sdist = { url = "https://files.pythonhosted.org/packages/dd/8b/befc3cb36965f397d87e86fb3b00e3ec0dc67c1ecb0986d7f54ee528f018/greenlet-3.5.2.tar.gz", upload-time = 2026-06-17T20:19:01Z, size = 199243, hashes = { sha256 = "c1b906220d83c140361cdd12eef970fb5881a168b98ee58a43786426173da14c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/bd/d4/642833e778c17d32b5cabb793e14ce7364c55952462fc506fecdee55d485/greenlet-3.5.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-06-17T17:39:26Z, size = 616877, hashes = { sha256 = "c1c1e5ad80f1f38ea479b83b39dccb20874cfe9ad5e52f87225fa294ba4d39a1" } }] + +[[packages]] +name = "groq" +version = "0.9.0" +sdist = { url = "https://files.pythonhosted.org/packages/48/c8/5ea4aa6b329fd01795acdf4cb0c78d92860253d108eddfc008fccbe56642/groq-0.9.0.tar.gz", upload-time = 2024-06-11T20:12:03Z, size = 68728, hashes = { sha256 = "130ed5e35d3acfaab46b9e7a078eeaebf91052f4a9d71f86f87fb319b5fec332" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/59/7c/81b1302925c2452d540c7d7784b316017b69e1f3f19c2996bcb09360437b/groq-0.9.0-py3-none-any.whl", upload-time = 2024-06-11T20:12:02Z, size = 103457, hashes = { sha256 = "d0e46f4ad645504672bb09c8100af3ced3a7db0d5119dc13e4aca535fc455874" } }] + +[[packages]] +name = "grpc-google-iam-v1" +version = "0.14.4" +sdist = { url = "https://files.pythonhosted.org/packages/44/4f/d098419ad0bfc06c9ce440575f05aa22d8973b6c276e86ac7890093d3c37/grpc_google_iam_v1-0.14.4.tar.gz", upload-time = 2026-04-01T01:57:49Z, size = 23706, hashes = { sha256 = "392b3796947ed6334e61171d9ab06bf7eb357f554e5fc7556ad7aab6d0e17038" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/89/22/c2dd50c09bf679bd38173656cd4402d2511e563b33bc88f90009cf50613c/grpc_google_iam_v1-0.14.4-py3-none-any.whl", upload-time = 2026-04-01T01:57:47Z, size = 32675, hashes = { sha256 = "412facc320fcbd94034b4df3d557662051d4d8adfa86e0ddb4dca70a3f739964" } }] + +[[packages]] +name = "grpcio" +version = "1.66.0" +sdist = { url = "https://files.pythonhosted.org/packages/7d/0a/b79043717cc40861145f12d2045a0064f43eeb4efa359d84e75e0ff2d3ba/grpcio-1.66.0.tar.gz", upload-time = 2024-08-22T19:23:07Z, size = 12347554, hashes = { sha256 = "c1ea4c528e7db6660718e4165fd1b5ac24b79a70c870a7bc0b7bdb9babab7c1e" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/47/1b/878a82c983a7f7cc8847075357ac41bbbf0617327f1e0aad26f71e65550c/grpcio-1.66.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-22T19:14:57Z, size = 5732303, hashes = { sha256 = "de9e20a0acb709dcfa15a622c91f584f12c9739a79c47999f73435d2b3cc8a3b" } }] + +[[packages]] +name = "grpcio-status" +version = "1.66.0" +sdist = { url = "https://files.pythonhosted.org/packages/59/06/5e03a01d9f317328fec5527622ad6d93b9b0d9c0bd90235e7cf08dd7e0a9/grpcio_status-1.66.0.tar.gz", upload-time = 2024-08-22T19:23:22Z, size = 13535, hashes = { sha256 = "c246b46c15295068fa36fc4b0b4a43f9463b75967b5a8d053f5e1d56e7c94b6e" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7c/9a/d2c60c4f7faee3dcfde2033ca71fa16a26478b67c168ab0c8947c4d8e83c/grpcio_status-1.66.0-py3-none-any.whl", upload-time = 2024-08-22T19:17:22Z, size = 14444, hashes = { sha256 = "fd89c8ebcb87eea743327b24e31abb1b4e758cd6e6ede15bfb334c33e661384d" } }] + +[[packages]] +name = "grpcio-tools" +version = "1.66.0" +sdist = { url = "https://files.pythonhosted.org/packages/44/ec/c06f5446730961606b2f50c11dece57f01b48d047802c156ab636176e7a1/grpcio_tools-1.66.0.tar.gz", upload-time = 2024-08-22T19:23:27Z, size = 5134272, hashes = { sha256 = "6e111f73f400d64b8dc32f5dab67c5e806c290eb2658fecdbfc44c2bb1020efc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/50/a0/9560aacc33a22ff2ef25d9a84cc55bf5cbee9b2c4875ef6a5b3ffbbb7f94/grpcio_tools-1.66.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-22T19:17:52Z, size = 2409743, hashes = { sha256 = "cc188a5fbaf25e3a5f91f815d3928b1e40ba38f5a5f5b5e86f640c575f7db1c9" } }] + +[[packages]] +name = "grpclib" +version = "0.4.7" +sdist = { url = "https://files.pythonhosted.org/packages/79/b9/55936e462a5925190d7427e880b3033601d1effd13809b483d13a926061a/grpclib-0.4.7.tar.gz", upload-time = 2023-12-24T17:47:41Z, size = 61254, hashes = { sha256 = "2988ef57c02b22b7a2e8e961792c41ccf97efc2ace91ae7a5b0de03c363823c3" } } + +[[packages]] +name = "h11" +version = "0.16.0" +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", upload-time = 2025-04-24T03:35:25Z, size = 101250, hashes = { sha256 = "4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", upload-time = 2025-04-24T03:35:24Z, size = 37515, hashes = { sha256 = "63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86" } }] + +[[packages]] +name = "h2" +version = "4.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/1d/17/afa56379f94ad0fe8defd37d6eb3f89a25404ffc71d4d848893d270325fc/h2-4.3.0.tar.gz", upload-time = 2025-08-23T18:12:19Z, size = 2152026, hashes = { sha256 = "6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/69/b2/119f6e6dcbd96f9069ce9a2665e0146588dc9f88f29549711853645e736a/h2-4.3.0-py3-none-any.whl", upload-time = 2025-08-23T18:12:17Z, size = 61779, hashes = { sha256 = "c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd" } }] + +[[packages]] +name = "hpack" +version = "4.1.0" +sdist = { url = "https://files.pythonhosted.org/packages/2c/48/71de9ed269fdae9c8057e5a4c0aa7402e8bb16f2c6e90b3aa53327b113f8/hpack-4.1.0.tar.gz", upload-time = 2025-01-22T21:44:58Z, size = 51276, hashes = { sha256 = "ec5eca154f7056aa06f196a557655c5b009b382873ac8d1e66e79e87535f1dca" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/07/c6/80c95b1b2b94682a72cbdbfb85b81ae2daffa4291fbfa1b1464502ede10d/hpack-4.1.0-py3-none-any.whl", upload-time = 2025-01-22T21:44:56Z, size = 34357, hashes = { sha256 = "157ac792668d995c657d93111f46b4535ed114f0c9c8d672271bbec7eae1b496" } }] + +[[packages]] +name = "httpcore" +version = "1.0.9" +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", upload-time = 2025-04-24T22:06:22Z, size = 85484, hashes = { sha256 = "6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", upload-time = 2025-04-24T22:06:20Z, size = 78784, hashes = { sha256 = "2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55" } }] + +[[packages]] +name = "httplib2" +version = "0.22.0" +sdist = { url = "https://files.pythonhosted.org/packages/3d/ad/2371116b22d616c194aa25ec410c9c6c37f23599dcd590502b74db197584/httplib2-0.22.0.tar.gz", upload-time = 2023-03-21T22:29:37Z, size = 351116, hashes = { sha256 = "d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a8/6c/d2fbdaaa5959339d53ba38e94c123e4e84b8fbc4b84beb0e70d7c1608486/httplib2-0.22.0-py3-none-any.whl", upload-time = 2023-03-21T22:29:35Z, size = 96854, hashes = { sha256 = "14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc" } }] + +[[packages]] +name = "httptools" +version = "0.6.1" +sdist = { url = "https://files.pythonhosted.org/packages/67/1d/d77686502fced061b3ead1c35a2d70f6b281b5f723c4eff7a2277c04e4a2/httptools-0.6.1.tar.gz", upload-time = 2023-10-16T17:42:36Z, size = 191228, hashes = { sha256 = "c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/59/23/047a89e66045232fb82c50ae57699e40f70e073ae5ccd53f54e532fbd2a2/httptools-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2023-10-16T17:41:55Z, size = 318547, hashes = { sha256 = "7d9ceb2c957320def533671fc9c715a80c47025139c8d1f3797477decbc6edd2" } }] + +[[packages]] +name = "httpx" +version = "0.28.0" +sdist = { url = "https://files.pythonhosted.org/packages/10/df/676b7cf674dd1bdc71a64ad393c89879f75e4a0ab8395165b498262ae106/httpx-0.28.0.tar.gz", upload-time = 2024-11-28T14:54:56Z, size = 141307, hashes = { sha256 = "0858d3bab51ba7e386637f22a61d8ccddaeec5f3fe4209da3a6168dbb91573e0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/8f/fb/a19866137577ba60c6d8b69498dc36be479b13ba454f691348ddf428f185/httpx-0.28.0-py3-none-any.whl", upload-time = 2024-11-28T14:54:55Z, size = 73551, hashes = { sha256 = "dc0b419a0cfeb6e8b34e85167c0da2671206f5095f1baa9663d23bcfd6b535fc" } }] + +[[packages]] +name = "httpx-sse" +version = "0.4.0" +sdist = { url = "https://files.pythonhosted.org/packages/4c/60/8f4281fa9bbf3c8034fd54c0e7412e66edbab6bc74c4996bd616f8d0406e/httpx-sse-0.4.0.tar.gz", upload-time = 2023-12-22T08:01:21Z, size = 12624, hashes = { sha256 = "1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e1/9b/a181f281f65d776426002f330c31849b86b31fc9d848db62e16f03ff739f/httpx_sse-0.4.0-py3-none-any.whl", upload-time = 2023-12-22T08:01:19Z, size = 7819, hashes = { sha256 = "f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f" } }] + +[[packages]] +name = "huggingface-hub" +version = "0.24.5" +sdist = { url = "https://files.pythonhosted.org/packages/ec/07/b70a5b9c3da399a54a446a4750763c9030f47fa0491ef31a3fa8de4cb0d2/huggingface_hub-0.24.5.tar.gz", upload-time = 2024-07-31T09:02:35Z, size = 349225, hashes = { sha256 = "7b45d6744dd53ce9cbf9880957de00e9d10a9ae837f1c9b7255fc8fa4e8264f3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/0b/05/31b21998f68c31e7ffcc27ff08531fb9af5506d765ce8d661fb0036e6918/huggingface_hub-0.24.5-py3-none-any.whl", upload-time = 2024-07-31T09:02:32Z, size = 417510, hashes = { sha256 = "d93fb63b1f1a919a22ce91a14518974e81fc4610bf344dfe7572343ce8d3aced" } }] + +[[packages]] +name = "humanfriendly" +version = "10.0" +sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", upload-time = 2021-09-17T21:40:43Z, size = 360702, hashes = { sha256 = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", upload-time = 2021-09-17T21:40:39Z, size = 86794, hashes = { sha256 = "1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477" } }] + +[[packages]] +name = "hyperframe" +version = "6.1.0" +sdist = { url = "https://files.pythonhosted.org/packages/02/e7/94f8232d4a74cc99514c13a9f995811485a6903d48e5d952771ef6322e30/hyperframe-6.1.0.tar.gz", upload-time = 2025-01-22T21:41:49Z, size = 26566, hashes = { sha256 = "f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/48/30/47d0bf6072f7252e6521f3447ccfa40b421b6824517f82854703d0f5a98b/hyperframe-6.1.0-py3-none-any.whl", upload-time = 2025-01-22T21:41:47Z, size = 13007, hashes = { sha256 = "b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5" } }] + +[[packages]] +name = "idna" +version = "3.15" +sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", upload-time = 2026-05-12T22:45:57Z, size = 199245, hashes = { sha256 = "ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", upload-time = 2026-05-12T22:45:55Z, size = 72340, hashes = { sha256 = "048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8" } }] + +[[packages]] +name = "iniconfig" +version = "2.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", upload-time = 2025-10-18T21:55:43Z, size = 20503, hashes = { sha256 = "c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", upload-time = 2025-10-18T21:55:41Z, size = 7484, hashes = { sha256 = "f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12" } }] + +[[packages]] +name = "ipython" +version = "8.26.0" +sdist = { url = "https://files.pythonhosted.org/packages/7e/f4/dc45805e5c3e327a626139c023b296bafa4537e602a61055d377704ca54c/ipython-8.26.0.tar.gz", upload-time = 2024-06-28T08:45:42Z, size = 5493422, hashes = { sha256 = "1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/73/48/4d2818054671bb272d1b12ca65748a4145dc602a463683b5c21b260becee/ipython-8.26.0-py3-none-any.whl", upload-time = 2024-06-28T08:45:24Z, size = 817939, hashes = { sha256 = "e6b347c27bdf9c32ee9d31ae85defc525755a1869f14057e900675b9e8d6e6ff" } }] + +[[packages]] +name = "jedi" +version = "0.19.1" +sdist = { url = "https://files.pythonhosted.org/packages/d6/99/99b493cec4bf43176b678de30f81ed003fd6a647a301b9c927280c600f0a/jedi-0.19.1.tar.gz", upload-time = 2023-10-02T09:20:39Z, size = 1227821, hashes = { sha256 = "cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl", upload-time = 2023-10-02T09:20:35Z, size = 1569361, hashes = { sha256 = "e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0" } }] + +[[packages]] +name = "jinja2" +version = "3.1.6" +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", upload-time = 2025-03-05T20:05:02Z, size = 245115, hashes = { sha256 = "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", upload-time = 2025-03-05T20:05:00Z, size = 134899, hashes = { sha256 = "85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" } }] + +[[packages]] +name = "jiter" +version = "0.15.0" +sdist = { url = "https://files.pythonhosted.org/packages/66/b5/55f06bb281d92fb3cc86d14e1def2bd908bb77693183e7cb1f5a3c388b0c/jiter-0.15.0.tar.gz", upload-time = 2026-05-19T10:09:48Z, size = 166640, hashes = { sha256 = "4251acc80e2b7c9b7b8823456ea0fceeb0734dac2df7636d3c711b38476b5a76" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7b/7e/1c445c2b6f0e30a274dc8082e0c3c7825411cce80d726bccd697c98cc8d3/jiter-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2026-05-19T10:07:22Z, size = 349428, hashes = { sha256 = "f3d37768fce7f88dd2a8c6091f2325dea27d30d30d5c6e7a1c0f0af77723b708" } }] + +[[packages]] +name = "jiwer" +version = "3.0.4" +sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/9db54957d7fa66272de22ec9c82f37089e9b15398273de41854840e6e21c/jiwer-3.0.4.tar.gz", upload-time = 2024-05-05T08:14:48Z, size = 17515, hashes = { sha256 = "2438acdc7ca22128fcab4be60db595809d2b5e73785b736de36dc3281a2a6ae8" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/00/b9/113eba899451e6dc2acd3a3637ce9ef327ea6dea2e7a93dcd3523197f395/jiwer-3.0.4-py3-none-any.whl", upload-time = 2024-05-05T08:14:46Z, size = 21972, hashes = { sha256 = "d6761a1cb7c5a8e3f4bafa96cf4b4f125e2ccc82b625f74dd23557414e97f86f" } }] + +[[packages]] +name = "joblib" +version = "1.4.2" +sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", upload-time = 2024-05-02T12:15:05Z, size = 2116621, hashes = { sha256 = "2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", upload-time = 2024-05-02T12:15:00Z, size = 301817, hashes = { sha256 = "06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6" } }] + +[[packages]] +name = "jsonpatch" +version = "1.33" +sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", upload-time = 2023-06-26T12:07:29Z, size = 21699, hashes = { sha256 = "9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", upload-time = 2023-06-16T21:01:28Z, size = 12898, hashes = { sha256 = "0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade" } }] + +[[packages]] +name = "jsonpointer" +version = "3.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", upload-time = 2024-06-10T19:24:42Z, size = 9114, hashes = { sha256 = "2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", upload-time = 2024-06-10T19:24:40Z, size = 7595, hashes = { sha256 = "13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942" } }] + +[[packages]] +name = "jsonschema" +version = "4.23.0" +sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", upload-time = 2024-07-08T18:40:05Z, size = 325778, hashes = { sha256 = "d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", upload-time = 2024-07-08T18:40:00Z, size = 88462, hashes = { sha256 = "fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566" } }] + +[[packages]] +name = "jsonschema-specifications" +version = "2023.12.1" +sdist = { url = "https://files.pythonhosted.org/packages/f8/b9/cc0cc592e7c195fb8a650c1d5990b10175cf13b4c97465c72ec841de9e4b/jsonschema_specifications-2023.12.1.tar.gz", upload-time = 2023-12-25T15:16:53Z, size = 13983, hashes = { sha256 = "48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ee/07/44bd408781594c4d0a027666ef27fab1e441b109dc3b76b4f836f8fd04fe/jsonschema_specifications-2023.12.1-py3-none-any.whl", upload-time = 2023-12-25T15:16:51Z, size = 18482, hashes = { sha256 = "87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c" } }] + +[[packages]] +name = "kiwisolver" +version = "1.4.5" +sdist = { url = "https://files.pythonhosted.org/packages/b9/2d/226779e405724344fc678fcc025b812587617ea1a48b9442628b688e85ea/kiwisolver-1.4.5.tar.gz", upload-time = 2023-08-24T09:30:39Z, size = 97552, hashes = { sha256 = "e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2023-08-24T09:28:49Z, size = 1426259, hashes = { sha256 = "040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e" } }] + +[[packages]] +name = "langchain" +version = "1.2.9" +sdist = { url = "https://files.pythonhosted.org/packages/ff/d5/e7c8d18bf1ee2d37839dde161d523049fd0a5b172cf4c62f17090e1b4dcb/langchain-1.2.9.tar.gz", upload-time = 2026-02-06T12:39:41Z, size = 569621, hashes = { sha256 = "ae266c640b63c38f16b6d996a50aea575940b29b63cbc652c5d12f0111357f01" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f3/d9/ee07b79f8f1cfd87a6b147879149bdb03c04656e83e5a8c97f38d8915d07/langchain-1.2.9-py3-none-any.whl", upload-time = 2026-02-06T12:39:39Z, size = 111240, hashes = { sha256 = "c1af39d22b7f0415a6f8fa63b37f692335601d3333592c481b899166c55f3fcb" } }] + +[[packages]] +name = "langchain-classic" +version = "1.0.7" +sdist = { url = "https://files.pythonhosted.org/packages/9b/78/84b5065816f348c39fefa4316f209f0135e8410216340a953bec17d9e4e4/langchain_classic-1.0.7.tar.gz", upload-time = 2026-05-07T15:46:56Z, size = 10554118, hashes = { sha256 = "debbec8065e69b95108d2652e8d5c44f4516e19aa8d716c02ed2211c3aee099d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f5/78/2d9980d028ff0523eea503a77c200e2ff252a3a75eb6e7842bcf5f9c979b/langchain_classic-1.0.7-py3-none-any.whl", upload-time = 2026-05-07T15:46:54Z, size = 1041386, hashes = { sha256 = "d9d9be38f7aa534ed0259c2410432e34a1f80b1d491e686749bb55af56479be3" } }] + +[[packages]] +name = "langchain-community" +version = "0.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/53/97/a03585d42b9bdb6fbd935282d6e3348b10322a24e6ce12d0c99eb461d9af/langchain_community-0.4.1.tar.gz", upload-time = 2025-10-27T15:20:32Z, size = 33241144, hashes = { sha256 = "f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f0/a4/c4fde67f193401512337456cabc2148f2c43316e445f5decd9f8806e2992/langchain_community-0.4.1-py3-none-any.whl", upload-time = 2025-10-27T15:20:30Z, size = 2533285, hashes = { sha256 = "2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a" } }] + +[[packages]] +name = "langchain-core" +version = "1.3.3" +sdist = { url = "https://files.pythonhosted.org/packages/d3/ae/8b74458fc3850ec3d150eb9f45e857db129dafa801fb5cf173dfc9f8bbf3/langchain_core-1.3.3.tar.gz", upload-time = 2026-05-05T19:02:36Z, size = 915041, hashes = { sha256 = "fa510a5db8efdc0c6ff41c0939fb5c00a0183c11f6b84233e892e3227ff69182" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1f/01/4771b7ab2af1d1aba5b710bd8f13d9225c609425214b357590a17b01be77/langchain_core-1.3.3-py3-none-any.whl", upload-time = 2026-05-05T19:02:34Z, size = 543857, hashes = { sha256 = "18aae8506f37da7f74398492279a7d6efcee4f8e23c4c41c7af080eeb7ef7bd1" } }] + +[[packages]] +name = "langchain-google-genai" +version = "3.2.0" +sdist = { url = "https://files.pythonhosted.org/packages/ff/27/f3c8f47b7c194c42a7ea38e5b91b412c4bd45f97e702a96edad659312437/langchain_google_genai-3.2.0.tar.gz", upload-time = 2025-11-24T14:33:11Z, size = 242146, hashes = { sha256 = "1fa620ea9c655a37537e95438857c423e1a3599b5a665b8dd87064c76ee95b72" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/83/9d/c79a367e3379cf6b7d0cc43d558a411a5097d55291f2ce2f573420adb523/langchain_google_genai-3.2.0-py3-none-any.whl", upload-time = 2025-11-24T14:33:10Z, size = 57604, hashes = { sha256 = "689fc159d4623a184678e24771f6d52373e983a8fc8d342e44352aaf28e9445d" } }] + +[[packages]] +name = "langchain-openai" +version = "1.1.14" +sdist = { url = "https://files.pythonhosted.org/packages/8e/f5/b1a56f703fb90952b07ff9fb5507123a39df1267d62a7f2bb821c5dbb628/langchain_openai-1.1.14.tar.gz", upload-time = 2026-04-16T14:55:24Z, size = 1115195, hashes = { sha256 = "71b4262932fabe506ce79c175dbc956cc48f24d81e20b27662df493147750643" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/0b/fa/8c33befbc0cf81b21371cc1dab4e7bf94a80b8116194f263a5021ec02529/langchain_openai-1.1.14-py3-none-any.whl", upload-time = 2026-04-16T14:55:23Z, size = 88705, hashes = { sha256 = "cb525d2011f9813fc15a7dcfd4bca5b87badcbcb2c113a7fbe45d1b8a1bbb69c" } }] + +[[packages]] +name = "langchain-pinecone" +version = "0.2.13" +sdist = { url = "https://files.pythonhosted.org/packages/5f/e9/b52029651f6f8c0c585f26ae665a8ef34cd36a47b2590a2cd3a1a0b11d9d/langchain_pinecone-0.2.13.tar.gz", upload-time = 2025-11-02T19:11:45Z, size = 40655, hashes = { sha256 = "294a6da7e1a81d5805060e37639d3e4fb72cb239d651a34a4d1f81ba096f473a" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1e/cf/27ec504e2fa92e73d49bc49f4345d82e5b6e75158c56092f5140f6afc8bd/langchain_pinecone-0.2.13-py3-none-any.whl", upload-time = 2025-11-02T19:11:44Z, size = 26232, hashes = { sha256 = "2f9db3f9d8c634e8716eb8fb65a405458083c4d52810be76294665e2d75ad65a" } }] + +[[packages]] +name = "langchain-protocol" +version = "0.0.18" +sdist = { url = "https://files.pythonhosted.org/packages/d2/59/b5959aea96faa9146e2e49a7a22882b3528c62efafe9a6a95beab30c2305/langchain_protocol-0.0.18.tar.gz", upload-time = 2026-06-18T17:08:26Z, size = 6150, hashes = { sha256 = "ec3e11782f1ed0c9db38e5a9ed01b0e7a0d3fba406faa8aef6594b73c56a63e6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/99/2e/d82db9eec13ad0f72e7aaad5c4bc730ab111934fdc83c85523206eb9b0a0/langchain_protocol-0.0.18-py3-none-any.whl", upload-time = 2026-06-18T17:08:25Z, size = 7221, hashes = { sha256 = "70b53a86fbf9cedc863555effe44da192ab02d556ddbf2cf95b8873adcf41b5a" } }] + +[[packages]] +name = "langchain-text-splitters" +version = "1.1.2" +sdist = { url = "https://files.pythonhosted.org/packages/26/9f/6c545900fefb7b00ddfa3f16b80d61338a0ec68c31c5451eeeab99082760/langchain_text_splitters-1.1.2.tar.gz", upload-time = 2026-04-16T14:20:39Z, size = 293580, hashes = { sha256 = "782a723db0a4746ac91e251c7c1d57fd23636e4f38ed733074e28d7a86f41627" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d3/26/1ef06f56198d631296d646a6223de35bcc6cf9795ceb2442816bc963b84c/langchain_text_splitters-1.1.2-py3-none-any.whl", upload-time = 2026-04-16T14:20:38Z, size = 35903, hashes = { sha256 = "a2de0d799ff31886429fd6e2e0032df275b60ec817c19059a7b46181cc1c2f10" } }] + +[[packages]] +name = "langdetect" +version = "1.0.9" +sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz", upload-time = 2021-05-07T07:54:13Z, size = 981474, hashes = { sha256 = "cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0" } } + +[[packages]] +name = "langgraph" +version = "1.0.10" +sdist = { url = "https://files.pythonhosted.org/packages/55/92/14df6fefba28c10caf1cb05aa5b8c7bf005838fe32a86d903b6c7cc4018d/langgraph-1.0.10.tar.gz", upload-time = 2026-02-27T21:04:38Z, size = 511644, hashes = { sha256 = "73bd10ee14a8020f31ef07e9cd4c1a70c35cc07b9c2b9cd637509a10d9d51e29" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/5d/60/260e0c04620a37ba8916b712766c341cc5fc685dabc6948c899494bbc2ae/langgraph-1.0.10-py3-none-any.whl", upload-time = 2026-02-27T21:04:35Z, size = 160920, hashes = { sha256 = "7c298bef4f6ea292fcf9824d6088fe41a6727e2904ad6066f240c4095af12247" } }] + +[[packages]] +name = "langgraph-checkpoint" +version = "4.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/98/76/55a18c59dedf39688d72c4b06af73a5e3ea0d1a01bc867b88fbf0659f203/langgraph_checkpoint-4.0.0.tar.gz", upload-time = 2026-01-12T20:30:26Z, size = 137320, hashes = { sha256 = "814d1bd050fac029476558d8e68d87bce9009a0262d04a2c14b918255954a624" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/4a/de/ddd53b7032e623f3c7bcdab2b44e8bf635e468f62e10e5ff1946f62c9356/langgraph_checkpoint-4.0.0-py3-none-any.whl", upload-time = 2026-01-12T20:30:25Z, size = 46329, hashes = { sha256 = "3fa9b2635a7c5ac28b338f631abf6a030c3b508b7b9ce17c22611513b589c784" } }] + +[[packages]] +name = "langgraph-prebuilt" +version = "1.0.8" +sdist = { url = "https://files.pythonhosted.org/packages/0d/06/dd61a5c2dce009d1b03b1d56f2a85b3127659fdddf5b3be5d8f1d60820fb/langgraph_prebuilt-1.0.8.tar.gz", upload-time = 2026-02-19T18:14:39Z, size = 164442, hashes = { sha256 = "0cd3cf5473ced8a6cd687cc5294e08d3de57529d8dd14fdc6ae4899549efcf69" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/dc/41/ec966424ad3f2ed3996d24079d3342c8cd6c0bd0653c12b2a917a685ec6c/langgraph_prebuilt-1.0.8-py3-none-any.whl", upload-time = 2026-02-19T18:14:37Z, size = 35648, hashes = { sha256 = "d16a731e591ba4470f3e313a319c7eee7dbc40895bcf15c821f985a3522a7ce0" } }] + +[[packages]] +name = "langgraph-sdk" +version = "0.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/2b/1b/f328afb4f24f6e18333ff357d9580a3bb5b133ff2c7aae34fef7f5b87f31/langgraph_sdk-0.3.0.tar.gz", upload-time = 2025-12-12T22:19:30Z, size = 130366, hashes = { sha256 = "4145bc3c34feae227ae918341f66d3ba7d1499722c1ef4a8aae5ea828897d1d4" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/69/48/ee4d7afb3c3d38bd2ebe51a4d37f1ed7f1058dd242f35994b562203067aa/langgraph_sdk-0.3.0-py3-none-any.whl", upload-time = 2025-12-12T22:19:29Z, size = 66489, hashes = { sha256 = "c1ade483fba17ae354ee920e4779042b18d5aba875f2a858ba569f62f628f26f" } }] + +[[packages]] +name = "langsmith" +version = "0.8.0" +sdist = { url = "https://files.pythonhosted.org/packages/a8/64/95f1f013531395f4e8ed73caeee780f65c7c58fe028cb543f8937b45611b/langsmith-0.8.0.tar.gz", upload-time = 2026-04-30T22:13:07Z, size = 4432996, hashes = { sha256 = "59fe5b2a56bbbe14a08aa76691f84b49e8675dd21e11b57d80c6db8c08bac2e3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f3/e1/a4be2e696c9473bb53298df398237da5674704d781d4b748ed35aeef592a/langsmith-0.8.0-py3-none-any.whl", upload-time = 2026-04-30T22:13:05Z, size = 393268, hashes = { sha256 = "12cc4bc5622b835a6d841964d6034df3617bdb912dae0c1381fd0a68a9b3a3ef" } }] + +[[packages]] +name = "lazy-loader" +version = "0.4" +sdist = { url = "https://files.pythonhosted.org/packages/6f/6b/c875b30a1ba490860c93da4cabf479e03f584eba06fe5963f6f6644653d8/lazy_loader-0.4.tar.gz", upload-time = 2024-04-05T13:03:12Z, size = 15431, hashes = { sha256 = "47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl", upload-time = 2024-04-05T13:03:10Z, size = 12097, hashes = { sha256 = "342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc" } }] + +[[packages]] +name = "lc3py" +version = "1.1.3" +wheels = [{ url = "https://files.pythonhosted.org/packages/59/c9/f77aa6f2ab9121e52f08683dccc04fe89b25465c7a23f0e5eea61faee23e/lc3py-1.1.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-02-12T00:50:30Z, size = 144335, hashes = { sha256 = "601a9a2ea3135547f2d22a10475b5fec8f784f716f4b22a61acc3908c827694e" } }] + +[[packages]] +name = "llvmlite" +version = "0.43.0" +sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", upload-time = 2024-06-13T18:09:32Z, size = 157069, hashes = { sha256 = "ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/6b/99/5d00a7d671b1ba1751fc9f19d3b36f3300774c6eebe2bcdb5f6191763eb4/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-06-13T18:08:46Z, size = 43871781, hashes = { sha256 = "977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749" } }] + +[[packages]] +name = "lupa" +version = "2.8" +sdist = { url = "https://files.pythonhosted.org/packages/c3/a6/0f869fbb07c393f15473b1eefefb7b5bec162fb7481803d040ed4dc46002/lupa-2.8.tar.gz", upload-time = 2026-04-15T20:08:30Z, size = 6156370, hashes = { sha256 = "d8022641b9ec8ecf2c5ecbe9f47e5a70e0b87c4b5ae921b92cb02a638e0acd08" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7b/2f/0d4f00563046ff616ef6a421f8b776a5ffb327f7b32ed69e856d52b917a8/lupa-2.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-04-15T20:05:49Z, size = 2376251, hashes = { sha256 = "9f6f41c91366e7d0d474f87d81c1274af861f40812bf729c9f97ab4c8f3c7ac8" } }] + +[[packages]] +name = "mako" +version = "1.3.12" +sdist = { url = "https://files.pythonhosted.org/packages/00/62/791b31e69ae182791ec67f04850f2f062716bbd205483d63a215f3e062d3/mako-1.3.12.tar.gz", upload-time = 2026-04-28T19:01:08Z, size = 400219, hashes = { sha256 = "9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/bc/b1/a0ec7a5a9db730a08daef1fdfb8090435b82465abbf758a596f0ea88727e/mako-1.3.12-py3-none-any.whl", upload-time = 2026-04-28T19:01:10Z, size = 78521, hashes = { sha256 = "8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9" } }] + +[[packages]] +name = "markdown-it-py" +version = "3.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", upload-time = 2023-06-03T06:41:14Z, size = 74596, hashes = { sha256 = "e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", upload-time = 2023-06-03T06:41:11Z, size = 87528, hashes = { sha256 = "355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1" } }] + +[[packages]] +name = "markupsafe" +version = "2.1.5" +sdist = { url = "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", upload-time = 2024-02-02T16:31:22Z, size = 19384, hashes = { sha256 = "d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-02-02T16:30:24Z, size = 28220, hashes = { sha256 = "b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5" } }] + +[[packages]] +name = "marshmallow" +version = "3.26.2" +sdist = { url = "https://files.pythonhosted.org/packages/55/79/de6c16cc902f4fc372236926b0ce2ab7845268dcc30fb2fbb7f71b418631/marshmallow-3.26.2.tar.gz", upload-time = 2025-12-22T06:53:53Z, size = 222095, hashes = { sha256 = "bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl", upload-time = 2025-12-22T06:53:51Z, size = 50964, hashes = { sha256 = "013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73" } }] + +[[packages]] +name = "matplotlib" +version = "3.11.0" +sdist = { url = "https://files.pythonhosted.org/packages/1f/24/080c99d223d158d3a8902769269ab6da5b50f7a0e6e072513907e02b7a6c/matplotlib-3.11.0.tar.gz", upload-time = 2026-06-12T02:29:15Z, size = 33251176, hashes = { sha256 = "68c0c7be01b30dcca3638934f7f591df73401235cbdbf0d1ab1c71e7db7f8b57" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/53/f4/f0b4f9ba7ec14a7af8151f3ad71ecfe3561e6ba38cfab1db3681ba4ca112/matplotlib-3.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2026-06-12T02:27:39Z, size = 10021076, hashes = { sha256 = "630eee0e67d35cce2019a0e670719f4816e3b86aff0fa72729f6c69786fceb45" } }] + +[[packages]] +name = "matplotlib-inline" +version = "0.1.7" +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", upload-time = 2024-04-15T13:44:44Z, size = 8159, hashes = { sha256 = "8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", upload-time = 2024-04-15T13:44:43Z, size = 9899, hashes = { sha256 = "df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca" } }] + +[[packages]] +name = "mdurl" +version = "0.1.2" +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", upload-time = 2022-08-14T12:40:10Z, size = 8729, hashes = { sha256 = "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", upload-time = 2022-08-14T12:40:09Z, size = 9979, hashes = { sha256 = "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8" } }] + +[[packages]] +name = "monotonic" +version = "1.6" +sdist = { url = "https://files.pythonhosted.org/packages/ea/ca/8e91948b782ddfbd194f323e7e7d9ba12e5877addf04fb2bf8fca38e86ac/monotonic-1.6.tar.gz", upload-time = 2021-08-11T14:37:28Z, size = 7615, hashes = { sha256 = "3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9a/67/7e8406a29b6c45be7af7740456f7f37025f0506ae2e05fb9009a53946860/monotonic-1.6-py2.py3-none-any.whl", upload-time = 2021-04-09T21:58:05Z, size = 8154, hashes = { sha256 = "68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c" } }] + +[[packages]] +name = "more-itertools" +version = "10.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz", upload-time = 2024-09-05T15:28:22Z, size = 121020, hashes = { sha256 = "5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl", upload-time = 2024-09-05T15:28:20Z, size = 60952, hashes = { sha256 = "037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef" } }] + +[[packages]] +name = "mplcursors" +version = "0.5.3" +sdist = { url = "https://files.pythonhosted.org/packages/70/11/26f6016ff1ed7c43b5ee51793ac9f9d14ea7f5af8e2ecf9703d8bb88c96b/mplcursors-0.5.3.tar.gz", upload-time = 2024-01-11T20:53:54Z, size = 88816, hashes = { sha256 = "cb220c8dffaafde195e138faec5654737267f7685d1f0503618cdc333aca0966" } } + +[[packages]] +name = "mpld3" +version = "0.5.10" +sdist = { url = "https://files.pythonhosted.org/packages/90/58/19378f4189a034eb3efc17b133426b8551af1d3b2c70d641a63124579629/mpld3-0.5.10.tar.gz", upload-time = 2023-12-23T13:03:05Z, size = 1027709, hashes = { sha256 = "a478eb404fa5212505c59133cf272cd9a94105872e605597720e7f84de38fbc7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/95/6a/e3691bcc47485f38b09853207c928130571821d187cf174eed5418d45e82/mpld3-0.5.10-py3-none-any.whl", upload-time = 2023-12-23T13:03:02Z, size = 202561, hashes = { sha256 = "80877acce87ea447380fad7374668737505c8c0684aab05238e7c5dc1fab38c1" } }] + +[[packages]] +name = "mpmath" +version = "1.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", upload-time = 2023-03-07T16:47:11Z, size = 508106, hashes = { sha256 = "7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", upload-time = 2023-03-07T16:47:09Z, size = 536198, hashes = { sha256 = "a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c" } }] + +[[packages]] +name = "msgpack" +version = "1.1.0" +sdist = { url = "https://files.pythonhosted.org/packages/cb/d0/7555686ae7ff5731205df1012ede15dd9d927f6227ea151e901c7406af4f/msgpack-1.1.0.tar.gz", upload-time = 2024-09-10T04:25:52Z, size = 167260, hashes = { sha256 = "dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a8/a1/ad7b84b91ab5a324e707f4c9761633e357820b011a01e34ce658c1dda7cc/msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-09-10T04:25:10Z, size = 403671, hashes = { sha256 = "5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59" } }] + +[[packages]] +name = "multidict" +version = "6.0.5" +sdist = { url = "https://files.pythonhosted.org/packages/f9/79/722ca999a3a09a63b35aac12ec27dfa8e5bb3a38b0f857f7a1a209a88836/multidict-6.0.5.tar.gz", upload-time = 2024-02-01T20:46:01Z, size = 59867, hashes = { sha256 = "f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/ec/be54a3ad110f386d5bd7a9a42a4ff36b3cd723ebe597f41073a73ffa16b8/multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-02-01T20:43:57Z, size = 128684, hashes = { sha256 = "85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed" } }, + { url = "https://files.pythonhosted.org/packages/fa/a2/17e1e23c6be0a916219c5292f509360c345b5fa6beeb50d743203c27532c/multidict-6.0.5-py3-none-any.whl", upload-time = 2024-02-01T20:45:59Z, size = 9729, hashes = { sha256 = "0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7" } }, +] + +[[packages]] +name = "mypy-extensions" +version = "1.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz", upload-time = 2023-02-04T12:11:27Z, size = 4433, hashes = { sha256 = "75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", upload-time = 2023-02-04T12:11:25Z, size = 4695, hashes = { sha256 = "4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d" } }] + +[[packages]] +name = "narwhals" +version = "1.14.2" +sdist = { url = "https://files.pythonhosted.org/packages/1d/f0/26c7fde4db697e166582e526627e6824252b6c462a2cd2e97ae117f5a69e/narwhals-1.14.2.tar.gz", upload-time = 2024-11-23T15:02:54Z, size = 191364, hashes = { sha256 = "287406a3777d102f981d27c5827a6b5a9d8bd8c89c79cd9fbe46e2956425f078" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ba/eb/988fdc5380e263f3f4ce40dd544720edc2ae5bd8f85c019ccdc6668399e5/narwhals-1.14.2-py3-none-any.whl", upload-time = 2024-11-23T15:02:52Z, size = 225143, hashes = { sha256 = "2e784800b87c9e1ff47984da0046d957320f39b64c08f0e5b1b1a1208694935c" } }] + +[[packages]] +name = "neo4j" +version = "5.23.1" +sdist = { url = "https://files.pythonhosted.org/packages/a9/3b/ee71833425a8c031866cdb49bd3ed13cd2d6652112d33a1ffea0b9ffdec7/neo4j-5.23.1.tar.gz", upload-time = 2024-08-05T08:13:27Z, size = 215192, hashes = { sha256 = "e2d3399d1124319489b25d5eda99833ae086e1fffef9946d36241652d26b26a0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/87/a8/117f73d350e4dd1a0d07687c777c267a561af4ee44bdcca7f52701f42900/neo4j-5.23.1-py3-none-any.whl", upload-time = 2024-08-05T08:13:22Z, size = 293613, hashes = { sha256 = "97996fbf39421e0677fdcb8afe50b6810cbe8027e055a9dcf81da6070a82a009" } }] + +[[packages]] +name = "networkx" +version = "3.3" +sdist = { url = "https://files.pythonhosted.org/packages/04/e6/b164f94c869d6b2c605b5128b7b0cfe912795a87fc90e78533920001f3ec/networkx-3.3.tar.gz", upload-time = 2024-04-06T12:59:47Z, size = 2126579, hashes = { sha256 = "0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/38/e9/5f72929373e1a0e8d142a130f3f97e6ff920070f87f91c4e13e40e0fba5a/networkx-3.3-py3-none-any.whl", upload-time = 2024-04-06T12:59:44Z, size = 1702396, hashes = { sha256 = "28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2" } }] + +[[packages]] +name = "numba" +version = "0.60.0" +sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", upload-time = 2024-06-13T18:11:19Z, size = 2702171, hashes = { sha256 = "5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/57/03/2b4245b05b71c0cee667e6a0b51606dfa7f4157c9093d71c6b208385a611/numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2024-06-13T18:10:49Z, size = 3705018, hashes = { sha256 = "4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8" } }] + +[[packages]] +name = "numpy" +version = "1.26.4" +sdist = { url = "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz", upload-time = 2024-02-06T00:26:44Z, size = 15786129, hashes = { sha256 = "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-02-05T23:53:15Z, size = 18252005, hashes = { sha256 = "666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5" } }] + +[[packages]] +name = "omegaconf" +version = "2.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", upload-time = 2022-12-08T20:59:22Z, size = 3298120, hashes = { sha256 = "d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", upload-time = 2022-12-08T20:59:19Z, size = 79500, hashes = { sha256 = "7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b" } }] + +[[packages]] +name = "onnxruntime" +version = "1.19.0" +wheels = [{ url = "https://files.pythonhosted.org/packages/fa/ca/769da06e76b14a315a1effa5b01d906963379495cd82c00b5023be4c3e61/onnxruntime-1.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2024-08-15T19:17:37Z, size = 13172071, hashes = { sha256 = "6f379d1f050cfb55ce015d53727b78ee362febc065c38eed81512b22b757da73" } }] + +[[packages]] +name = "openai" +version = "2.38.0" +sdist = { url = "https://files.pythonhosted.org/packages/8f/12/cfa322c5f5dd8fa21aab9a7a8e979e7a11123800f86ca8d82eb68a83d213/openai-2.38.0.tar.gz", upload-time = 2026-05-21T21:23:42Z, size = 772764, hashes = { sha256 = "798694c6cf74145541fda94325b6f8f72d8e1fd0262cc137c8d728177a6a4ce3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/0a/bf/ccff9be562e24207716d04ef9dc931c76aff0c89a7265da43e2104d7fe06/openai-2.38.0-py3-none-any.whl", upload-time = 2026-05-21T21:23:39Z, size = 1344910, hashes = { sha256 = "ec6661c57b2dcc47414a767e6e3335c7ed3d19c9696999283a3c82e95c756a3c" } }] + +[[packages]] +name = "optuna" +version = "3.6.1" +sdist = { url = "https://files.pythonhosted.org/packages/dd/10/5e37d49c98d5aee9f4eb5eb0e0e24a8c6846dccb45586626127a0c157a85/optuna-3.6.1.tar.gz", upload-time = 2024-04-01T06:04:18Z, size = 292748, hashes = { sha256 = "146e530b57b4b9afd7526b3e642fbe65491f7e292b405913355f8e438e361ecf" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/15/da/68883911855d8b4d521f9a370e4e6aab8232b91c1d8d5a8348c4680c6642/optuna-3.6.1-py3-none-any.whl", upload-time = 2024-04-01T06:04:15Z, size = 380102, hashes = { sha256 = "b32e0490bd6552790b70ec94de77dd2855057c9e229cd9f4da48fe8a31c7f1cc" } }] + +[[packages]] +name = "opuslib" +version = "3.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/46/55/826befabb29fd3902bad6d6d7308790894c7ad4d73f051728a0c53d37cd7/opuslib-3.0.1.tar.gz", upload-time = 2018-01-16T06:04:42Z, size = 8550, hashes = { sha256 = "2cb045e5b03e7fc50dfefe431e3404dddddbd8f5961c10c51e32dfb69a044c97" } } + +[[packages]] +name = "orjson" +version = "3.11.6" +sdist = { url = "https://files.pythonhosted.org/packages/70/a3/4e09c61a5f0c521cba0bb433639610ae037437669f1a4cbc93799e731d78/orjson-3.11.6.tar.gz", upload-time = 2026-01-29T15:13:07Z, size = 6175856, hashes = { sha256 = "0a54c72259f35299fd033042367df781c2f66d10252955ca1efb7db309b954cb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e6/d8/4b581c725c3a308717f28bf45a9fdac210bca08b67e8430143699413ff06/orjson-3.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2026-01-29T15:11:45Z, size = 145582, hashes = { sha256 = "6e0bb2c1ea30ef302f0f89f9bf3e7f9ab5e2af29dc9f80eb87aa99788e4e2d65" } }] + +[[packages]] +name = "ormsgpack" +version = "1.12.2" +sdist = { url = "https://files.pythonhosted.org/packages/12/0c/f1761e21486942ab9bb6feaebc610fa074f7c5e496e6962dea5873348077/ormsgpack-1.12.2.tar.gz", upload-time = 2026-01-18T20:55:28Z, size = 39031, hashes = { sha256 = "944a2233640273bee67521795a73cf1e959538e0dfb7ac635505010455e53b33" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/1b/33/543627f323ff3c73091f51d6a20db28a1a33531af30873ea90c5ac95a9b5/ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2026-01-18T20:56:10Z, size = 212401, hashes = { sha256 = "43013a3f3e2e902e1d05e72c0f1aeb5bedbb8e09240b51e26792a3c89267e181" } }] + +[[packages]] +name = "packaging" +version = "24.2" +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", upload-time = 2024-11-08T09:47:47Z, size = 163950, hashes = { sha256 = "c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", upload-time = 2024-11-08T09:47:44Z, size = 65451, hashes = { sha256 = "09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759" } }] + +[[packages]] +name = "pandas" +version = "2.3.3" +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", upload-time = 2025-09-29T23:34:51Z, size = 4495223, hashes = { sha256 = "e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-09-29T23:18:56Z, size = 12789281, hashes = { sha256 = "b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b" } }] + +[[packages]] +name = "parso" +version = "0.8.4" +sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", upload-time = 2024-04-05T09:43:55Z, size = 400609, hashes = { sha256 = "eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", upload-time = 2024-04-05T09:43:53Z, size = 103650, hashes = { sha256 = "a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18" } }] + +[[packages]] +name = "pexpect" +version = "4.9.0" +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", upload-time = 2023-11-25T09:07:26Z, size = 166450, hashes = { sha256 = "ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", upload-time = 2023-11-25T06:56:14Z, size = 63772, hashes = { sha256 = "7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523" } }] + +[[packages]] +name = "pillow" +version = "12.2.0" +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", upload-time = 2026-04-01T14:46:17Z, size = 46987819, hashes = { sha256 = "a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/f1/00b7278c7dd52b17ad4329153748f87b6756ec195ff786c2bdf12518337d/pillow-12.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2026-04-01T14:42:51Z, size = 8088188, hashes = { sha256 = "8bd7903a5f2a4545f6fd5935c90058b89d30045568985a71c79f5fd6edf9b91e" } }, + { url = "https://files.pythonhosted.org/packages/e9/bd/e51a61b1054f09437acfbc2ff9106c30d1eb76bc1453d428399946781253/pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-04-01T14:42:56Z, size = 7079655, hashes = { sha256 = "e74473c875d78b8e9d5da2a70f7099549f9eb37ded4e2f6a463e60125bccd176" } }, +] + +[[packages]] +name = "pinecone" +version = "7.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/fa/38/12731d4af470851b4963eba616605868a8599ef4df51c7b6c928e5f3166d/pinecone-7.3.0.tar.gz", upload-time = 2025-06-27T20:03:51Z, size = 235256, hashes = { sha256 = "307edc155621d487c20dc71b76c3ad5d6f799569ba42064190d03917954f9a7b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b7/a6/c5d54a5fb1de3983a8739c1a1660e7a7074db2cbadfa875b823fcf29b629/pinecone-7.3.0-py3-none-any.whl", upload-time = 2025-06-27T20:03:50Z, size = 587563, hashes = { sha256 = "315b8fef20320bef723ecbb695dec0aafa75d8434d86e01e5a0e85933e1009a8" } }] + +[[packages]] +name = "pinecone-plugin-assistant" +version = "1.8.0" +sdist = { url = "https://files.pythonhosted.org/packages/b2/01/65c4c3a81732fa379f8e7f78a8c18aa57a1139f5b79d58b93a69f2fc8cb0/pinecone_plugin_assistant-1.8.0.tar.gz", upload-time = 2025-08-31T14:31:18Z, size = 150435, hashes = { sha256 = "8e8682cff30f9bae9243b384021aba71c91f4e6ef1650e9d63ee64aab83cba87" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/dd/49/62ab8e2f9098bf8593e36bbe6e729fcc0500bafca7d88be7b62eac66c8b0/pinecone_plugin_assistant-1.8.0-py3-none-any.whl", upload-time = 2025-08-31T14:31:16Z, size = 259281, hashes = { sha256 = "71ae42c3b4478d23138cbc4fe3505db561319a826f5aff4ef2e306a25ac56686" } }] + +[[packages]] +name = "pinecone-plugin-interface" +version = "0.0.7" +sdist = { url = "https://files.pythonhosted.org/packages/f4/fb/e8a4063264953ead9e2b24d9b390152c60f042c951c47f4592e9996e57ff/pinecone_plugin_interface-0.0.7.tar.gz", upload-time = 2024-06-05T01:57:52Z, size = 3370, hashes = { sha256 = "b8e6675e41847333aa13923cc44daa3f85676d7157324682dc1640588a982846" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/3b/1d/a21fdfcd6d022cb64cef5c2a29ee6691c6c103c4566b41646b080b7536a5/pinecone_plugin_interface-0.0.7-py3-none-any.whl", upload-time = 2024-06-05T01:57:50Z, size = 6249, hashes = { sha256 = "875857ad9c9fc8bbc074dbe780d187a2afd21f5bfe0f3b08601924a61ef1bba8" } }] + +[[packages]] +name = "platformdirs" +version = "4.2.2" +sdist = { url = "https://files.pythonhosted.org/packages/f5/52/0763d1d976d5c262df53ddda8d8d4719eedf9594d046f117c25a27261a19/platformdirs-4.2.2.tar.gz", upload-time = 2024-05-15T03:18:23Z, size = 20916, hashes = { sha256 = "38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl", upload-time = 2024-05-15T03:18:21Z, size = 18146, hashes = { sha256 = "2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee" } }] + +[[packages]] +name = "plotly" +version = "5.23.0" +sdist = { url = "https://files.pythonhosted.org/packages/db/9e/31b2f0b8f2357cd5f3e992c76c3e4e85a5cbbad8b8c5f23d0684e3f4c608/plotly-5.23.0.tar.gz", upload-time = 2024-07-23T13:40:49Z, size = 8553751, hashes = { sha256 = "89e57d003a116303a34de6700862391367dd564222ab71f8531df70279fc0193" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b8/f0/bcf716a8e070370d6598c92fcd328bd9ef8a9bda2c5562da5a835c66700b/plotly-5.23.0-py3-none-any.whl", upload-time = 2024-07-23T13:40:43Z, size = 17326571, hashes = { sha256 = "76cbe78f75eddc10c56f5a4ee3e7ccaade7c0a57465546f02098c0caed6c2d1a" } }] + +[[packages]] +name = "pluggy" +version = "1.6.0" +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", upload-time = 2025-05-15T12:30:07Z, size = 69412, hashes = { sha256 = "7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", upload-time = 2025-05-15T12:30:06Z, size = 20538, hashes = { sha256 = "e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746" } }] + +[[packages]] +name = "polling2" +version = "0.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/04/9d/6a560ab95e1b92dfce97321d8ffc9f20d352fa4b12a91525d4c575df1c74/polling2-0.5.0.tar.gz", upload-time = 2021-07-19T18:06:54Z, size = 6549, hashes = { sha256 = "90b7da82cf7adbb48029724d3546af93f21ab6e592ec37c8c4619aedd010e342" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a3/de/e5bf2556ebd6db12590788207575c7c75b1de62f5ddc8b4916b668e04e6b/polling2-0.5.0-py2.py3-none-any.whl", upload-time = 2021-07-19T18:06:53Z, size = 6431, hashes = { sha256 = "ad86d56fbd7502f0856cac2d0109d595c18fa6c7fb12c88cee5e5d16c17286c1" } }] + +[[packages]] +name = "pooch" +version = "1.8.2" +sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", upload-time = 2024-06-06T16:53:46Z, size = 59353, hashes = { sha256 = "76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a8/87/77cc11c7a9ea9fd05503def69e3d18605852cd0d4b0d3b8f15bbeb3ef1d1/pooch-1.8.2-py3-none-any.whl", upload-time = 2024-06-06T16:53:44Z, size = 64574, hashes = { sha256 = "3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47" } }] + +[[packages]] +name = "portalocker" +version = "2.10.1" +sdist = { url = "https://files.pythonhosted.org/packages/ed/d3/c6c64067759e87af98cc668c1cc75171347d0f1577fab7ca3749134e3cd4/portalocker-2.10.1.tar.gz", upload-time = 2024-07-13T23:15:34Z, size = 40891, hashes = { sha256 = "ef1bf844e878ab08aee7e40184156e1151f228f103aa5c6bd0724cc330960f8f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9b/fb/a70a4214956182e0d7a9099ab17d50bfcba1056188e9b14f35b9e2b62a0d/portalocker-2.10.1-py3-none-any.whl", upload-time = 2024-07-13T23:15:32Z, size = 18423, hashes = { sha256 = "53a5984ebc86a025552264b459b46a2086e269b21823cb572f8f28ee759e45bf" } }] + +[[packages]] +name = "posthog" +version = "3.5.2" +sdist = { url = "https://files.pythonhosted.org/packages/22/a6/a260008b95152d31ef19845ae3100411b481279ec98d22e8c87606abe78e/posthog-3.5.2.tar.gz", upload-time = 2024-08-21T16:58:52Z, size = 38380, hashes = { sha256 = "a383a80c1f47e0243f5ce359e81e06e2e7b37eb39d1d6f8d01c3e64ed29df2ee" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/53/62/2e7f75beedf9b5411f133a5af558cc7d76e20bbf6778a51ade15e6d3152b/posthog-3.5.2-py2.py3-none-any.whl", upload-time = 2024-08-21T16:58:51Z, size = 41545, hashes = { sha256 = "605b3d92369971cc99290b1fcc8534cbddac3726ef7972caa993454a5ecfb644" } }] + +[[packages]] +name = "primepy" +version = "1.3" +sdist = { url = "https://files.pythonhosted.org/packages/35/77/0cfa1b4697cfb5336f3a96e8bc73327f64610be3a64c97275f1801afb395/primePy-1.3.tar.gz", upload-time = 2018-05-29T17:18:18Z, size = 3914, hashes = { sha256 = "25fd7e25344b0789a5984c75d89f054fcf1f180bef20c998e4befbac92de4669" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/74/c1/bb7e334135859c3a92ec399bc89293ea73f28e815e35b43929c8db6af030/primePy-1.3-py3-none-any.whl", upload-time = 2018-05-29T17:18:17Z, size = 4040, hashes = { sha256 = "5ed443718765be9bf7e2ff4c56cdff71b42140a15b39d054f9d99f0009e2317a" } }] + +[[packages]] +name = "prometheus-client" +version = "0.21.1" +sdist = { url = "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz", upload-time = 2024-12-03T14:59:12Z, size = 78551, hashes = { sha256 = "252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl", upload-time = 2024-12-03T14:59:10Z, size = 54682, hashes = { sha256 = "594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301" } }] + +[[packages]] +name = "prompt-toolkit" +version = "3.0.47" +sdist = { url = "https://files.pythonhosted.org/packages/47/6d/0279b119dafc74c1220420028d490c4399b790fc1256998666e3a341879f/prompt_toolkit-3.0.47.tar.gz", upload-time = 2024-06-10T11:02:14Z, size = 425859, hashes = { sha256 = "1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e8/23/22750c4b768f09386d1c3cc4337953e8936f48a888fa6dddfb669b2c9088/prompt_toolkit-3.0.47-py3-none-any.whl", upload-time = 2024-06-10T11:02:10Z, size = 386411, hashes = { sha256 = "0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10" } }] + +[[packages]] +name = "propcache" +version = "0.5.2" +sdist = { url = "https://files.pythonhosted.org/packages/ec/44/c87281c333769159c50594f22610f77398a47ccbfbbf23074e744e86f87c/propcache-0.5.2.tar.gz", upload-time = 2026-05-08T21:02:12Z, size = 50208, hashes = { sha256 = "01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1b/16ab7f2cf2041da2f60d156ba64c2484eadf9168075b4ff43c3ef60045af/propcache-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-05-08T20:59:55Z, size = 58888, hashes = { sha256 = "5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b" } }, + { url = "https://files.pythonhosted.org/packages/3a/ed/1cdcab6ba3d6ab7feca11fc14f0eeea80755bb53ef4e892079f31b10a25f/propcache-0.5.2-py3-none-any.whl", upload-time = 2026-05-08T21:02:10Z, size = 14036, hashes = { sha256 = "be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe" } }, +] + +[[packages]] +name = "proto-plus" +version = "1.24.0" +sdist = { url = "https://files.pythonhosted.org/packages/3e/fc/e9a65cd52c1330d8d23af6013651a0bc50b6d76bcbdf91fae7cd19c68f29/proto-plus-1.24.0.tar.gz", upload-time = 2024-06-19T15:02:44Z, size = 55942, hashes = { sha256 = "30b72a5ecafe4406b0d339db35b56c4059064e69227b8c3bda7462397f966445" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7c/6f/db31f0711c0402aa477257205ce7d29e86a75cb52cd19f7afb585f75cda0/proto_plus-1.24.0-py3-none-any.whl", upload-time = 2024-06-19T15:02:40Z, size = 50080, hashes = { sha256 = "402576830425e5f6ce4c2a6702400ac79897dab0b4343821aa5188b0fab81a12" } }] + +[[packages]] +name = "protobuf" +version = "5.29.6" +sdist = { url = "https://files.pythonhosted.org/packages/7e/57/394a763c103e0edf87f0938dafcd918d53b4c011dfc5c8ae80f3b0452dbb/protobuf-5.29.6.tar.gz", upload-time = 2026-02-04T22:54:40Z, size = 425623, hashes = { sha256 = "da9ee6a5424b6b30fd5e45c5ea663aef540ca95f9ad99d1e887e819cdf9b8723" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/dd/cadd6ec43069247d91f6345fa7a0d2858bef6af366dbd7ba8f05d2c77d3b/protobuf-5.29.6-cp38-abi3-manylinux2014_x86_64.whl", upload-time = 2026-02-04T22:54:32Z, size = 320478, hashes = { sha256 = "e3387f44798ac1106af0233c04fb8abf543772ff241169946f698b3a9a3d3ab9" } }, + { url = "https://files.pythonhosted.org/packages/5a/cb/e3065b447186cb70aa65acc70c86baf482d82bf75625bf5a2c4f6919c6a3/protobuf-5.29.6-py3-none-any.whl", upload-time = 2026-02-04T22:54:39Z, size = 173126, hashes = { sha256 = "6b9edb641441b2da9fa8f428760fc136a49cf97a52076010cf22a2ff73438a86" } }, +] + +[[packages]] +name = "ptyprocess" +version = "0.7.0" +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", upload-time = 2020-12-28T15:15:30Z, size = 70762, hashes = { sha256 = "5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", upload-time = 2020-12-28T15:15:28Z, size = 13993, hashes = { sha256 = "4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35" } }] + +[[packages]] +name = "pure-eval" +version = "0.2.3" +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", upload-time = 2024-07-21T12:58:21Z, size = 19752, hashes = { sha256 = "5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", upload-time = 2024-07-21T12:58:20Z, size = 11842, hashes = { sha256 = "1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0" } }] + +[[packages]] +name = "pyarrow" +version = "17.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/27/4e/ea6d43f324169f8aec0e57569443a38bab4b398d09769ca64f7b4d467de3/pyarrow-17.0.0.tar.gz", upload-time = 2024-07-17T10:41:25Z, size = 1112479, hashes = { sha256 = "4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/78/3931194f16ab681ebb87ad252e7b8d2c8b23dad49706cadc865dff4a1dd3/pyarrow-17.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-07-16T10:30:27Z, size = 39864921, hashes = { sha256 = "0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597" } }, + { url = "https://files.pythonhosted.org/packages/4c/21/9ca93b84b92ef927814cb7ba37f0774a484c849d58f0b692b16af8eebcfb/pyarrow-17.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", upload-time = 2024-07-16T10:30:42Z, size = 39871877, hashes = { sha256 = "e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4" } }, +] + +[[packages]] +name = "pyasn1" +version = "0.6.3" +sdist = { url = "https://files.pythonhosted.org/packages/5c/5f/6583902b6f79b399c9c40674ac384fd9cd77805f9e6205075f828ef11fb2/pyasn1-0.6.3.tar.gz", upload-time = 2026-03-17T01:06:53Z, size = 148685, hashes = { sha256 = "697a8ecd6d98891189184ca1fa05d1bb00e2f84b5977c481452050549c8a72cf" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl", upload-time = 2026-03-17T01:06:52Z, size = 83997, hashes = { sha256 = "a80184d120f0864a52a073acc6fc642847d0be408e7c7252f31390c0f4eadcde" } }] + +[[packages]] +name = "pyasn1-modules" +version = "0.4.0" +sdist = { url = "https://files.pythonhosted.org/packages/f7/00/e7bd1dec10667e3f2be602686537969a7ac92b0a7c5165be2e5875dc3971/pyasn1_modules-0.4.0.tar.gz", upload-time = 2024-03-26T20:38:14Z, size = 307859, hashes = { sha256 = "831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/13/68/8906226b15ef38e71dc926c321d2fe99de8048e9098b5dfd38343011c886/pyasn1_modules-0.4.0-py3-none-any.whl", upload-time = 2024-03-26T20:38:13Z, size = 181220, hashes = { sha256 = "be04f15b66c206eed667e0bb5ab27e2b1855ea54a842e5037738099e8ca4ae0b" } }] + +[[packages]] +name = "pycountry" +version = "24.6.1" +sdist = { url = "https://files.pythonhosted.org/packages/76/57/c389fa68c50590881a75b7883eeb3dc15e9e73a0fdc001cdd45c13290c92/pycountry-24.6.1.tar.gz", upload-time = 2024-06-01T04:12:15Z, size = 6043910, hashes = { sha256 = "b61b3faccea67f87d10c1f2b0fc0be714409e8fcdcc1315613174f6466c10221" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl", upload-time = 2024-06-01T04:11:49Z, size = 6335189, hashes = { sha256 = "f1a4fb391cd7214f8eefd39556d740adcc233c778a27f8942c8dca351d6ce06f" } }] + +[[packages]] +name = "pycparser" +version = "2.22" +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", upload-time = 2024-03-30T13:22:22Z, size = 172736, hashes = { sha256 = "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", upload-time = 2024-03-30T13:22:20Z, size = 117552, hashes = { sha256 = "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" } }] + +[[packages]] +name = "pydantic" +version = "2.11.10" +sdist = { url = "https://files.pythonhosted.org/packages/ae/54/ecab642b3bed45f7d5f59b38443dcb36ef50f85af192e6ece103dbfe9587/pydantic-2.11.10.tar.gz", upload-time = 2025-10-04T10:40:41Z, size = 788494, hashes = { sha256 = "dc280f0982fbda6c38fada4e476dc0a4f3aeaf9c6ad4c28df68a666ec3c61423" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/bd/1f/73c53fcbfb0b5a78f91176df41945ca466e71e9d9d836e5c522abda39ee7/pydantic-2.11.10-py3-none-any.whl", upload-time = 2025-10-04T10:40:39Z, size = 444823, hashes = { sha256 = "802a655709d49bd004c31e865ef37da30b540786a46bfce02333e0e24b5fe29a" } }] + +[[packages]] +name = "pydantic-core" +version = "2.33.2" +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", upload-time = 2025-04-23T18:33:52Z, size = 435195, hashes = { sha256 = "7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/47/bc/cd720e078576bdb8255d5032c5d63ee5c0bf4b7173dd955185a1d658c456/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-04-23T18:31:13Z, size = 2003200, hashes = { sha256 = "881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef" } }] + +[[packages]] +name = "pydantic-settings" +version = "2.10.1" +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", upload-time = 2025-06-24T13:26:46Z, size = 172583, hashes = { sha256 = "06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", upload-time = 2025-06-24T13:26:45Z, size = 45235, hashes = { sha256 = "a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796" } }] + +[[packages]] +name = "pydeck" +version = "0.9.1" +sdist = { url = "https://files.pythonhosted.org/packages/a1/ca/40e14e196864a0f61a92abb14d09b3d3da98f94ccb03b49cf51688140dab/pydeck-0.9.1.tar.gz", upload-time = 2024-05-10T15:36:21Z, size = 3832240, hashes = { sha256 = "f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", upload-time = 2024-05-10T15:36:17Z, size = 6900403, hashes = { sha256 = "b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038" } }] + +[[packages]] +name = "pydub" +version = "0.25.1" +sdist = { url = "https://files.pythonhosted.org/packages/fe/9a/e6bca0eed82db26562c73b5076539a4a08d3cffd19c3cc5913a3e61145fd/pydub-0.25.1.tar.gz", upload-time = 2021-03-10T02:09:54Z, size = 38326, hashes = { sha256 = "980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl", upload-time = 2021-03-10T02:09:53Z, size = 32327, hashes = { sha256 = "65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6" } }] + +[[packages]] +name = "pygments" +version = "2.20.0" +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", upload-time = 2026-03-29T13:29:33Z, size = 4955991, hashes = { sha256 = "6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", upload-time = 2026-03-29T13:29:30Z, size = 1231151, hashes = { sha256 = "81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176" } }] + +[[packages]] +name = "pyjwt" +version = "2.12.0" +sdist = { url = "https://files.pythonhosted.org/packages/a8/10/e8192be5f38f3e8e7e046716de4cae33d56fd5ae08927a823bb916be36c1/pyjwt-2.12.0.tar.gz", upload-time = 2026-03-12T17:15:30Z, size = 102511, hashes = { sha256 = "2f62390b667cd8257de560b850bb5a883102a388829274147f1d724453f8fb02" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/15/70/70f895f404d363d291dcf62c12c85fdd47619ad9674ac0f53364d035925a/pyjwt-2.12.0-py3-none-any.whl", upload-time = 2026-03-12T17:15:29Z, size = 29700, hashes = { sha256 = "9bb459d1bdd0387967d287f5656bf7ec2b9a26645d1961628cda1764e087fd6e" } }] + +[[packages]] +name = "pynndescent" +version = "0.5.13" +sdist = { url = "https://files.pythonhosted.org/packages/7e/58/560a4db5eb3794d922fe55804b10326534ded3d971e1933c1eef91193f5e/pynndescent-0.5.13.tar.gz", upload-time = 2024-06-17T15:48:32Z, size = 2975955, hashes = { sha256 = "d74254c0ee0a1eeec84597d5fe89fedcf778593eeabe32c2f97412934a9800fb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d2/53/d23a97e0a2c690d40b165d1062e2c4ccc796be458a1ce59f6ba030434663/pynndescent-0.5.13-py3-none-any.whl", upload-time = 2024-06-17T15:48:31Z, size = 56850, hashes = { sha256 = "69aabb8f394bc631b6ac475a1c7f3994c54adf3f51cd63b2730fefba5771b949" } }] + +[[packages]] +name = "pyogg" +version = "0.7" +vcs = { type = "git", url = "https://github.com/TeamPyOgg/PyOgg", requested-revision = "6871a4f234e8a3a346c4874a12509bfa02c4c63a", commit-id = "6871a4f234e8a3a346c4874a12509bfa02c4c63a" } + +[[packages]] +name = "pyparsing" +version = "3.1.2" +sdist = { url = "https://files.pythonhosted.org/packages/46/3a/31fd28064d016a2182584d579e033ec95b809d8e220e74c4af6f0f2e8842/pyparsing-3.1.2.tar.gz", upload-time = 2024-03-06T07:25:54Z, size = 889571, hashes = { sha256 = "a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl", upload-time = 2024-03-06T07:25:50Z, size = 103245, hashes = { sha256 = "f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742" } }] + +[[packages]] +name = "pytest" +version = "8.4.1" +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", upload-time = 2025-06-18T05:48:06Z, size = 1517714, hashes = { sha256 = "7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", upload-time = 2025-06-18T05:48:03Z, size = 365474, hashes = { sha256 = "539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7" } }] + +[[packages]] +name = "pytest-httpserver" +version = "1.1.5" +sdist = { url = "https://files.pythonhosted.org/packages/50/17/ad187f46998814014f7cda309de700b87c0eb4b2e111e18bc8c819be7116/pytest_httpserver-1.1.5.tar.gz", upload-time = 2026-02-14T13:27:23Z, size = 70974, hashes = { sha256 = "dc3d82e1fe00e491829d8939c549bf4bd9b39a260f87113c619b9d517c2f8ff1" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ec/df/0bdf90b84c6a586a9fd2b509523a3ab26b1cc1b1dba2fb62a32e4411ea9e/pytest_httpserver-1.1.5-py3-none-any.whl", upload-time = 2026-02-14T13:27:22Z, size = 23330, hashes = { sha256 = "ee83feb587ab652c0c6729598db2820e9048233bac8df756818b7845a1621d0a" } }] + +[[packages]] +name = "python-dateutil" +version = "2.9.0.post0" +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", upload-time = 2024-03-01T18:36:20Z, size = 342432, hashes = { sha256 = "37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", upload-time = 2024-03-01T18:36:18Z, size = 229892, hashes = { sha256 = "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" } }] + +[[packages]] +name = "python-dotenv" +version = "1.2.2" +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", upload-time = 2026-03-01T16:00:26Z, size = 50135, hashes = { sha256 = "2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", upload-time = 2026-03-01T16:00:25Z, size = 22101, hashes = { sha256 = "1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a" } }] + +[[packages]] +name = "python-multipart" +version = "0.0.27" +sdist = { url = "https://files.pythonhosted.org/packages/69/9b/f23807317a113dc36e74e75eb265a02dd1a4d9082abc3c1064acd22997c4/python_multipart-0.0.27.tar.gz", upload-time = 2026-04-27T10:51:26Z, size = 44043, hashes = { sha256 = "9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/99/78/4126abcbdbd3c559d43e0db7f7b9173fc6befe45d39a2856cc0b8ec2a5a6/python_multipart-0.0.27-py3-none-any.whl", upload-time = 2026-04-27T10:51:24Z, size = 29254, hashes = { sha256 = "6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645" } }] + +[[packages]] +name = "python-slugify" +version = "8.0.4" +sdist = { url = "https://files.pythonhosted.org/packages/87/c7/5e1547c44e31da50a460df93af11a535ace568ef89d7a811069ead340c4a/python-slugify-8.0.4.tar.gz", upload-time = 2024-02-08T18:32:45Z, size = 10921, hashes = { sha256 = "59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl", upload-time = 2024-02-08T18:32:43Z, size = 10051, hashes = { sha256 = "276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8" } }] + +[[packages]] +name = "python-ulid" +version = "3.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/9a/db/e5e67aeca9c2420cb91f94007f30693cc3628ae9783a565fd33ffb3fbfdd/python_ulid-3.0.0.tar.gz", upload-time = 2024-10-11T15:31:55Z, size = 28822, hashes = { sha256 = "e50296a47dc8209d28629a22fc81ca26c00982c78934bd7766377ba37ea49a9f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/63/4e/cc2ba2c0df2589f35a4db8473b8c2ba9bbfc4acdec4a94f1c78934d2350f/python_ulid-3.0.0-py3-none-any.whl", upload-time = 2024-10-11T15:31:54Z, size = 11194, hashes = { sha256 = "e4c4942ff50dbd79167ad01ac725ec58f924b4018025ce22c858bfcff99a5e31" } }] + +[[packages]] +name = "pytz" +version = "2024.1" +sdist = { url = "https://files.pythonhosted.org/packages/90/26/9f1f00a5d021fff16dee3de13d43e5e978f3d58928e129c3a62cf7eb9738/pytz-2024.1.tar.gz", upload-time = 2024-02-02T01:18:41Z, size = 316214, hashes = { sha256 = "2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl", upload-time = 2024-02-02T01:18:37Z, size = 505474, hashes = { sha256 = "328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" } }] + +[[packages]] +name = "pyyaml" +version = "6.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/cd/e5/af35f7ea75cf72f2cd079c95ee16797de7cd71f29ea7c68ae5ce7be1eda0/PyYAML-6.0.1.tar.gz", upload-time = 2023-07-18T00:00:23Z, size = 125201, hashes = { sha256 = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7b/5e/efd033ab7199a0b2044dab3b9f7a4f6670e6a52c089de572e928d2873b06/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2023-07-17T23:57:59Z, size = 757729, hashes = { sha256 = "d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673" } }] + +[[packages]] +name = "qdrant-client" +version = "1.11.0" +sdist = { url = "https://files.pythonhosted.org/packages/a5/70/5d033afb5a6f467a7cce4426a30a4113d76f6d6192b6ed0148e1847d6568/qdrant_client-1.11.0.tar.gz", upload-time = 2024-08-12T16:48:52Z, size = 228713, hashes = { sha256 = "7c1d4d7a96cfd1ee0cde2a21c607e9df86bcca795ad8d1fd274d295ab64b8458" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d9/08/6175fe5191e0c4adee7df1416ae361bc0d02d65ca9c1ce397679afa1484a/qdrant_client-1.11.0-py3-none-any.whl", upload-time = 2024-08-12T16:48:50Z, size = 258890, hashes = { sha256 = "1f574ccebb91c0bc8a620c9a41a5a010084fbc4d8c6f1cd0ab7b2eeb97336fc0" } }] + +[[packages]] +name = "rapidfuzz" +version = "3.9.7" +sdist = { url = "https://files.pythonhosted.org/packages/17/ac/1f1bf726645d7740df2d1371380e35098bb8a460f482343cba1dd1668ab6/rapidfuzz-3.9.7.tar.gz", upload-time = 2024-09-02T19:15:28Z, size = 1596228, hashes = { sha256 = "f1c7296534c1afb6f495aa95871f14ccdc197c6db42965854e483100df313030" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/8a/c4/a06602d0bf830414dd6b458785d868252d6f2cbe1a0a1f57a62cfab1a9ec/rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-09-02T19:12:32Z, size = 3384099, hashes = { sha256 = "965693c2e9efd425b0f059f5be50ef830129f82892fa1858e220e424d9d0160f" } }] + +[[packages]] +name = "redis" +version = "5.0.8" +sdist = { url = "https://files.pythonhosted.org/packages/48/10/defc227d65ea9c2ff5244645870859865cba34da7373477c8376629746ec/redis-5.0.8.tar.gz", upload-time = 2024-07-30T14:11:52Z, size = 4595651, hashes = { sha256 = "0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/c5/d1/19a9c76811757684a0f74adc25765c8a901d67f9f6472ac9d57c844a23c8/redis-5.0.8-py3-none-any.whl", upload-time = 2024-07-30T14:11:49Z, size = 255608, hashes = { sha256 = "56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4" } }] + +[[packages]] +name = "referencing" +version = "0.35.1" +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/73ca1f8e72fff6fa52119dbd185f73a907b1989428917b24cff660129b6d/referencing-0.35.1.tar.gz", upload-time = 2024-05-01T20:26:04Z, size = 62991, hashes = { sha256 = "25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl", upload-time = 2024-05-01T20:26:02Z, size = 26684, hashes = { sha256 = "eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de" } }] + +[[packages]] +name = "regex" +version = "2024.7.24" +sdist = { url = "https://files.pythonhosted.org/packages/3f/51/64256d0dc72816a4fe3779449627c69ec8fee5a5625fd60ba048f53b3478/regex-2024.7.24.tar.gz", upload-time = 2024-07-24T21:51:16Z, size = 393485, hashes = { sha256 = "9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/8b/77/92d4a14530900d46dddc57b728eea65d723cc9fcfd07b96c2c141dabba84/regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-07-24T21:47:40Z, size = 786609, hashes = { sha256 = "994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51" } }] + +[[packages]] +name = "requests" +version = "2.33.1" +sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", upload-time = 2026-03-30T16:09:15Z, size = 134120, hashes = { sha256 = "18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", upload-time = 2026-03-30T16:09:13Z, size = 64947, hashes = { sha256 = "4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a" } }] + +[[packages]] +name = "requests-toolbelt" +version = "1.0.0" +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", upload-time = 2023-05-01T04:11:33Z, size = 206888, hashes = { sha256 = "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", upload-time = 2023-05-01T04:11:28Z, size = 54481, hashes = { sha256 = "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06" } }] + +[[packages]] +name = "rich" +version = "13.7.1" +sdist = { url = "https://files.pythonhosted.org/packages/b3/01/c954e134dc440ab5f96952fe52b4fdc64225530320a910473c1fe270d9aa/rich-13.7.1.tar.gz", upload-time = 2024-02-28T14:51:19Z, size = 221248, hashes = { sha256 = "9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl", upload-time = 2024-02-28T14:51:14Z, size = 240681, hashes = { sha256 = "4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222" } }] + +[[packages]] +name = "rpds-py" +version = "0.20.0" +sdist = { url = "https://files.pythonhosted.org/packages/55/64/b693f262791b818880d17268f3f8181ef799b0d187f6f731b1772e05a29a/rpds_py-0.20.0.tar.gz", upload-time = 2024-08-06T17:01:23Z, size = 25814, hashes = { sha256 = "d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a7/e8/85835077b782555d6b3416874b702ea6ebd7db1f145283c9252968670dd5/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-06T16:58:46Z, size = 354819, hashes = { sha256 = "5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209" } }] + +[[packages]] +name = "rsa" +version = "4.9" +sdist = { url = "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz", upload-time = 2022-07-20T10:28:36Z, size = 29711, hashes = { sha256 = "e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl", upload-time = 2022-07-20T10:28:34Z, size = 34315, hashes = { sha256 = "90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7" } }] + +[[packages]] +name = "ruamel-yaml" +version = "0.18.6" +sdist = { url = "https://files.pythonhosted.org/packages/29/81/4dfc17eb6ebb1aac314a3eb863c1325b907863a1b8b1382cdffcb6ac0ed9/ruamel.yaml-0.18.6.tar.gz", upload-time = 2024-02-07T06:47:20Z, size = 143362, hashes = { sha256 = "8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/73/67/8ece580cc363331d9a53055130f86b096bf16e38156e33b1d3014fffda6b/ruamel.yaml-0.18.6-py3-none-any.whl", upload-time = 2024-02-07T06:47:14Z, size = 117761, hashes = { sha256 = "57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636" } }] + +[[packages]] +name = "ruamel-yaml-clib" +version = "0.2.8" +sdist = { url = "https://files.pythonhosted.org/packages/46/ab/bab9eb1566cd16f060b54055dd39cf6a34bfa0240c53a7218c43e974295b/ruamel.yaml.clib-0.2.8.tar.gz", upload-time = 2023-10-03T18:12:42Z, size = 213824, hashes = { sha256 = "beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a4/f7/22d6b620ed895a05d40802d8281eff924dc6190f682d933d4efff60db3b5/ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", upload-time = 2023-10-03T18:13:03Z, size = 544020, hashes = { sha256 = "25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b" } }] + +[[packages]] +name = "scikit-learn" +version = "1.5.1" +sdist = { url = "https://files.pythonhosted.org/packages/92/72/2961b9874a9ddf2b0f95f329d4e67f67c3301c1d88ba5e239ff25661bb85/scikit_learn-1.5.1.tar.gz", upload-time = 2024-07-03T09:12:21Z, size = 6958368, hashes = { sha256 = "0ea5d40c0e3951df445721927448755d3fe1d80833b0b7308ebff5d2a45e6414" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/32/63/ed228892adad313aab0d0f9261241e7bf1efe36730a2788ad424bcad00ca/scikit_learn-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-07-03T09:11:39Z, size = 13335048, hashes = { sha256 = "689b6f74b2c880276e365fe84fe4f1befd6a774f016339c65655eaff12e10cbf" } }] + +[[packages]] +name = "scipy" +version = "1.14.0" +sdist = { url = "https://files.pythonhosted.org/packages/4e/e5/0230da034a2e1b1feb32621d7cd57c59484091d6dccc9e6b855b0d309fc9/scipy-1.14.0.tar.gz", upload-time = 2024-06-24T20:35:18Z, size = 58618870, hashes = { sha256 = "b5923f48cb840380f9854339176ef21763118a7300a88203ccd0bdd26e58527b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/89/bb/80c9c98d887c855710fd31fc5ae5574133e98203b3475b07579251803662/scipy-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-06-24T20:33:26Z, size = 41132874, hashes = { sha256 = "9e3154691b9f7ed73778d746da2df67a19d046a6c8087c8b385bc4cdb2cfca74" } }] + +[[packages]] +name = "semver" +version = "3.0.2" +sdist = { url = "https://files.pythonhosted.org/packages/41/6c/a536cc008f38fd83b3c1b98ce19ead13b746b5588c9a0cb9dd9f6ea434bc/semver-3.0.2.tar.gz", upload-time = 2023-10-09T11:58:25Z, size = 214988, hashes = { sha256 = "6253adb39c70f6e51afed2fa7152bcd414c411286088fb4b9effb133885ab4cc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9a/77/0cc7a8a3bc7e53d07e8f47f147b92b0960e902b8254859f4aee5c4d7866b/semver-3.0.2-py3-none-any.whl", upload-time = 2023-10-09T11:58:24Z, size = 17099, hashes = { sha256 = "b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4" } }] + +[[packages]] +name = "setuptools" +version = "82.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", upload-time = 2026-03-09T12:47:17Z, size = 1152316, hashes = { sha256 = "7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", upload-time = 2026-03-09T12:47:15Z, size = 1006223, hashes = { sha256 = "a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb" } }] + +[[packages]] +name = "shellingham" +version = "1.5.4" +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", upload-time = 2023-10-24T04:13:40Z, size = 10310, hashes = { sha256 = "8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", upload-time = 2023-10-24T04:13:38Z, size = 9755, hashes = { sha256 = "7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686" } }] + +[[packages]] +name = "simsimd" +version = "6.5.16" +sdist = { url = "https://files.pythonhosted.org/packages/99/8c/070a179eb509b689509dacbd0bc81aa2e36614aff2c8aa6dc6c440886206/simsimd-6.5.16.tar.gz", upload-time = 2026-03-07T14:36:23Z, size = 187216, hashes = { sha256 = "0a005c6e2dacec83f235a747f7dbecca46b5d4d1e183ecc1929ca556ee7d7564" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/63/ab/ed2272a7a3ed9a104a3224b0f3a389e051c11da67f9c4e8799397cef241e/simsimd-6.5.16-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-03-07T14:34:44Z, size = 583762, hashes = { sha256 = "34c34c95a32c881ce2d64cec445c82d33f2e350ca02ad50b053a78407d6163ba" } }] + +[[packages]] +name = "six" +version = "1.16.0" +sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", upload-time = 2021-05-05T14:18:18Z, size = 34041, hashes = { sha256 = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", upload-time = 2021-05-05T14:18:17Z, size = 11053, hashes = { sha256 = "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" } }] + +[[packages]] +name = "smmap" +version = "5.0.1" +sdist = { url = "https://files.pythonhosted.org/packages/88/04/b5bf6d21dc4041000ccba7eb17dd3055feb237e7ffc2c20d3fae3af62baa/smmap-5.0.1.tar.gz", upload-time = 2023-09-17T11:35:05Z, size = 22291, hashes = { sha256 = "dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a7/a5/10f97f73544edcdef54409f1d839f6049a0d79df68adbc1ceb24d1aaca42/smmap-5.0.1-py3-none-any.whl", upload-time = 2023-09-17T11:35:03Z, size = 24282, hashes = { sha256 = "e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da" } }] + +[[packages]] +name = "sniffio" +version = "1.3.1" +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", upload-time = 2024-02-25T23:20:04Z, size = 20372, hashes = { sha256 = "f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", upload-time = 2024-02-25T23:20:01Z, size = 10235, hashes = { sha256 = "2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2" } }] + +[[packages]] +name = "sortedcontainers" +version = "2.4.0" +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", upload-time = 2021-05-16T22:03:42Z, size = 30594, hashes = { sha256 = "25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", upload-time = 2021-05-16T22:03:41Z, size = 29575, hashes = { sha256 = "a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0" } }] + +[[packages]] +name = "soundcard" +version = "0.4.3" +sdist = { url = "https://files.pythonhosted.org/packages/fe/61/8fa850aacd49ad4c838cb51cd8893c1696ac32693efc22640f39f8190d50/SoundCard-0.4.3.tar.gz", upload-time = 2024-03-19T16:23:18Z, size = 40609, hashes = { sha256 = "410835514ba10809803cb9887d4270f392b59eaf365915bb94516af3f8b1d037" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/e9/1d/13d4c96e3785f00e7b0ae2fd04fd1c7a6016345114594a1050c8471a907a/SoundCard-0.4.3-py3-none-any.whl", upload-time = 2024-03-19T16:23:15Z, size = 43684, hashes = { sha256 = "2af6f6b49c24dc8a997d8189206206f1bf1d48d7e8f313777293996809cfdfe3" } }] + +[[packages]] +name = "soundfile" +version = "0.12.1" +sdist = { url = "https://files.pythonhosted.org/packages/6f/96/5ff33900998bad58d5381fd1acfcdac11cbea4f08fc72ac1dc25ffb13f6a/soundfile-0.12.1.tar.gz", upload-time = 2023-02-15T15:37:32Z, size = 43184, hashes = { sha256 = "e8e1017b2cf1dda767aef19d2fd9ee5ebe07e050d430f77a0a7c66ba08b8cdae" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/bc/cd845c2dbb4d257c744cd58a5bcdd9f6d235ca317e7e22e49564ec88dcd9/soundfile-0.12.1-py2.py3-none-any.whl", upload-time = 2023-02-15T15:37:16Z, size = 24030, hashes = { sha256 = "828a79c2e75abab5359f780c81dccd4953c45a2c4cd4f05ba3e233ddf984b882" } }, + { url = "https://files.pythonhosted.org/packages/ad/bd/0602167a213d9184fc688b1086dc6d374b7ae8c33eccf169f9b50ce6568c/soundfile-0.12.1-py2.py3-none-manylinux_2_17_x86_64.whl", upload-time = 2023-03-24T08:21:58Z, size = 1257765, hashes = { sha256 = "2dc3685bed7187c072a46ab4ffddd38cef7de9ae5eb05c03df2ad569cf4dacbc" } }, + { url = "https://files.pythonhosted.org/packages/c1/07/7591f4efd29e65071c3a61b53725036ea8f73366a4920a481ebddaf8d0ca/soundfile-0.12.1-py2.py3-none-manylinux_2_31_x86_64.whl", upload-time = 2023-02-15T15:37:24Z, size = 1174746, hashes = { sha256 = "074247b771a181859d2bc1f98b5ebf6d5153d2c397b86ee9e29ba602a8dfe2a6" } }, +] + +[[packages]] +name = "soxr" +version = "0.4.0" +sdist = { url = "https://files.pythonhosted.org/packages/51/42/e05dc1801462807886617c0db5a7f34287f9a46f5fbbfc64269a203f4f4f/soxr-0.4.0.tar.gz", upload-time = 2024-07-25T14:18:53Z, size = 300434, hashes = { sha256 = "02385e3de07e28ddbc19ab41216075d889575895e778ce2ada950d5f46cf6a52" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/08/bf/bc12314969467e6a4b649c26b1a6fecc63b67f9a127e4c9b32b3433945ef/soxr-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-07-25T14:18:32Z, size = 1298846, hashes = { sha256 = "12a0e460f1199aaed544a30c67f5df7a452b0647b63e0df706a17577e963e38b" } }] + +[[packages]] +name = "sqlalchemy" +version = "2.0.32" +sdist = { url = "https://files.pythonhosted.org/packages/af/6f/967e987683908af816aa3072c1a6997ac9933cf38d66b0474fb03f253323/SQLAlchemy-2.0.32.tar.gz", upload-time = 2024-08-05T19:08:39Z, size = 9546691, hashes = { sha256 = "c1b88cc8b02b6a5f0efb0345a03672d4c897dc7d92585176f88c67346f565ea8" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/af/379f8695ab751acf61868b0098c8d66e2b2ad8b11d9939d5144c82d05bc5/SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-05T19:28:11Z, size = 3197551, hashes = { sha256 = "295ff8689544f7ee7e819529633d058bd458c1fd7f7e3eebd0f9268ebc56c2a0" } }, + { url = "https://files.pythonhosted.org/packages/99/1b/045185a9f6481d926a451aafaa0d07c98f19ac7abe730dff9630c9ead4fa/SQLAlchemy-2.0.32-py3-none-any.whl", upload-time = 2024-08-05T19:40:44Z, size = 1878765, hashes = { sha256 = "e567a8793a692451f706b363ccf3c45e056b67d90ead58c3bc9471af5d212202" } }, +] + +[[packages]] +name = "stack-data" +version = "0.6.3" +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", upload-time = 2023-09-30T13:58:05Z, size = 44707, hashes = { sha256 = "836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", upload-time = 2023-09-30T13:58:03Z, size = 24521, hashes = { sha256 = "d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695" } }] + +[[packages]] +name = "starlette" +version = "0.49.1" +sdist = { url = "https://files.pythonhosted.org/packages/1b/3f/507c21db33b66fb027a332f2cb3abbbe924cc3a79ced12f01ed8645955c9/starlette-0.49.1.tar.gz", upload-time = 2025-10-28T17:34:10Z, size = 2654703, hashes = { sha256 = "481a43b71e24ed8c43b11ea02f5353d77840e01480881b8cb5a26b8cae64a8cb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/51/da/545b75d420bb23b5d494b0517757b351963e974e79933f01e05c929f20a6/starlette-0.49.1-py3-none-any.whl", upload-time = 2025-10-28T17:34:09Z, size = 74175, hashes = { sha256 = "d92ce9f07e4a3caa3ac13a79523bd18e3bc0042bb8ff2d759a8e7dd0e1859875" } }] + +[[packages]] +name = "streamlit" +version = "1.54.0" +sdist = { url = "https://files.pythonhosted.org/packages/be/66/d887ee80ea85f035baee607c60af024994e17ae9b921277fca9675e76ecf/streamlit-1.54.0.tar.gz", upload-time = 2026-02-04T16:37:54Z, size = 8662292, hashes = { sha256 = "09965e6ae7eb0357091725de1ce2a3f7e4be155c2464c505c40a3da77ab69dd8" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/48/1d/40de1819374b4f0507411a60f4d2de0d620a9b10c817de5925799132b6c9/streamlit-1.54.0-py3-none-any.whl", upload-time = 2026-02-04T16:37:52Z, size = 9119730, hashes = { sha256 = "a7b67d6293a9f5f6b4d4c7acdbc4980d7d9f049e78e404125022ecb1712f79fc" } }] + +[[packages]] +name = "stripe" +version = "11.3.0" +sdist = { url = "https://files.pythonhosted.org/packages/0d/96/358f9f62960826ee77de447d70e7ed09741dd5d53d684be1371913e51d7f/stripe-11.3.0.tar.gz", upload-time = 2024-11-20T23:40:16Z, size = 1367031, hashes = { sha256 = "98e625d9ddbabcecf02666867169696e113d9eaba27979fb310a7a8dfd44097c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a4/85/2f4365a0112e49ff646bc701b93e8c4eb314812d84149a43898ea88d377d/stripe-11.3.0-py2.py3-none-any.whl", upload-time = 2024-11-20T23:40:14Z, size = 1617363, hashes = { sha256 = "9d2e86943e1e4f325835d3860c4f58aa98d49229c9caf67588f9f9b2451e8e56" } }] + +[[packages]] +name = "sympy" +version = "1.14.0" +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", upload-time = 2025-04-27T18:05:01Z, size = 7793921, hashes = { sha256 = "d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", upload-time = 2025-04-27T18:04:59Z, size = 6299353, hashes = { sha256 = "e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5" } }] + +[[packages]] +name = "tabulate" +version = "0.9.0" +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", upload-time = 2022-10-06T17:21:48Z, size = 81090, hashes = { sha256 = "0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", upload-time = 2022-10-06T17:21:44Z, size = 35252, hashes = { sha256 = "024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f" } }] + +[[packages]] +name = "tenacity" +version = "8.2.3" +sdist = { url = "https://files.pythonhosted.org/packages/89/3c/253e1627262373784bf9355db9d6f20d2d8831d79f91e9cca48050cddcc2/tenacity-8.2.3.tar.gz", upload-time = 2023-08-14T13:22:50Z, size = 40651, hashes = { sha256 = "5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl", upload-time = 2023-08-14T13:22:49Z, size = 24401, hashes = { sha256 = "ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c" } }] + +[[packages]] +name = "text-unidecode" +version = "1.3" +sdist = { url = "https://files.pythonhosted.org/packages/ab/e2/e9a00f0ccb71718418230718b3d900e71a5d16e701a3dae079a21e9cd8f8/text-unidecode-1.3.tar.gz", upload-time = 2019-08-30T21:36:45Z, size = 76885, hashes = { sha256 = "bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", upload-time = 2019-08-30T21:37:03Z, size = 78154, hashes = { sha256 = "1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8" } }] + +[[packages]] +name = "threadpoolctl" +version = "3.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", upload-time = 2024-04-29T13:50:16Z, size = 41936, hashes = { sha256 = "082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", upload-time = 2024-04-29T13:50:14Z, size = 18414, hashes = { sha256 = "56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467" } }] + +[[packages]] +name = "tiktoken" +version = "0.7.0" +sdist = { url = "https://files.pythonhosted.org/packages/c4/4a/abaec53e93e3ef37224a4dd9e2fc6bb871e7a538c2b6b9d2a6397271daf4/tiktoken-0.7.0.tar.gz", upload-time = 2024-05-13T18:03:28Z, size = 33437, hashes = { sha256 = "1077266e949c24e0291f6c350433c6f0971365ece2b173a23bc3b9f9defef6b6" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/61/b4/b80d1fe33015e782074e96bbbf4108ccd283b8deea86fb43c15d18b7c351/tiktoken-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-05-13T18:02:48Z, size = 1080830, hashes = { sha256 = "86b6e7dc2e7ad1b3757e8a24597415bafcfb454cebf9a33a01f2e6ba2e663992" } }] + +[[packages]] +name = "toml" +version = "0.10.2" +sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", upload-time = 2020-11-01T01:40:22Z, size = 22253, hashes = { sha256 = "b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", upload-time = 2020-11-01T01:40:20Z, size = 16588, hashes = { sha256 = "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" } }] + +[[packages]] +name = "tornado" +version = "6.5.5" +sdist = { url = "https://files.pythonhosted.org/packages/f8/f1/3173dfa4a18db4a9b03e5d55325559dab51ee653763bb8745a75af491286/tornado-6.5.5.tar.gz", upload-time = 2026-03-10T21:31:02Z, size = 516006, hashes = { sha256 = "192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9" } } +wheels = [{ 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", upload-time = 2026-03-10T21:30:48Z, size = 447229, hashes = { sha256 = "e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5" } }] + +[[packages]] +name = "tqdm" +version = "4.66.5" +sdist = { url = "https://files.pythonhosted.org/packages/58/83/6ba9844a41128c62e810fddddd72473201f3eacde02046066142a2d96cc5/tqdm-4.66.5.tar.gz", upload-time = 2024-08-03T22:35:40Z, size = 169504, hashes = { sha256 = "e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/48/5d/acf5905c36149bbaec41ccf7f2b68814647347b72075ac0b1fe3022fdc73/tqdm-4.66.5-py3-none-any.whl", upload-time = 2024-08-03T22:35:36Z, size = 78351, hashes = { sha256 = "90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd" } }] + +[[packages]] +name = "traitlets" +version = "5.14.3" +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", upload-time = 2024-04-19T11:11:49Z, size = 161621, hashes = { sha256 = "9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", upload-time = 2024-04-19T11:11:46Z, size = 85359, hashes = { sha256 = "b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f" } }] + +[[packages]] +name = "twilio" +version = "9.5.0" +sdist = { url = "https://files.pythonhosted.org/packages/eb/a3/68d476e978930d6f1cfe802187b644505a4d5a0495a4ba730f80e9772c93/twilio-9.5.0.tar.gz", upload-time = 2025-03-11T12:56:31Z, size = 991636, hashes = { sha256 = "633d213c21b394297a27a92f20498adb1c4cd2f6fc3f4e2bfcc7d787b29fc034" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/06/f0/0b875419fa7ddfa6c4a07954f4991e50b37dcc9922bc502f023b12be67e1/twilio-9.5.0-py2.py3-none-any.whl", upload-time = 2025-03-11T12:56:28Z, size = 1882103, hashes = { sha256 = "e6d0ccf9162a83acfa6d21a02e90a22fdbc53f4269be3402ba579f13b2a259fc" } }] + +[[packages]] +name = "typer" +version = "0.12.3" +sdist = { url = "https://files.pythonhosted.org/packages/ac/0a/d55af35db5f50f486e3eda0ada747eed773859e2699d3ce570b682a9b70a/typer-0.12.3.tar.gz", upload-time = 2024-04-09T17:14:03Z, size = 94276, hashes = { sha256 = "49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/20/b5/11cf2e34fbb11b937e006286ab5b8cfd334fde1c8fa4dd7f491226931180/typer-0.12.3-py3-none-any.whl", upload-time = 2024-04-09T17:13:25Z, size = 47209, hashes = { sha256 = "070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914" } }] + +[[packages]] +name = "types-certifi" +version = "2021.10.8.3" +sdist = { url = "https://files.pythonhosted.org/packages/52/68/943c3aeaf14624712a0357c4a67814dba5cea36d194f5c764dad7959a00c/types-certifi-2021.10.8.3.tar.gz", upload-time = 2022-06-09T15:19:05Z, size = 2095, hashes = { sha256 = "72cf7798d165bc0b76e1c10dd1ea3097c7063c42c21d664523b928e88b554a4f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b5/63/2463d89481e811f007b0e1cd0a91e52e141b47f9de724d20db7b861dcfec/types_certifi-2021.10.8.3-py3-none-any.whl", upload-time = 2022-06-09T15:19:03Z, size = 2136, hashes = { sha256 = "b2d1e325e69f71f7c78e5943d410e650b4707bb0ef32e4ddf3da37f54176e88a" } }] + +[[packages]] +name = "types-toml" +version = "0.10.8.20240310" +sdist = { url = "https://files.pythonhosted.org/packages/86/47/3e4c75042792bff8e90d7991aa5c51812cc668828cc6cce711e97f63a607/types-toml-0.10.8.20240310.tar.gz", upload-time = 2024-03-10T02:18:37Z, size = 4392, hashes = { sha256 = "3d41501302972436a6b8b239c850b26689657e25281b48ff0ec06345b8830331" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/da/a2/d32ab58c0b216912638b140ab2170ee4b8644067c293b170e19fba340ccc/types_toml-0.10.8.20240310-py3-none-any.whl", upload-time = 2024-03-10T02:18:36Z, size = 4777, hashes = { sha256 = "627b47775d25fa29977d9c70dc0cbab3f314f32c8d8d0c012f2ef5de7aaec05d" } }] + +[[packages]] +name = "typesense" +version = "0.21.0" +sdist = { url = "https://files.pythonhosted.org/packages/73/c4/b9ee39e15503c7e284bdb8afb5f2b8d06ee06e7abc33ed56c17388ab24e6/typesense-0.21.0.tar.gz", upload-time = 2024-05-10T04:42:42Z, size = 14030, hashes = { sha256 = "24470525b577300bd81fe43029dddd9269b942b20b49236edf049f6ecead7c8e" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/88/2c/e3f25e6e2c5ddb0c8b6e78115f6acd1be3167da1bbe361ae0bcff5c90512/typesense-0.21.0-py3-none-any.whl", upload-time = 2024-05-10T04:42:40Z, size = 21143, hashes = { sha256 = "e4330f103a40af98ba2b0ffd817392a84a537e04816221c9a283faadea7718f0" } }] + +[[packages]] +name = "typing-extensions" +version = "4.15.0" +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", upload-time = 2025-08-25T13:49:26Z, size = 109391, hashes = { sha256 = "0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", upload-time = 2025-08-25T13:49:24Z, size = 44614, hashes = { sha256 = "f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" } }] + +[[packages]] +name = "typing-inspect" +version = "0.9.0" +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", upload-time = 2023-05-24T20:25:47Z, size = 13825, hashes = { sha256 = "b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", upload-time = 2023-05-24T20:25:45Z, size = 8827, hashes = { sha256 = "9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f" } }] + +[[packages]] +name = "typing-inspection" +version = "0.4.2" +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", upload-time = 2025-10-01T02:14:41Z, size = 75949, hashes = { sha256 = "ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", upload-time = 2025-10-01T02:14:40Z, size = 14611, hashes = { sha256 = "4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7" } }] + +[[packages]] +name = "tzdata" +version = "2024.1" +sdist = { url = "https://files.pythonhosted.org/packages/74/5b/e025d02cb3b66b7b76093404392d4b44343c69101cc85f4d180dd5784717/tzdata-2024.1.tar.gz", upload-time = 2024-02-11T23:22:40Z, size = 190559, hashes = { sha256 = "2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl", upload-time = 2024-02-11T23:22:38Z, size = 345370, hashes = { sha256 = "9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252" } }] + +[[packages]] +name = "umap-learn" +version = "0.5.6" +sdist = { url = "https://files.pythonhosted.org/packages/36/c0/a21f7e83dc471cb4bdb7bfb10244eb63a0c0b68ee2939b6698add0377eee/umap-learn-0.5.6.tar.gz", upload-time = 2024-04-03T16:53:18Z, size = 89627, hashes = { sha256 = "5b3917a862c23ba0fc83bfcd67a7b719dec85b3d9c01fdc7d894cce455df4e03" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/d1/1b/46802a050b1c55d10c4f59fc6afd2b45ac9b4f62b2e12092d3f599286f14/umap_learn-0.5.6-py3-none-any.whl", upload-time = 2024-04-03T16:53:16Z, size = 85712, hashes = { sha256 = "881cc0c2ee845b790bf0455aa1664f9f68b838d9d0fe12a1291b85c5a559c913" } }] + +[[packages]] +name = "uritemplate" +version = "4.1.1" +sdist = { url = "https://files.pythonhosted.org/packages/d2/5a/4742fdba39cd02a56226815abfa72fe0aa81c33bed16ed045647d6000eba/uritemplate-4.1.1.tar.gz", upload-time = 2021-10-13T11:15:14Z, size = 273898, hashes = { sha256 = "4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/81/c0/7461b49cd25aeece13766f02ee576d1db528f1c37ce69aee300e075b485b/uritemplate-4.1.1-py2.py3-none-any.whl", upload-time = 2021-10-13T11:15:12Z, size = 10356, hashes = { sha256 = "830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e" } }] + +[[packages]] +name = "urllib3" +version = "2.7.0" +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", upload-time = 2026-05-07T16:13:18Z, size = 433602, hashes = { sha256 = "231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", upload-time = 2026-05-07T16:13:17Z, size = 131087, hashes = { sha256 = "9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897" } }] + +[[packages]] +name = "uuid-utils" +version = "0.16.2" +sdist = { url = "https://files.pythonhosted.org/packages/f8/5a/5da7ae85b38e3eddba0be3e8e4328f90882fe92989728e6fb552963d4c42/uuid_utils-0.16.2.tar.gz", upload-time = 2026-06-18T13:36:48Z, size = 42962, hashes = { sha256 = "fa637e4f314ad5b59ff6d8e809d506443d68bef30bfaecdfcfe02cce689abb2f" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/00/70/b3cf708e8942e6494742404a66f1586195a20c8fd235bdc79f385db383f1/uuid_utils-0.16.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2026-06-18T13:35:09Z, size = 327231, hashes = { sha256 = "1a30b6a5790acb854e4b65fae7875e5d3c6f8076fa9c91dac43ff9e28380bc52" } }] + +[[packages]] +name = "uvicorn" +version = "0.30.5" +sdist = { url = "https://files.pythonhosted.org/packages/c3/ad/02b1b412e43605aa6aac8d0392c383ff3f6ae8267b7864e48e3b5f3f601e/uvicorn-0.30.5.tar.gz", upload-time = 2024-08-02T10:22:36Z, size = 42835, hashes = { sha256 = "ac6fdbd4425c5fd17a9fe39daf4d4d075da6fdc80f653e5894cdc2fd98752bee" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/67/d8/1bcb5e6508d14c6c9912cd964b286f04392298ffb3e4218f4a1292d64e76/uvicorn-0.30.5-py3-none-any.whl", upload-time = 2024-08-02T10:22:32Z, size = 62805, hashes = { sha256 = "b2d86de274726e9878188fa07576c9ceeff90a839e2b6e25c917fe05f5a6c835" } }] + +[[packages]] +name = "uvloop" +version = "0.20.0" +sdist = { url = "https://files.pythonhosted.org/packages/bc/f1/dc9577455e011ad43d9379e836ee73f40b4f99c02946849a44f7ae64835e/uvloop-0.20.0.tar.gz", upload-time = 2024-08-15T19:36:29Z, size = 2329938, hashes = { sha256 = "4603ca714a754fc8d9b197e325db25b2ea045385e8a3ad05d3463de725fdf469" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/46/6d/4caab3a36199ba52b98d519feccfcf48921d7a6649daf14a93c7e77497e9/uvloop-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-15T19:35:53Z, size = 3489932, hashes = { sha256 = "82edbfd3df39fb3d108fc079ebc461330f7c2e33dbd002d146bf7c445ba6e756" } }] + +[[packages]] +name = "watchdog" +version = "4.0.2" +sdist = { url = "https://files.pythonhosted.org/packages/4f/38/764baaa25eb5e35c9a043d4c4588f9836edfe52a708950f4b6d5f714fd42/watchdog-4.0.2.tar.gz", upload-time = 2024-08-11T07:38:01Z, size = 126587, hashes = { sha256 = "b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/01/d2/c8931ff840a7e5bd5dcb93f2bb2a1fd18faf8312e9f7f53ff1cf76ecc8ed/watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", upload-time = 2024-08-11T07:37:55Z, size = 82947, hashes = { sha256 = "c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8" } }] + +[[packages]] +name = "watchfiles" +version = "0.22.0" +sdist = { url = "https://files.pythonhosted.org/packages/53/e1/666771f0746f95c4df767ff98ff17fe55bb0c32ac88ec14ce0615a789330/watchfiles-0.22.0.tar.gz", upload-time = 2024-05-27T12:33:15Z, size = 37900, hashes = { sha256 = "988e981aaab4f3955209e7e28c7794acdb690be1efa7f16f8ea5aba7ffdadacb" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/9e/eb/a11634f2ac58e609ac1150c45897ec29361b2bcbfdae388f3f4fc709104b/watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-05-27T12:31:50Z, size = 1199099, hashes = { sha256 = "94ebe84a035993bb7668f58a0ebf998174fb723a39e4ef9fce95baabb42b787f" } }] + +[[packages]] +name = "wcwidth" +version = "0.2.13" +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", upload-time = 2024-01-06T02:10:57Z, size = 101301, hashes = { sha256 = "72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", upload-time = 2024-01-06T02:10:55Z, size = 34166, hashes = { sha256 = "3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859" } }] + +[[packages]] +name = "webrtcvad" +version = "2.0.10" +sdist = { url = "https://files.pythonhosted.org/packages/89/34/e2de2d97f3288512b9ea56f92e7452f8207eb5a0096500badf9dfd48f5e6/webrtcvad-2.0.10.tar.gz", upload-time = 2017-01-07T23:05:18Z, size = 66156, hashes = { sha256 = "f1bed2fb25b63fb7b1a55d64090c993c9c9167b28485ae0bcdd81cf6ede96aea" } } + +[[packages]] +name = "websockets" +version = "12.0" +sdist = { url = "https://files.pythonhosted.org/packages/2e/62/7a7874b7285413c954a4cca3c11fd851f11b2fe5b4ae2d9bee4f6d9bdb10/websockets-12.0.tar.gz", upload-time = 2023-10-21T14:21:11Z, size = 104994, hashes = { sha256 = "81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/05/f52a60b66d9faf07a4f7d71dc056bffafe36a7e98c4eb5b78f04fe6e4e85/websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2023-10-21T14:19:53Z, size = 130872, hashes = { sha256 = "6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04" } }, + { url = "https://files.pythonhosted.org/packages/79/4d/9cc401e7b07e80532ebc8c8e993f42541534da9e9249c59ee0139dcb0352/websockets-12.0-py3-none-any.whl", upload-time = 2023-10-21T14:21:10Z, size = 118370, hashes = { sha256 = "dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e" } }, +] + +[[packages]] +name = "werkzeug" +version = "3.1.8" +sdist = { url = "https://files.pythonhosted.org/packages/dd/b2/381be8cfdee792dd117872481b6e378f85c957dd7c5bca38897b08f765fd/werkzeug-3.1.8.tar.gz", upload-time = 2026-04-02T18:49:14Z, size = 875852, hashes = { sha256 = "9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/93/8c/2e650f2afeb7ee576912636c23ddb621c91ac6a98e66dc8d29c3c69446e1/werkzeug-3.1.8-py3-none-any.whl", upload-time = 2026-04-02T18:49:12Z, size = 226459, hashes = { sha256 = "63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50" } }] + +[[packages]] +name = "xxhash" +version = "3.7.0" +sdist = { url = "https://files.pythonhosted.org/packages/24/2f/e183a1b407002f5af81822bee18b61cdb94b8670208ef34734d8d2b8ebe9/xxhash-3.7.0.tar.gz", upload-time = 2026-04-25T11:10:32Z, size = 82022, hashes = { sha256 = "6cc4eefbb542a5d6ffd6d70ea9c502957c925e800f998c5630ecc809d6702bae" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/f7/d0/3c91e4e6a05ca4d7df8e39ec3a75b713609258ec84705ab34be6430826a1/xxhash-3.7.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2026-04-25T11:06:00Z, size = 193937, hashes = { sha256 = "d7d9110d0c3fb02679972837a033251fd186c529aa62f19c132fc909c74052b8" } }] + +[[packages]] +name = "yarl" +version = "1.17.0" +sdist = { url = "https://files.pythonhosted.org/packages/55/8f/d2d546f8b674335fa7ef83cc5c1892294f3f516c570893e65a7ea8ed49c9/yarl-1.17.0.tar.gz", upload-time = 2024-10-28T21:20:43Z, size = 177249, hashes = { sha256 = "d3f13583f378930377e02002b4085a3d025b00402d5a80911726d43a67911cd9" } } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/0d/8ecf4604cf62abd8d4aa30dd927466b095f263ee708aed2e576f9f6c6ac8/yarl-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-10-28T21:18:28Z, size = 343091, hashes = { sha256 = "48f51b529b958cd06e78158ff297a8bf57b4021243c179ee03695b5dbf9cb6e1" } }, + { url = "https://files.pythonhosted.org/packages/93/86/f1305e1ab1d6dc27d245ffc83d18d88f2bebf6c6488725ee82dffb3eda7a/yarl-1.17.0-py3-none-any.whl", upload-time = 2024-10-28T21:20:41Z, size = 44053, hashes = { sha256 = "62dd42bb0e49423f4dd58836a04fcf09c80237836796025211bbe913f1524993" } }, +] + +[[packages]] +name = "zstandard" +version = "0.25.0" +sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", upload-time = 2025-09-14T22:15:54Z, size = 711513, hashes = { sha256 = "7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-09-14T22:16:37Z, size = 5559635, hashes = { sha256 = "9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072" } }] diff --git a/backend/scripts/sync-python-deps.sh b/backend/scripts/sync-python-deps.sh new file mode 100755 index 00000000000..ce559f05521 --- /dev/null +++ b/backend/scripts/sync-python-deps.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# Sync the backend local virtualenv from the checked-in uv pylock. +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT_DIR" + +PYTHON_VERSION="$(tr -d '[:space:]' < .python-version)" +VENV_PATH="${VENV_PATH:-.venv}" + +if ! command -v uv >/dev/null 2>&1; then + echo "uv is required. Install it from https://docs.astral.sh/uv/getting-started/installation/" >&2 + exit 1 +fi + +uv python install "$PYTHON_VERSION" +uv venv --python "$PYTHON_VERSION" "$VENV_PATH" +uv pip sync pylock.toml --python "$VENV_PATH/bin/python" + +echo "Backend dependencies synced into $ROOT_DIR/$VENV_PATH" diff --git a/backend/scripts/update-python-lock.sh b/backend/scripts/update-python-lock.sh new file mode 100755 index 00000000000..6735a97b644 --- /dev/null +++ b/backend/scripts/update-python-lock.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Refresh the backend uv pylock from the human-maintained requirements files. +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT_DIR" + +PYTHON_VERSION="$(tr -d '[:space:]' < .python-version)" + +if ! command -v uv >/dev/null 2>&1; then + echo "uv is required. Install it from https://docs.astral.sh/uv/getting-started/installation/" >&2 + exit 1 +fi + +uv python install "$PYTHON_VERSION" +uv pip compile \ + requirements.txt \ + testing/e2e/requirements.txt \ + --format pylock.toml \ + --python "$PYTHON_VERSION" \ + --output-file pylock.toml \ + --custom-compile-command 'backend/scripts/update-python-lock.sh' diff --git a/docs/doc/developer/backend/Backend_Setup.mdx b/docs/doc/developer/backend/Backend_Setup.mdx index 400bc56c9ee..d46f69dbc5c 100644 --- a/docs/doc/developer/backend/Backend_Setup.mdx +++ b/docs/doc/developer/backend/Backend_Setup.mdx @@ -270,34 +270,22 @@ OAuth is required for user authentication. You need to configure both Google and - Using a virtual environment is strongly recommended to avoid dependency conflicts. + The backend uses `uv`, `.python-version`, and `pylock.toml` for reproducible local and CI installs. ```bash - # Create virtual environment with Python 3.11 - python --version - python -m venv venv + # From backend/ + ./scripts/sync-python-deps.sh + source .venv/bin/activate ``` - - - ```bash - source venv/bin/activate - ``` - - - ```powershell - venv\Scripts\activate - ``` - - - - You should see `(venv)` at the beginning of your command prompt. + You should see `(.venv)` at the beginning of your command prompt. - + + When intentionally changing backend dependencies, edit `requirements.txt` or `testing/e2e/requirements.txt`, then refresh the lock: + ```bash - pip install PyOgg - pip install -r requirements.txt + ./scripts/update-python-lock.sh ``` From e7adfbbc7b72afda6f1e56c266eaad4926e8e83a Mon Sep 17 00:00:00 2001 From: David Zhang Date: Fri, 19 Jun 2026 23:35:22 +0000 Subject: [PATCH 2/2] fix: address uv setup review comments --- .github/workflows/backend-hermetic-e2e.yml | 3 ++- docs/doc/developer/backend/Backend_Setup.mdx | 21 +++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/backend-hermetic-e2e.yml b/.github/workflows/backend-hermetic-e2e.yml index f149672aed2..d79457c42c9 100644 --- a/.github/workflows/backend-hermetic-e2e.yml +++ b/.github/workflows/backend-hermetic-e2e.yml @@ -24,7 +24,8 @@ jobs: python-version-file: backend/.python-version - name: Set up uv - uses: astral-sh/setup-uv@v7 + # astral-sh/setup-uv v7, pinned to an immutable commit for CI supply-chain stability. + uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 with: enable-cache: true cache-dependency-glob: backend/pylock.toml diff --git a/docs/doc/developer/backend/Backend_Setup.mdx b/docs/doc/developer/backend/Backend_Setup.mdx index d46f69dbc5c..cfcdd4999dc 100644 --- a/docs/doc/developer/backend/Backend_Setup.mdx +++ b/docs/doc/developer/backend/Backend_Setup.mdx @@ -273,11 +273,22 @@ OAuth is required for user authentication. You need to configure both Google and The backend uses `uv`, `.python-version`, and `pylock.toml` for reproducible local and CI installs. - ```bash - # From backend/ - ./scripts/sync-python-deps.sh - source .venv/bin/activate - ``` + + + ```bash + # From backend/ + ./scripts/sync-python-deps.sh + source .venv/bin/activate + ``` + + + ```powershell + # From backend/ + bash ./scripts/sync-python-deps.sh + .venv\Scripts\Activate.ps1 + ``` + + You should see `(.venv)` at the beginning of your command prompt.