From 9cf2a956400ea52f16f0deab601d2acad6077899 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Sat, 3 May 2025 09:30:10 -0700 Subject: [PATCH] bump litellm proxy extras --- ...tellm_proxy_extras-0.1.15-py3-none-any.whl | Bin 0 -> 18941 bytes .../dist/litellm_proxy_extras-0.1.15.tar.gz | Bin 0 -> 11888 bytes litellm-proxy-extras/pyproject.toml | 4 +- poetry.lock | 327 +++++++++++++++--- pyproject.toml | 2 +- requirements.txt | 2 +- 6 files changed, 288 insertions(+), 47 deletions(-) create mode 100644 litellm-proxy-extras/dist/litellm_proxy_extras-0.1.15-py3-none-any.whl create mode 100644 litellm-proxy-extras/dist/litellm_proxy_extras-0.1.15.tar.gz diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.1.15-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.1.15-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..1b8ba5f63d4aae871913f16973ad3c036d3e114a GIT binary patch literal 18941 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

|zC{wVgVrB~i7=Jv9ltIZ%3jAl8f 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 literal 0 HcmV?d00001 diff --git a/litellm-proxy-extras/pyproject.toml b/litellm-proxy-extras/pyproject.toml index 0d9f55b884..c001a4397d 100644 --- a/litellm-proxy-extras/pyproject.toml +++ b/litellm-proxy-extras/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "litellm-proxy-extras" -version = "0.1.14" +version = "0.1.15" description = "Additional files for the LiteLLM Proxy. Reduces the size of the main litellm package." authors = ["BerriAI"] readme = "README.md" @@ -22,7 +22,7 @@ requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.commitizen] -version = "0.1.14" +version = "0.1.15" version_files = [ "pyproject.toml:version", "../requirements.txt:litellm-proxy-extras==", diff --git a/poetry.lock b/poetry.lock index f901b07082..217b145a97 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -6,6 +6,7 @@ version = "2.4.4" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, @@ -17,6 +18,7 @@ version = "3.10.11" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "aiohttp-3.10.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5077b1a5f40ffa3ba1f40d537d3bec4383988ee51fbba6b74aa8fb1bc466599e"}, {file = "aiohttp-3.10.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d6a14a4d93b5b3c2891fca94fa9d41b2322a68194422bef0dd5ec1e57d7d298"}, @@ -121,7 +123,7 @@ multidict = ">=4.5,<7.0" yarl = ">=1.12.0,<2.0" [package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] +speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] [[package]] name = "aiosignal" @@ -129,6 +131,7 @@ version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, @@ -143,6 +146,7 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main", "proxy-dev"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -157,6 +161,7 @@ version = "4.5.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "anyio-4.5.2-py3-none-any.whl", hash = "sha256:c011ee36bc1e8ba40e5a81cb9df91925c218fe9b778554e0b56a21e1b5d4716f"}, {file = "anyio-4.5.2.tar.gz", hash = "sha256:23009af4ed04ce05991845451e11ef02fc7c5ed29179ac9a420e5ad0ac7ddc5b"}, @@ -170,7 +175,7 @@ typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21.0b1) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\""] trio = ["trio (>=0.26.1)"] [[package]] @@ -179,6 +184,8 @@ version = "3.11.0" description = "In-process task scheduler with Cron-like capabilities" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "APScheduler-3.11.0-py3-none-any.whl", hash = "sha256:fc134ca32e50f5eadcc4938e3a4545ab19131435e851abb40b34d63d5141c6da"}, {file = "apscheduler-3.11.0.tar.gz", hash = "sha256:4c622d250b0955a65d5d0eb91c33e6d43fd879834bf541e0a18661ae60460133"}, @@ -196,7 +203,7 @@ mongodb = ["pymongo (>=3.0)"] redis = ["redis (>=3.0)"] rethinkdb = ["rethinkdb (>=2.4.0)"] sqlalchemy = ["sqlalchemy (>=1.4)"] -test = ["APScheduler[etcd,mongodb,redis,rethinkdb,sqlalchemy,tornado,zookeeper]", "PySide6", "anyio (>=4.5.2)", "gevent", "pytest", "pytz", "twisted"] +test = ["APScheduler[etcd,mongodb,redis,rethinkdb,sqlalchemy,tornado,zookeeper]", "PySide6 ; platform_python_implementation == \"CPython\" and python_version < \"3.14\"", "anyio (>=4.5.2)", "gevent ; python_version < \"3.14\"", "pytest", "pytz", "twisted ; python_version < \"3.14\""] tornado = ["tornado (>=4.3)"] twisted = ["twisted"] zookeeper = ["kazoo"] @@ -205,8 +212,10 @@ zookeeper = ["kazoo"] name = "async-timeout" version = "5.0.1" description = "Timeout context manager for asyncio programs" -optional = false +optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "python_full_version < \"3.11.3\" and (extra == \"extra-proxy\" or extra == \"proxy\") or python_version <= \"3.10\"" files = [ {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, @@ -218,18 +227,19 @@ version = "25.3.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] [[package]] name = "azure-core" @@ -237,6 +247,8 @@ version = "1.33.0" description = "Microsoft Azure Core Library for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "azure_core-1.33.0-py3-none-any.whl", hash = "sha256:9b5b6d0223a1d38c37500e6971118c1e0f13f54951e6893968b38910bc9cda8f"}, {file = "azure_core-1.33.0.tar.gz", hash = "sha256:f367aa07b5e3005fec2c1e184b882b0b039910733907d001c20fb08ebb8c0eb9"}, @@ -257,6 +269,8 @@ version = "1.21.0" description = "Microsoft Azure Identity Library for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "azure_identity-1.21.0-py3-none-any.whl", hash = "sha256:258ea6325537352440f71b35c3dffe9d240eae4a5126c1b7ce5efd5766bd9fd9"}, {file = "azure_identity-1.21.0.tar.gz", hash = "sha256:ea22ce6e6b0f429bc1b8d9212d5b9f9877bd4c82f1724bfa910760612c07a9a6"}, @@ -275,6 +289,8 @@ version = "4.9.0" description = "Microsoft Azure Key Vault Secrets Client Library for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "azure_keyvault_secrets-4.9.0-py3-none-any.whl", hash = "sha256:33c7e2aca2cc2092cebc8c6e96eca36a5cc30c767e16ea429c5fa21270e9fba6"}, {file = "azure_keyvault_secrets-4.9.0.tar.gz", hash = "sha256:2a03bb2ffd9a0d6c8ad1c330d9d0310113985a9de06607ece378fd72a5889fe1"}, @@ -291,6 +307,8 @@ version = "2.2.1" description = "Function decoration for backoff and retry" optional = true python-versions = ">=3.7,<4.0" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, @@ -302,6 +320,8 @@ version = "0.2.1" description = "Backport of the standard library zoneinfo module" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"proxy\" and python_version < \"3.9\"" files = [ {file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"}, {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"}, @@ -330,6 +350,7 @@ version = "23.12.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, @@ -366,7 +387,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +d = ["aiohttp (>=3.7.4) ; sys_platform != \"win32\" or implementation_name != \"pypy\"", "aiohttp (>=3.7.4,!=3.9.0) ; sys_platform == \"win32\" and implementation_name == \"pypy\""] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -376,6 +397,8 @@ version = "1.34.34" description = "The AWS SDK for Python" optional = true python-versions = ">= 3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "boto3-1.34.34-py3-none-any.whl", hash = "sha256:33a8b6d9136fa7427160edb92d2e50f2035f04e9d63a2d1027349053e12626aa"}, {file = "boto3-1.34.34.tar.gz", hash = "sha256:b2f321e20966f021ec800b7f2c01287a3dd04fc5965acdfbaa9c505a24ca45d1"}, @@ -395,6 +418,8 @@ version = "1.34.162" description = "Low-level, data-driven core of boto 3." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "botocore-1.34.162-py3-none-any.whl", hash = "sha256:2d918b02db88d27a75b48275e6fb2506e9adaaddbec1ffa6a8a0898b34e769be"}, {file = "botocore-1.34.162.tar.gz", hash = "sha256:adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3"}, @@ -404,8 +429,8 @@ files = [ jmespath = ">=0.7.1,<2.0.0" python-dateutil = ">=2.1,<3.0.0" urllib3 = [ - {version = ">=1.25.4,<1.27", markers = "python_version < \"3.10\""}, {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""}, + {version = ">=1.25.4,<1.27", markers = "python_version < \"3.10\""}, ] [package.extras] @@ -417,6 +442,8 @@ version = "5.5.2" description = "Extensible memoizing collections and decorators" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a"}, {file = "cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4"}, @@ -428,6 +455,7 @@ version = "2025.4.26" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, @@ -439,6 +467,7 @@ version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, @@ -508,6 +537,7 @@ files = [ {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] +markers = {main = "(extra == \"proxy\" or extra == \"extra-proxy\") and (platform_python_implementation != \"PyPy\" or extra == \"proxy\")", dev = "platform_python_implementation != \"PyPy\""} [package.dependencies] pycparser = "*" @@ -518,6 +548,7 @@ version = "3.4.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, @@ -619,6 +650,7 @@ version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, @@ -633,10 +665,12 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "platform_system == \"Windows\"", dev = "platform_system == \"Windows\" or sys_platform == \"win32\"", proxy-dev = "platform_system == \"Windows\""} [[package]] name = "coloredlogs" @@ -644,6 +678,8 @@ version = "15.0.1" description = "Colored terminal output for Python's logging module" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934"}, {file = "coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0"}, @@ -661,6 +697,7 @@ version = "43.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, @@ -690,6 +727,7 @@ files = [ {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, ] +markers = {main = "extra == \"proxy\" or extra == \"extra-proxy\""} [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} @@ -710,6 +748,7 @@ version = "1.2.18" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["dev", "proxy-dev"] files = [ {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, @@ -719,7 +758,7 @@ files = [ wrapt = ">=1.10,<2" [package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools ; python_version >= \"3.12\"", "tox"] [[package]] name = "distro" @@ -727,6 +766,7 @@ version = "1.9.0" description = "Distro - an OS platform information API" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, @@ -738,6 +778,8 @@ version = "2.6.1" description = "DNS toolkit" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, @@ -758,6 +800,8 @@ version = "2.2.0" description = "A robust email address syntax and deliverability validation library." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, @@ -773,6 +817,8 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["main", "dev", "proxy-dev"] +markers = "python_version <= \"3.10\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -787,6 +833,8 @@ version = "0.115.12" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, @@ -807,6 +855,8 @@ version = "0.16.0" description = "FastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via Microsoft Office 365 Account)" optional = true python-versions = "<4.0,>=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "fastapi_sso-0.16.0-py3-none-any.whl", hash = "sha256:3a66a942474ef9756d3a9d8b945d55bd9faf99781facdb9b87a40b73d6d6b0c3"}, {file = "fastapi_sso-0.16.0.tar.gz", hash = "sha256:f3941f986347566b7d3747c710cf474a907f581bfb6697ff3bb3e44eb76b438c"}, @@ -825,6 +875,7 @@ version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, @@ -833,7 +884,7 @@ files = [ [package.extras] docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] -typing = ["typing-extensions (>=4.12.2)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] [[package]] name = "flake8" @@ -841,6 +892,7 @@ version = "6.1.0" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.8.1" +groups = ["dev"] files = [ {file = "flake8-6.1.0-py2.py3-none-any.whl", hash = "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5"}, {file = "flake8-6.1.0.tar.gz", hash = "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23"}, @@ -857,6 +909,7 @@ version = "1.5.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, @@ -958,6 +1011,7 @@ version = "2025.3.0" description = "File-system specification" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "fsspec-2025.3.0-py3-none-any.whl", hash = "sha256:efb87af3efa9103f94ca91a7f8cb7a4df91af9f74fc106c9c7ea0efd7277c1b3"}, {file = "fsspec-2025.3.0.tar.gz", hash = "sha256:a935fd1ea872591f2b5148907d103488fc523295e6c64b835cfad8c3eca44972"}, @@ -997,6 +1051,8 @@ version = "2.24.2" description = "Google API client core library" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "google_api_core-2.24.2-py3-none-any.whl", hash = "sha256:810a63ac95f3c441b7c0e43d344e372887f62ce9071ba972eacf32672e072de9"}, {file = "google_api_core-2.24.2.tar.gz", hash = "sha256:81718493daf06d96d6bc76a91c23874dbf2fac0adbbf542831b805ee6e974696"}, @@ -1006,15 +1062,15 @@ files = [ google-auth = ">=2.14.1,<3.0.0" googleapis-common-protos = ">=1.56.2,<2.0.0" grpcio = [ - {version = ">=1.33.2,<2.0dev", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, {version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, + {version = ">=1.33.2,<2.0dev", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, ] grpcio-status = [ - {version = ">=1.33.2,<2.0.dev0", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, {version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, + {version = ">=1.33.2,<2.0.dev0", optional = true, markers = "extra == \"grpc\""}, ] proto-plus = [ - {version = ">=1.22.3,<2.0.0", markers = "python_version < \"3.13\""}, + {version = ">=1.22.3,<2.0.0"}, {version = ">=1.25.0,<2.0.0", markers = "python_version >= \"3.13\""}, ] protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" @@ -1022,7 +1078,7 @@ requests = ">=2.18.0,<3.0.0" [package.extras] async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.dev0)"] -grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"] +grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev) ; python_version >= \"3.11\"", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0) ; python_version >= \"3.11\""] grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] @@ -1032,6 +1088,8 @@ version = "2.39.0" description = "Google Authentication Library" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "google_auth-2.39.0-py2.py3-none-any.whl", hash = "sha256:0150b6711e97fb9f52fe599f55648950cc4540015565d8fbb31be2ad6e1548a2"}, {file = "google_auth-2.39.0.tar.gz", hash = "sha256:73222d43cdc35a3aeacbfdcaf73142a97839f10de930550d89ebfe1d0a00cde7"}, @@ -1045,11 +1103,11 @@ rsa = ">=3.1.4,<5" [package.extras] aiohttp = ["aiohttp (>=3.6.2,<4.0.0)", "requests (>=2.20.0,<3.0.0)"] enterprise-cert = ["cryptography", "pyopenssl"] -pyjwt = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"] -pyopenssl = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] +pyjwt = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"] +pyopenssl = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] reauth = ["pyu2f (>=0.1.5)"] requests = ["requests (>=2.20.0,<3.0.0)"] -testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0)", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"] +testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"] urllib3 = ["packaging", "urllib3"] [[package]] @@ -1058,6 +1116,8 @@ version = "2.24.2" description = "Google Cloud Kms API client library" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "google_cloud_kms-2.24.2-py2.py3-none-any.whl", hash = "sha256:368209b035dfac691a467c1cf50986d8b1b26cac1166bdfbaa25d738df91ff7b"}, {file = "google_cloud_kms-2.24.2.tar.gz", hash = "sha256:e9e18bbfafd1a4035c76c03fb5ff03f4f57f596d08e1a9ede7e69ec0151b27a1"}, @@ -1076,10 +1136,12 @@ version = "1.70.0" description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8"}, {file = "googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257"}, ] +markers = {main = "extra == \"extra-proxy\""} [package.dependencies] grpcio = {version = ">=1.44.0,<2.0.0", optional = true, markers = "extra == \"grpc\""} @@ -1094,6 +1156,8 @@ version = "0.14.2" description = "IAM API client library" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "grpc_google_iam_v1-0.14.2-py3-none-any.whl", hash = "sha256:a3171468459770907926d56a440b2bb643eec1d7ba215f48f3ecece42b4d8351"}, {file = "grpc_google_iam_v1-0.14.2.tar.gz", hash = "sha256:b3e1fc387a1a329e41672197d0ace9de22c78dd7d215048c4c78712073f7bd20"}, @@ -1110,6 +1174,7 @@ version = "1.70.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851"}, {file = "grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf"}, @@ -1167,6 +1232,7 @@ files = [ {file = "grpcio-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:a31d7e3b529c94e930a117b2175b2efd179d96eb3c7a21ccb0289a8ab05b645c"}, {file = "grpcio-1.70.0.tar.gz", hash = "sha256:8d1584a68d5922330025881e63a6c1b54cc8117291d382e4fa69339b6d914c56"}, ] +markers = {main = "extra == \"extra-proxy\""} [package.extras] protobuf = ["grpcio-tools (>=1.70.0)"] @@ -1177,6 +1243,8 @@ version = "1.62.3" description = "Status proto mapping for gRPC" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "grpcio-status-1.62.3.tar.gz", hash = "sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485"}, {file = "grpcio_status-1.62.3-py3-none-any.whl", hash = "sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8"}, @@ -1193,6 +1261,8 @@ version = "23.0.0" description = "WSGI HTTP Server for UNIX" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d"}, {file = "gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"}, @@ -1214,6 +1284,7 @@ version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, @@ -1225,6 +1296,7 @@ version = "4.1.0" description = "HTTP/2 State-Machine based protocol implementation" optional = false python-versions = ">=3.6.1" +groups = ["proxy-dev"] files = [ {file = "h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d"}, {file = "h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"}, @@ -1240,6 +1312,7 @@ version = "4.0.0" description = "Pure-Python HPACK header compression" optional = false python-versions = ">=3.6.1" +groups = ["proxy-dev"] files = [ {file = "hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"}, {file = "hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"}, @@ -1251,6 +1324,7 @@ version = "1.0.9" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, @@ -1272,6 +1346,7 @@ version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -1284,7 +1359,7 @@ httpcore = "==1.*" idna = "*" [package.extras] -brotli = ["brotli", "brotlicffi"] +brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -1296,6 +1371,8 @@ version = "0.4.0" description = "Consume Server-Sent Event (SSE) messages with HTTPX." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"proxy\"" files = [ {file = "httpx-sse-0.4.0.tar.gz", hash = "sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721"}, {file = "httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f"}, @@ -1307,6 +1384,7 @@ version = "0.30.2" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" optional = false python-versions = ">=3.8.0" +groups = ["main"] files = [ {file = "huggingface_hub-0.30.2-py3-none-any.whl", hash = "sha256:68ff05969927058cfa41df4f2155d4bb48f5f54f719dd0390103eefa9b191e28"}, {file = "huggingface_hub-0.30.2.tar.gz", hash = "sha256:9a7897c5b6fd9dad3168a794a8998d6378210f5b9688d0dfc180b1a228dc2466"}, @@ -1342,6 +1420,8 @@ version = "10.0" description = "Human friendly output for text interfaces using Python" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"}, {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"}, @@ -1356,6 +1436,7 @@ version = "0.15.0" description = "A ASGI Server based on Hyper libraries and inspired by Gunicorn" optional = false python-versions = ">=3.7" +groups = ["proxy-dev"] files = [ {file = "hypercorn-0.15.0-py3-none-any.whl", hash = "sha256:5008944999612fd188d7a1ca02e89d20065642b89503020ac392dfed11840730"}, {file = "hypercorn-0.15.0.tar.gz", hash = "sha256:d517f68d5dc7afa9a9d50ecefb0f769f466ebe8c1c18d2c2f447a24e763c9a63"}, @@ -1373,7 +1454,7 @@ wsproto = ">=0.14.0" docs = ["pydata_sphinx_theme", "sphinxcontrib_mermaid"] h3 = ["aioquic (>=0.9.0,<1.0)"] trio = ["exceptiongroup (>=1.1.0)", "trio (>=0.22.0)"] -uvloop = ["uvloop"] +uvloop = ["uvloop ; platform_system != \"Windows\""] [[package]] name = "hyperframe" @@ -1381,6 +1462,7 @@ version = "6.0.1" description = "HTTP/2 framing layer for Python" optional = false python-versions = ">=3.6.1" +groups = ["proxy-dev"] files = [ {file = "hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15"}, {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, @@ -1392,6 +1474,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -1406,6 +1489,7 @@ version = "7.1.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, @@ -1417,7 +1501,7 @@ zipp = ">=0.5" [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "importlib-resources" @@ -1425,6 +1509,8 @@ version = "6.4.5" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.9\"" files = [ {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, @@ -1434,7 +1520,7 @@ files = [ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] @@ -1447,6 +1533,7 @@ version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, @@ -1458,6 +1545,8 @@ version = "0.7.2" description = "An ISO 8601 date/time/duration parser and formatter" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15"}, {file = "isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6"}, @@ -1469,6 +1558,7 @@ version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["main", "proxy-dev"] files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, @@ -1486,6 +1576,7 @@ version = "0.9.0" description = "Fast iterable JSON parser." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "jiter-0.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:816ec9b60fdfd1fec87da1d7ed46c66c44ffec37ab2ef7de5b147b2fce3fd5ad"}, {file = "jiter-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b1d3086f8a3ee0194ecf2008cf81286a5c3e540d977fa038ff23576c023c0ea"}, @@ -1571,6 +1662,8 @@ version = "1.0.1" description = "JSON Matching Expressions" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, @@ -1582,6 +1675,7 @@ version = "4.23.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, @@ -1605,6 +1699,7 @@ version = "2023.12.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, @@ -1616,13 +1711,14 @@ referencing = ">=0.31.0" [[package]] name = "litellm-proxy-extras" -version = "0.1.14" +version = "0.1.15" description = "Additional files for the LiteLLM Proxy. Reduces the size of the main litellm package." optional = true python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ - {file = "litellm_proxy_extras-0.1.14-py3-none-any.whl", hash = "sha256:f8439b89893c58920f776c60d5efaf3f9ceb87454bc42d32217542104acba826"}, - {file = "litellm_proxy_extras-0.1.14.tar.gz", hash = "sha256:b0908d3e4a388d74f754a40d1e7c4fe148941e2abcf78a524a5016e7e5ca2331"}, + {file = "litellm_proxy_extras-0.1.15.tar.gz", hash = "sha256:0e9b9074023eea8954183746f196d4a62f5d9fda2838fac3cb94d6ee1899a308"}, ] [[package]] @@ -1631,6 +1727,7 @@ version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" +groups = ["main", "proxy-dev"] files = [ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, @@ -1700,6 +1797,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -1711,6 +1809,8 @@ version = "1.5.0" description = "Model Context Protocol SDK" optional = true python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"proxy\"" files = [ {file = "mcp-1.5.0-py3-none-any.whl", hash = "sha256:51c3f35ce93cb702f7513c12406bbea9665ef75a08db909200b07da9db641527"}, {file = "mcp-1.5.0.tar.gz", hash = "sha256:5b2766c05e68e01a2034875e250139839498c61792163a7b221fc170c12f5aa9"}, @@ -1737,6 +1837,8 @@ version = "0.4.1" description = "" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "ml_dtypes-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1fe8b5b5e70cd67211db94b05cfd58dace592f24489b038dc6f9fe347d2e07d5"}, {file = "ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c09a6d11d8475c2a9fd2bc0695628aec105f97cab3b3a3fb7c9660348ff7d24"}, @@ -1759,10 +1861,10 @@ files = [ [package.dependencies] numpy = [ - {version = ">1.20", markers = "python_version < \"3.10\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\""}, + {version = ">1.20"}, + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, - {version = ">=1.21.2", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, ] [package.extras] @@ -1774,6 +1876,8 @@ version = "1.32.3" description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect." optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "msal-1.32.3-py3-none-any.whl", hash = "sha256:b2798db57760b1961b142f027ffb7c8169536bf77316e99a0df5c4aaebb11569"}, {file = "msal-1.32.3.tar.gz", hash = "sha256:5eea038689c78a5a70ca8ecbe1245458b55a857bd096efb6989c69ba15985d35"}, @@ -1785,7 +1889,7 @@ PyJWT = {version = ">=1.0.0,<3", extras = ["crypto"]} requests = ">=2.0.0,<3" [package.extras] -broker = ["pymsalruntime (>=0.14,<0.18)", "pymsalruntime (>=0.17,<0.18)"] +broker = ["pymsalruntime (>=0.14,<0.18) ; python_version >= \"3.6\" and platform_system == \"Windows\"", "pymsalruntime (>=0.17,<0.18) ; python_version >= \"3.8\" and platform_system == \"Darwin\""] [[package]] name = "msal-extensions" @@ -1793,6 +1897,8 @@ version = "1.3.0" description = "Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS and Linux. Concurrent data access will be coordinated by a file lock mechanism." optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "msal_extensions-1.3.0-py3-none-any.whl", hash = "sha256:105328ddcbdd342016c9949d8f89e3917554740c8ab26669c0fa0e069e730a0e"}, {file = "msal_extensions-1.3.0.tar.gz", hash = "sha256:96918996642b38c78cd59b55efa0f06fd1373c90e0949be8615697c048fba62c"}, @@ -1810,6 +1916,7 @@ version = "6.1.0" description = "multidict implementation" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, @@ -1914,6 +2021,7 @@ version = "1.14.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb"}, {file = "mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0"}, @@ -1973,6 +2081,7 @@ version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, @@ -1984,6 +2093,7 @@ version = "1.9.1" description = "Node.js virtual environment builder" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "proxy-dev"] files = [ {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, @@ -1995,6 +2105,8 @@ version = "1.26.4" description = "Fundamental package for array computing in Python" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.12\"" files = [ {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, @@ -2040,6 +2152,8 @@ version = "2.2.5" description = "Fundamental package for array computing in Python" optional = true python-versions = ">=3.10" +groups = ["main"] +markers = "python_version < \"3.14\" and extra == \"extra-proxy\" and python_version >= \"3.12\"" files = [ {file = "numpy-2.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f4a922da1729f4c40932b2af4fe84909c7a6e167e6e99f71838ce3a29f3fe26"}, {file = "numpy-2.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6f91524d31b34f4a5fee24f5bc16dcd1491b668798b6d85585d836c1e633a6a"}, @@ -2104,6 +2218,8 @@ version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, @@ -2120,6 +2236,7 @@ version = "1.75.0" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "openai-1.75.0-py3-none-any.whl", hash = "sha256:fe6f932d2ded3b429ff67cc9ad118c71327db32eb9d32dd723de3acfca337125"}, {file = "openai-1.75.0.tar.gz", hash = "sha256:fb3ea907efbdb1bcfd0c44507ad9c961afd7dce3147292b54505ecfd17be8fd1"}, @@ -2146,6 +2263,7 @@ version = "1.25.0" description = "OpenTelemetry Python API" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_api-1.25.0-py3-none-any.whl", hash = "sha256:757fa1aa020a0f8fa139f8959e53dec2051cc26b832e76fa839a6d76ecefd737"}, {file = "opentelemetry_api-1.25.0.tar.gz", hash = "sha256:77c4985f62f2614e42ce77ee4c9da5fa5f0bc1e1821085e9a47533a9323ae869"}, @@ -2161,6 +2279,7 @@ version = "1.25.0" description = "OpenTelemetry Collector Exporters" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_exporter_otlp-1.25.0-py3-none-any.whl", hash = "sha256:d67a831757014a3bc3174e4cd629ae1493b7ba8d189e8a007003cacb9f1a6b60"}, {file = "opentelemetry_exporter_otlp-1.25.0.tar.gz", hash = "sha256:ce03199c1680a845f82e12c0a6a8f61036048c07ec7a0bd943142aca8fa6ced0"}, @@ -2176,6 +2295,7 @@ version = "1.25.0" description = "OpenTelemetry Protobuf encoding" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_exporter_otlp_proto_common-1.25.0-py3-none-any.whl", hash = "sha256:15637b7d580c2675f70246563363775b4e6de947871e01d0f4e3881d1848d693"}, {file = "opentelemetry_exporter_otlp_proto_common-1.25.0.tar.gz", hash = "sha256:c93f4e30da4eee02bacd1e004eb82ce4da143a2f8e15b987a9f603e0a85407d3"}, @@ -2190,6 +2310,7 @@ version = "1.25.0" description = "OpenTelemetry Collector Protobuf over gRPC Exporter" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_exporter_otlp_proto_grpc-1.25.0-py3-none-any.whl", hash = "sha256:3131028f0c0a155a64c430ca600fd658e8e37043cb13209f0109db5c1a3e4eb4"}, {file = "opentelemetry_exporter_otlp_proto_grpc-1.25.0.tar.gz", hash = "sha256:c0b1661415acec5af87625587efa1ccab68b873745ca0ee96b69bb1042087eac"}, @@ -2210,6 +2331,7 @@ version = "1.25.0" description = "OpenTelemetry Collector Protobuf over HTTP Exporter" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_exporter_otlp_proto_http-1.25.0-py3-none-any.whl", hash = "sha256:2eca686ee11b27acd28198b3ea5e5863a53d1266b91cda47c839d95d5e0541a6"}, {file = "opentelemetry_exporter_otlp_proto_http-1.25.0.tar.gz", hash = "sha256:9f8723859e37c75183ea7afa73a3542f01d0fd274a5b97487ea24cb683d7d684"}, @@ -2230,6 +2352,7 @@ version = "1.25.0" description = "OpenTelemetry Python Proto" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_proto-1.25.0-py3-none-any.whl", hash = "sha256:f07e3341c78d835d9b86665903b199893befa5e98866f63d22b00d0b7ca4972f"}, {file = "opentelemetry_proto-1.25.0.tar.gz", hash = "sha256:35b6ef9dc4a9f7853ecc5006738ad40443701e52c26099e197895cbda8b815a3"}, @@ -2244,6 +2367,7 @@ version = "1.25.0" description = "OpenTelemetry Python SDK" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_sdk-1.25.0-py3-none-any.whl", hash = "sha256:d97ff7ec4b351692e9d5a15af570c693b8715ad78b8aafbec5c7100fe966b4c9"}, {file = "opentelemetry_sdk-1.25.0.tar.gz", hash = "sha256:ce7fc319c57707ef5bf8b74fb9f8ebdb8bfafbe11898410e0d2a761d08a98ec7"}, @@ -2260,6 +2384,7 @@ version = "0.46b0" description = "OpenTelemetry Semantic Conventions" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "opentelemetry_semantic_conventions-0.46b0-py3-none-any.whl", hash = "sha256:6daef4ef9fa51d51855d9f8e0ccd3a1bd59e0e545abe99ac6203804e36ab3e07"}, {file = "opentelemetry_semantic_conventions-0.46b0.tar.gz", hash = "sha256:fbc982ecbb6a6e90869b15c1673be90bd18c8a56ff1cffc0864e38e2edffaefa"}, @@ -2274,6 +2399,8 @@ version = "3.10.15" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, @@ -2362,6 +2489,7 @@ version = "25.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, @@ -2373,6 +2501,7 @@ version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, @@ -2384,6 +2513,8 @@ version = "1.3.10" description = "Resolve a name to an object." optional = false python-versions = ">=3.6" +groups = ["main"] +markers = "python_version < \"3.9\"" files = [ {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, @@ -2395,6 +2526,7 @@ version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, @@ -2411,6 +2543,7 @@ version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -2426,6 +2559,7 @@ version = "2.0.0" description = "A pure-Python implementation of the HTTP/2 priority tree" optional = false python-versions = ">=3.6.1" +groups = ["proxy-dev"] files = [ {file = "priority-2.0.0-py3-none-any.whl", hash = "sha256:6f8eefce5f3ad59baf2c080a664037bb4725cd0a790d53d59ab4059288faf6aa"}, {file = "priority-2.0.0.tar.gz", hash = "sha256:c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0"}, @@ -2437,6 +2571,7 @@ version = "0.11.0" description = "Prisma Client Python is an auto-generated and fully type-safe database client" optional = false python-versions = ">=3.7.0" +groups = ["main", "proxy-dev"] files = [ {file = "prisma-0.11.0-py3-none-any.whl", hash = "sha256:22bb869e59a2968b99f3483bb417717273ffbc569fd1e9ceed95e5614cbaf53a"}, {file = "prisma-0.11.0.tar.gz", hash = "sha256:3f2f2fd2361e1ec5ff655f2a04c7860c2f2a5bc4c91f78ca9c5c6349735bf693"}, @@ -2462,6 +2597,7 @@ version = "0.20.0" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" +groups = ["proxy-dev"] files = [ {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, @@ -2476,6 +2612,7 @@ version = "0.2.0" description = "Accelerated property cache" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c5869b8fd70b81835a6f187c5fdbe67917a04d7e52b6e7cc4e5fe39d55c39d58"}, {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:952e0d9d07609d9c5be361f33b0d6d650cd2bae393aabb11d9b719364521984b"}, @@ -2583,6 +2720,8 @@ version = "1.26.1" description = "Beautiful, Pythonic protocol buffers" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "proto_plus-1.26.1-py3-none-any.whl", hash = "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66"}, {file = "proto_plus-1.26.1.tar.gz", hash = "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012"}, @@ -2600,6 +2739,7 @@ version = "4.25.7" description = "" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "protobuf-4.25.7-cp310-abi3-win32.whl", hash = "sha256:dc582cf1a73a6b40aa8e7704389b8d8352da616bc8ed5c6cc614bdd0b5ce3f7a"}, {file = "protobuf-4.25.7-cp310-abi3-win_amd64.whl", hash = "sha256:cd873dbddb28460d1706ff4da2e7fac175f62f2a0bebc7b33141f7523c5a2399"}, @@ -2613,6 +2753,7 @@ files = [ {file = "protobuf-4.25.7-py3-none-any.whl", hash = "sha256:e9d969f5154eaeab41404def5dcf04e62162178f4b9de98b2d3c1c70f5f84810"}, {file = "protobuf-4.25.7.tar.gz", hash = "sha256:28f65ae8c14523cc2c76c1e91680958700d3eac69f45c96512c12c63d9a38807"}, ] +markers = {main = "extra == \"extra-proxy\""} [[package]] name = "pyasn1" @@ -2620,6 +2761,8 @@ version = "0.6.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, @@ -2631,6 +2774,8 @@ version = "0.4.2" description = "A collection of ASN.1-based protocols modules" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a"}, {file = "pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"}, @@ -2645,6 +2790,7 @@ version = "2.11.1" description = "Python style guide checker" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, @@ -2656,10 +2802,12 @@ version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] +markers = {main = "(extra == \"proxy\" or extra == \"extra-proxy\") and (platform_python_implementation != \"PyPy\" or extra == \"proxy\")", dev = "platform_python_implementation != \"PyPy\""} [[package]] name = "pydantic" @@ -2667,6 +2815,7 @@ version = "2.10.6" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" +groups = ["main", "proxy-dev"] files = [ {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, @@ -2680,7 +2829,7 @@ typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] [[package]] name = "pydantic-core" @@ -2688,6 +2837,7 @@ version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" +groups = ["main", "proxy-dev"] files = [ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, @@ -2800,6 +2950,8 @@ version = "2.9.1" description = "Settings management using Pydantic" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"proxy\"" files = [ {file = "pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef"}, {file = "pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268"}, @@ -2823,6 +2975,7 @@ version = "3.1.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pyflakes-3.1.0-py2.py3-none-any.whl", hash = "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774"}, {file = "pyflakes-3.1.0.tar.gz", hash = "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc"}, @@ -2834,6 +2987,8 @@ version = "2.9.0" description = "JSON Web Token implementation in Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"extra-proxy\" or extra == \"proxy\"" files = [ {file = "PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850"}, {file = "pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"}, @@ -2854,6 +3009,8 @@ version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"}, {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"}, @@ -2880,6 +3037,8 @@ version = "3.5.4" description = "A python implementation of GNU readline." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "python_version >= \"3.9\" and sys_platform == \"win32\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6"}, {file = "pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7"}, @@ -2894,6 +3053,7 @@ version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, @@ -2916,6 +3076,7 @@ version = "0.21.2" description = "Pytest support for asyncio" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest_asyncio-0.21.2-py3-none-any.whl", hash = "sha256:ab664c88bb7998f711d8039cacd4884da6430886ae8bbd4eded552ed2004f16b"}, {file = "pytest_asyncio-0.21.2.tar.gz", hash = "sha256:d67738fc232b94b326b9d060750beb16e0074210b98dd8b58a5239fa2a154f45"}, @@ -2934,6 +3095,7 @@ version = "3.14.0" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, @@ -2951,6 +3113,8 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -2965,6 +3129,7 @@ version = "1.0.1" description = "Read key-value pairs from a .env file and set them as environment variables" optional = false python-versions = ">=3.8" +groups = ["main", "proxy-dev"] files = [ {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, @@ -2979,6 +3144,8 @@ version = "0.0.18" description = "A streaming multipart parser for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "python_multipart-0.0.18-py3-none-any.whl", hash = "sha256:efe91480f485f6a361427a541db4796f9e1591afc0fb8e7a4ba06bfbc6708996"}, {file = "python_multipart-0.0.18.tar.gz", hash = "sha256:7a68db60c8bfb82e460637fa4750727b45af1d5e2ed215593f917f64694d34fe"}, @@ -2990,6 +3157,8 @@ version = "3.0.0" description = "Universally unique lexicographically sortable identifier" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "python_ulid-3.0.0-py3-none-any.whl", hash = "sha256:e4c4942ff50dbd79167ad01ac725ec58f924b4018025ce22c858bfcff99a5e31"}, {file = "python_ulid-3.0.0.tar.gz", hash = "sha256:e50296a47dc8209d28629a22fc81ca26c00982c78934bd7766377ba37ea49a9f"}, @@ -3004,6 +3173,7 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -3066,6 +3236,8 @@ version = "5.3.0" description = "Python client for Redis database and key-value store" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "python_version >= \"3.9\" and (extra == \"extra-proxy\" or extra == \"proxy\") and python_version < \"3.14\" or extra == \"proxy\"" files = [ {file = "redis-5.3.0-py3-none-any.whl", hash = "sha256:f1deeca1ea2ef25c1e4e46b07f4ea1275140526b1feea4c6459c0ec27a10ef83"}, {file = "redis-5.3.0.tar.gz", hash = "sha256:8d69d2dde11a12dc85d0dbf5c45577a5af048e2456f7077d87ad35c1c81c310e"}, @@ -3085,6 +3257,8 @@ version = "0.4.1" description = "Python client library and CLI for using Redis as a vector database" optional = true python-versions = "<3.14,>=3.9" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "redisvl-0.4.1-py3-none-any.whl", hash = "sha256:6db5d5bc95b1fe8032a1cdae74ce1c65bc7fe9054e5429b5d34d5a91d28bae5f"}, {file = "redisvl-0.4.1.tar.gz", hash = "sha256:fd6a36426ba94792c0efca20915c31232d4ee3cc58eb23794a62c142696401e6"}, @@ -3109,7 +3283,7 @@ bedrock = ["boto3[bedrock] (>=1.36.0,<2.0.0)"] cohere = ["cohere (>=4.44)"] mistralai = ["mistralai (>=1.0.0)"] openai = ["openai (>=1.13.0,<2.0.0)"] -sentence-transformers = ["scipy (<1.15)", "scipy (>=1.15,<2.0)", "sentence-transformers (>=3.4.0,<4.0.0)"] +sentence-transformers = ["scipy (<1.15) ; python_version < \"3.10\"", "scipy (>=1.15,<2.0) ; python_version >= \"3.10\"", "sentence-transformers (>=3.4.0,<4.0.0)"] vertexai = ["google-cloud-aiplatform (>=1.26,<2.0)", "protobuf (>=5.29.1,<6.0.0)"] voyageai = ["voyageai (>=0.2.2)"] @@ -3119,6 +3293,7 @@ version = "0.35.1" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, @@ -3134,6 +3309,7 @@ version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, @@ -3237,6 +3413,7 @@ version = "2.31.0" description = "Python HTTP for Humans." optional = false python-versions = ">=3.7" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, @@ -3258,6 +3435,7 @@ version = "1.12.1" description = "Mock out responses from the requests package" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, @@ -3275,6 +3453,8 @@ version = "0.8.0" description = "Resend Python SDK" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "resend-0.8.0-py2.py3-none-any.whl", hash = "sha256:adc1515dadf4f4fc6b90db55a237f0f37fc56fd74287a986519a8a187fdb661d"}, {file = "resend-0.8.0.tar.gz", hash = "sha256:94142394701724dbcfcd8f760f675c662a1025013e741dd7cc773ca885526257"}, @@ -3289,6 +3469,7 @@ version = "0.25.7" description = "A utility library for mocking out the `requests` Python library." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "responses-0.25.7-py3-none-any.whl", hash = "sha256:92ca17416c90fe6b35921f52179bff29332076bb32694c0df02dcac2c6bc043c"}, {file = "responses-0.25.7.tar.gz", hash = "sha256:8ebae11405d7a5df79ab6fd54277f6f2bc29b2d002d0dd2d5c632594d1ddcedb"}, @@ -3300,7 +3481,7 @@ requests = ">=2.30.0,<3.0" urllib3 = ">=1.25.10,<3.0" [package.extras] -tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli", "tomli-w", "types-PyYAML", "types-requests"] +tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli ; python_version < \"3.11\"", "tomli-w", "types-PyYAML", "types-requests"] [[package]] name = "respx" @@ -3308,6 +3489,7 @@ version = "0.22.0" description = "A utility for mocking out the Python HTTPX and HTTP Core libraries." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "respx-0.22.0-py2.py3-none-any.whl", hash = "sha256:631128d4c9aba15e56903fb5f66fb1eff412ce28dd387ca3a81339e52dbd3ad0"}, {file = "respx-0.22.0.tar.gz", hash = "sha256:3c8924caa2a50bd71aefc07aa812f2466ff489f1848c96e954a5362d17095d91"}, @@ -3322,6 +3504,7 @@ version = "0.20.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "rpds_py-0.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a649dfd735fff086e8a9d0503a9f0c7d01b7912a333c7ae77e1515c08c146dad"}, {file = "rpds_py-0.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f16bc1334853e91ddaaa1217045dd7be166170beec337576818461268a3de67f"}, @@ -3434,6 +3617,8 @@ version = "2.3.2" description = "RQ is a simple, lightweight, library for creating background jobs, and processing them." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "rq-2.3.2-py3-none-any.whl", hash = "sha256:bf4dc622a7b9d5f7d4a39444f26d89ce6de8a1d6db61b21060612114dbf8d5ff"}, {file = "rq-2.3.2.tar.gz", hash = "sha256:5bd212992724428ec1689736abde783d245e7856bca39d89845884f5d580f5f1"}, @@ -3449,6 +3634,8 @@ version = "4.9.1" description = "Pure-Python RSA implementation" optional = true python-versions = "<4,>=3.6" +groups = ["main"] +markers = "extra == \"extra-proxy\"" files = [ {file = "rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762"}, {file = "rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75"}, @@ -3463,6 +3650,7 @@ version = "0.1.15" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5fe8d54df166ecc24106db7dd6a68d44852d14eb0729ea4672bb4d96c320b7df"}, {file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6f0bfbb53c4b4de117ac4d6ddfd33aa5fc31beeaa21d23c45c6dd249faf9126f"}, @@ -3489,6 +3677,8 @@ version = "0.10.4" description = "An Amazon S3 Transfer Manager" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, @@ -3506,6 +3696,8 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "extra == \"extra-proxy\" or extra == \"proxy\"" files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -3517,6 +3709,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -3528,6 +3721,8 @@ version = "2.1.3" description = "SSE plugin for Starlette" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"proxy\"" files = [ {file = "sse_starlette-2.1.3-py3-none-any.whl", hash = "sha256:8ec846438b4665b9e8c560fcdea6bc8081a3abf7942faa95e5a744999d219772"}, {file = "sse_starlette-2.1.3.tar.gz", hash = "sha256:9cd27eb35319e1414e3d2558ee7414487f9529ce3b3cf9b21434fd110e017169"}, @@ -3547,6 +3742,8 @@ version = "0.44.0" description = "The little ASGI library that shines." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "starlette-0.44.0-py3-none-any.whl", hash = "sha256:19edeb75844c16dcd4f9dd72f22f9108c1539f3fc9c4c88885654fef64f85aea"}, {file = "starlette-0.44.0.tar.gz", hash = "sha256:e35166950a3ccccc701962fe0711db0bc14f2ecd37c6f9fe5e3eae0cbaea8715"}, @@ -3565,6 +3762,8 @@ version = "0.9.0" description = "Pretty-print tabular data" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, @@ -3579,6 +3778,8 @@ version = "0.2.2" description = "backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout" optional = false python-versions = "*" +groups = ["proxy-dev"] +markers = "python_version <= \"3.10\"" files = [ {file = "taskgroup-0.2.2-py2.py3-none-any.whl", hash = "sha256:e2c53121609f4ae97303e9ea1524304b4de6faf9eb2c9280c7f87976479a52fb"}, {file = "taskgroup-0.2.2.tar.gz", hash = "sha256:078483ac3e78f2e3f973e2edbf6941374fbea81b9c5d0a96f51d297717f4752d"}, @@ -3594,6 +3795,8 @@ version = "9.1.2" description = "Retry code until it succeeds" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.9\" and extra == \"extra-proxy\" and python_version < \"3.14\"" files = [ {file = "tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"}, {file = "tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb"}, @@ -3609,6 +3812,7 @@ version = "0.7.0" description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "tiktoken-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485f3cc6aba7c6b6ce388ba634fbba656d9ee27f766216f45146beb4ac18b25f"}, {file = "tiktoken-0.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e54be9a2cd2f6d6ffa3517b064983fb695c9a9d8aa7d574d1ef3c3f931a99225"}, @@ -3661,6 +3865,7 @@ version = "0.21.0" description = "" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tokenizers-0.21.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3c4c93eae637e7d2aaae3d376f06085164e1660f89304c0ab2b1d08a406636b2"}, {file = "tokenizers-0.21.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:f53ea537c925422a2e0e92a24cce96f6bc5046bbef24a1652a5edc8ba975f62e"}, @@ -3693,6 +3898,8 @@ version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] +markers = "python_version <= \"3.10\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -3734,6 +3941,7 @@ version = "0.13.2" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" +groups = ["main", "proxy-dev"] files = [ {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, @@ -3745,6 +3953,7 @@ version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, @@ -3766,6 +3975,7 @@ version = "1.16.0.20241221" description = "Typing stubs for cffi" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types_cffi-1.16.0.20241221-py3-none-any.whl", hash = "sha256:e5b76b4211d7a9185f6ab8d06a106d56c7eb80af7cdb8bfcb4186ade10fb112f"}, {file = "types_cffi-1.16.0.20241221.tar.gz", hash = "sha256:1c96649618f4b6145f58231acb976e0b448be6b847f7ab733dabe62dfbff6591"}, @@ -3780,6 +3990,7 @@ version = "24.1.0.20240722" description = "Typing stubs for pyOpenSSL" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types-pyOpenSSL-24.1.0.20240722.tar.gz", hash = "sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39"}, {file = "types_pyOpenSSL-24.1.0.20240722-py3-none-any.whl", hash = "sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54"}, @@ -3795,6 +4006,7 @@ version = "6.0.12.20241230" description = "Typing stubs for PyYAML" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types_PyYAML-6.0.12.20241230-py3-none-any.whl", hash = "sha256:fa4d32565219b68e6dee5f67534c722e53c00d1cfc09c435ef04d7353e1e96e6"}, {file = "types_pyyaml-6.0.12.20241230.tar.gz", hash = "sha256:7f07622dbd34bb9c8b264fe860a17e0efcad00d50b5f27e93984909d9363498c"}, @@ -3806,6 +4018,7 @@ version = "4.6.0.20241004" description = "Typing stubs for redis" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types-redis-4.6.0.20241004.tar.gz", hash = "sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e"}, {file = "types_redis-4.6.0.20241004-py3-none-any.whl", hash = "sha256:ef5da68cb827e5f606c8f9c0b49eeee4c2669d6d97122f301d3a55dc6a63f6ed"}, @@ -3821,6 +4034,8 @@ version = "2.31.0.6" description = "Typing stubs for requests" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.10\"" files = [ {file = "types-requests-2.31.0.6.tar.gz", hash = "sha256:cd74ce3b53c461f1228a9b783929ac73a666658f223e28ed29753771477b3bd0"}, {file = "types_requests-2.31.0.6-py3-none-any.whl", hash = "sha256:a2db9cb228a81da8348b49ad6db3f5519452dd20a9c1e1a868c83c5fe88fd1a9"}, @@ -3835,6 +4050,8 @@ version = "2.32.0.20241016" description = "Typing stubs for requests" optional = false python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version >= \"3.10\"" files = [ {file = "types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95"}, {file = "types_requests-2.32.0.20241016-py3-none-any.whl", hash = "sha256:4195d62d6d3e043a4eaaf08ff8a62184584d2e8684e9d2aa178c7915a7da3747"}, @@ -3849,6 +4066,7 @@ version = "75.8.0.20250110" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types_setuptools-75.8.0.20250110-py3-none-any.whl", hash = "sha256:a9f12980bbf9bcdc23ecd80755789085bad6bfce4060c2275bc2b4ca9f2bc480"}, {file = "types_setuptools-75.8.0.20250110.tar.gz", hash = "sha256:96f7ec8bbd6e0a54ea180d66ad68ad7a1d7954e7281a710ea2de75e355545271"}, @@ -3860,6 +4078,8 @@ version = "1.26.25.14" description = "Typing stubs for urllib3" optional = false python-versions = "*" +groups = ["dev"] +markers = "python_version < \"3.10\"" files = [ {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, @@ -3871,6 +4091,7 @@ version = "4.13.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, @@ -3882,6 +4103,8 @@ version = "0.4.0" description = "Runtime typing introspection tools" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"proxy\"" files = [ {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, @@ -3896,6 +4119,8 @@ version = "2025.2" description = "Provider of IANA time zone data" optional = true python-versions = ">=2" +groups = ["main"] +markers = "extra == \"proxy\" and platform_system == \"Windows\"" files = [ {file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}, {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, @@ -3907,6 +4132,8 @@ version = "5.2" description = "tzinfo object for the local timezone" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, @@ -3925,14 +4152,16 @@ version = "1.26.20" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["main", "dev", "proxy-dev"] +markers = "python_version < \"3.10\"" files = [ {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"}, {file = "urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"}, ] [package.extras] -brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ; python_version >= \"3\" and platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name == \"nt\" and python_version < \"3\""] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -3941,13 +4170,15 @@ version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] +markers = "python_version >= \"3.10\"" files = [ {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -3958,6 +4189,8 @@ version = "0.29.0" description = "The lightning-fast ASGI server." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "uvicorn-0.29.0-py3-none-any.whl", hash = "sha256:2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de"}, {file = "uvicorn-0.29.0.tar.gz", hash = "sha256:6a69214c0b6a087462412670b3ef21224fa48cae0e452b5883e8e8bdfdd11dd0"}, @@ -3969,7 +4202,7 @@ h11 = ">=0.8" typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} [package.extras] -standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] +standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"] [[package]] name = "uvloop" @@ -3977,6 +4210,8 @@ version = "0.21.0" description = "Fast implementation of asyncio event loop on top of libuv" optional = true python-versions = ">=3.8.0" +groups = ["main"] +markers = "sys_platform != \"win32\" and extra == \"proxy\"" files = [ {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, @@ -4028,6 +4263,8 @@ version = "13.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"proxy\"" files = [ {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, @@ -4123,6 +4360,7 @@ version = "1.17.2" description = "Module for decorators, wrappers and monkey patching." optional = false python-versions = ">=3.8" +groups = ["dev", "proxy-dev"] files = [ {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, @@ -4211,6 +4449,7 @@ version = "1.2.0" description = "WebSockets state-machine based protocol implementation" optional = false python-versions = ">=3.7.0" +groups = ["proxy-dev"] files = [ {file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"}, {file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"}, @@ -4225,6 +4464,7 @@ version = "1.15.2" description = "Yet another URL library" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e4ee8b8639070ff246ad3649294336b06db37a94bdea0d09ea491603e0be73b8"}, {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7cf963a357c5f00cb55b1955df8bbe68d2f2f65de065160a1c26b85a1e44172"}, @@ -4337,17 +4577,18 @@ version = "3.20.2" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "proxy-dev"] files = [ {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] [extras] @@ -4355,6 +4596,6 @@ extra-proxy = ["azure-identity", "azure-keyvault-secrets", "google-cloud-kms", " proxy = ["PyJWT", "apscheduler", "backoff", "boto3", "cryptography", "fastapi", "fastapi-sso", "gunicorn", "litellm-proxy-extras", "mcp", "orjson", "pynacl", "python-multipart", "pyyaml", "rq", "uvicorn", "uvloop", "websockets"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = ">=3.8.1,<4.0, !=3.9.7" -content-hash = "7d39864f863afad7660cfdf12104b56edcd453f3d4493315c50fe2d00ee8b6aa" +content-hash = "4af55e1ec83871e3ff02ff6cf902e66128860dac7fe88bd57e18d7a4a99f790c" diff --git a/pyproject.toml b/pyproject.toml index ceb5fe2259..99f16cebbf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,7 +55,7 @@ websockets = {version = "^13.1.0", optional = true} boto3 = {version = "1.34.34", optional = true} redisvl = {version = "^0.4.1", optional = true, markers = "python_version >= '3.9' and python_version < '3.14'"} mcp = {version = "1.5.0", optional = true, python = ">=3.10"} -litellm-proxy-extras = {version = "0.1.14", optional = true} +litellm-proxy-extras = {version = "0.1.15", optional = true} [tool.poetry.extras] proxy = [ diff --git a/requirements.txt b/requirements.txt index 95dd0fd84d..56a2d6006b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -37,7 +37,7 @@ sentry_sdk==2.21.0 # for sentry error handling detect-secrets==1.5.0 # Enterprise - secret detection / masking in LLM requests cryptography==43.0.1 tzdata==2025.1 # IANA time zone database -litellm-proxy-extras==0.1.14 # for proxy extras - e.g. prisma migrations +litellm-proxy-extras==0.1.15 # for proxy extras - e.g. prisma migrations ### LITELLM PACKAGE DEPENDENCIES python-dotenv==1.0.0 # for env tiktoken==0.8.0 # for calculating usage