mirror of
https://github.com/tiennm99/litellm.git
synced 2026-07-10 13:03:30 +00:00
[Infra] Fix pyproject.toml pins for Poetry Python 3.9 compatibility
Pin pyproject.toml deps from PyPI resolution of `pip install litellm[proxy]==1.83.0` instead of Docker freeze versions. Docker builds (requirements.txt) and PyPI installs (pyproject.toml) are independent dependency paths. Some packages pinned to 3.9-compatible versions where latest requires >=3.10. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Generated
+890
-775
File diff suppressed because it is too large
Load Diff
+42
-40
@@ -18,58 +18,60 @@ Repository = "https://github.com/BerriAI/litellm"
|
||||
documentation = "https://docs.litellm.ai"
|
||||
Documentation = "https://docs.litellm.ai"
|
||||
|
||||
# Dependencies pinned from `pip install litellm[proxy]==1.83.0` PyPI resolution.
|
||||
# Docker builds use requirements.txt (different pins). These two paths are independent.
|
||||
[tool.poetry.dependencies]
|
||||
python = ">=3.9,<4.0"
|
||||
fastuuid = "0.13.5"
|
||||
fastuuid = "0.14.0"
|
||||
httpx = "0.28.1"
|
||||
openai = "2.24.0"
|
||||
openai = "2.30.0"
|
||||
python-dotenv = "1.0.1"
|
||||
tiktoken = "0.8.0"
|
||||
importlib-metadata = "6.8.0"
|
||||
tokenizers = "0.20.2"
|
||||
click = "8.1.7"
|
||||
tiktoken = "0.12.0"
|
||||
importlib-metadata = "8.5.0"
|
||||
tokenizers = "0.22.2"
|
||||
click = "8.1.8"
|
||||
jinja2 = "3.1.6"
|
||||
aiohttp = "3.13.3"
|
||||
aiohttp = "3.13.5"
|
||||
pydantic = "2.12.5"
|
||||
jsonschema = "4.26.0"
|
||||
numpydoc = {version = "1.10.0", optional = true} # used in utils.py — not in Docker
|
||||
jsonschema = "4.23.0"
|
||||
numpydoc = {version = "1.8.0", optional = true} # not in Docker or PyPI proxy extra
|
||||
|
||||
uvicorn = {version = "0.32.1", optional = true} # Docker uses 0.31.1 (requirements.txt); pyproject keeps main's minimum
|
||||
uvicorn = {version = "0.33.0", optional = true}
|
||||
uvloop = {version = "0.21.0", optional = true, markers="sys_platform != 'win32'"}
|
||||
gunicorn = {version = "23.0.0", optional = true}
|
||||
fastapi = {version = "0.120.1", optional = true}
|
||||
fastapi = {version = "0.124.4", optional = true}
|
||||
backoff = {version = "2.2.1", optional = true}
|
||||
pyyaml = {version = "6.0.2", optional = true}
|
||||
rq = {version = "2.7.0", optional = true} # not in Docker
|
||||
orjson = {version = "3.11.7", optional = true}
|
||||
apscheduler = {version = "3.10.4", optional = true}
|
||||
fastapi-sso = { version = "0.19.0", optional = true }
|
||||
PyJWT = { version = "2.12.0", optional = true, python = ">=3.9" }
|
||||
python-multipart = { version = "0.0.22", optional = true}
|
||||
cryptography = {version = "46.0.5", optional = true}
|
||||
pyyaml = {version = "6.0.3", optional = true}
|
||||
rq = {version = "2.7.0", optional = true}
|
||||
orjson = {version = "3.10.15", optional = true}
|
||||
apscheduler = {version = "3.11.2", optional = true}
|
||||
fastapi-sso = { version = "0.16.0", optional = true }
|
||||
PyJWT = { version = "2.12.1", optional = true, python = ">=3.9" }
|
||||
python-multipart = { version = "0.0.20", optional = true}
|
||||
cryptography = {version = "43.0.3", optional = true} # Docker uses 46.0.5; pyproject uses 43.0.3 for Poetry Python 3.9.0/3.9.1 compat
|
||||
prisma = {version = "0.11.0", optional = true}
|
||||
azure-identity = {version = "1.16.1", optional = true, python = ">=3.9"}
|
||||
azure-identity = {version = "1.25.3", optional = true, python = ">=3.9"}
|
||||
azure-keyvault-secrets = {version = "4.10.0", optional = true}
|
||||
azure-storage-blob = {version = "12.28.0", optional = true}
|
||||
google-cloud-kms = {version = "2.24.2", optional = true} # not in Docker
|
||||
google-cloud-kms = {version = "2.24.2", optional = true} # not in PyPI proxy extra
|
||||
google-cloud-iam = {version = "2.19.1", optional = true}
|
||||
google-cloud-aiplatform = {version = "1.133.0", optional = true}
|
||||
resend = {version = "2.23.0", optional = true} # not in Docker
|
||||
resend = {version = "2.23.0", optional = true} # not in PyPI proxy extra
|
||||
pynacl = {version = "1.6.2", optional = true}
|
||||
websockets = {version = "15.0.1", optional = true}
|
||||
boto3 = { version = "1.40.76", optional = true } # Docker uses 1.40.53 (requirements.txt); pyproject keeps main's minimum
|
||||
boto3 = { version = "1.42.80", optional = true }
|
||||
redisvl = {version = "0.4.1", optional = true, markers = "python_version >= '3.9' and python_version < '3.14'"}
|
||||
mcp = {version = "1.25.0", optional = true, python = ">=3.10"}
|
||||
mcp = {version = "1.26.0", optional = true, python = ">=3.10"}
|
||||
a2a-sdk = {version = "0.3.25", optional = true, python = ">=3.10"}
|
||||
litellm-proxy-extras = {version = "0.4.62", optional = true}
|
||||
rich = {version = "13.7.1", optional = true}
|
||||
rich = {version = "13.9.4", optional = true}
|
||||
litellm-enterprise = {version = "0.1.35", optional = true}
|
||||
diskcache = {version = "5.6.3", optional = true} # not in Docker
|
||||
polars = {version = "1.31.0", optional = true, python = ">=3.10"}
|
||||
semantic-router = {version = "0.1.12", optional = true, python = ">=3.9,<3.14"} # Docker uses 0.1.11 (install_auto_router.sh); pyproject keeps main's minimum
|
||||
mlflow = {version = "3.9.0", optional = true, python = ">=3.10"} # not in Docker
|
||||
diskcache = {version = "5.6.3", optional = true}
|
||||
polars = {version = "1.39.3", optional = true, python = ">=3.10"}
|
||||
semantic-router = {version = "0.1.12", optional = true, python = ">=3.9,<3.14"}
|
||||
mlflow = {version = "3.9.0", optional = true, python = ">=3.10"} # not in PyPI proxy extra
|
||||
soundfile = {version = "0.12.1", optional = true}
|
||||
pyroscope-io = {version = "0.8.16", optional = true, markers = "sys_platform != 'win32'"} # not in Docker
|
||||
pyroscope-io = {version = "0.8.16", optional = true, markers = "sys_platform != 'win32'"}
|
||||
# grpcio: pinned to 1.80.0 (past reconnect bug #38290 in 1.68.x, has Python 3.14 wheels)
|
||||
grpcio = [
|
||||
{version = "1.80.0", python = "<3.14", optional = true},
|
||||
@@ -140,21 +142,21 @@ litellm = 'litellm:run_server'
|
||||
litellm-proxy = 'litellm.proxy.client.cli:cli'
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
diff-cover = "10.2.0"
|
||||
diff-cover = "9.7.2"
|
||||
flake8 = "7.3.0"
|
||||
black = "26.1.0"
|
||||
black = "24.10.0"
|
||||
mypy = "1.19.0"
|
||||
pytest = "9.0.2"
|
||||
pytest = "8.3.5"
|
||||
pytest-mock = "3.15.1"
|
||||
pytest-asyncio = "1.3.0"
|
||||
pytest-postgresql = "8.0.0"
|
||||
pytest-asyncio = "1.2.0"
|
||||
pytest-postgresql = "7.0.2"
|
||||
pytest-xdist = "3.8.0"
|
||||
requests-mock = "1.12.1"
|
||||
responses = "0.26.0"
|
||||
respx = "0.22.0"
|
||||
ruff = "0.15.3"
|
||||
types-requests = "2.32.4.20260107"
|
||||
types-setuptools = "82.0.0.20260210"
|
||||
types-requests = {version = "2.32.4.20260107", python = ">=3.10"}
|
||||
types-setuptools = "75.8.0.20250225"
|
||||
types-redis = "4.6.0.20241004"
|
||||
types-PyYAML = "6.0.12.20250915"
|
||||
opentelemetry-api = "1.28.0"
|
||||
@@ -163,17 +165,17 @@ opentelemetry-exporter-otlp = "1.28.0"
|
||||
langfuse = "2.59.7"
|
||||
fastapi-offline = "1.7.6"
|
||||
fakeredis = "2.34.1"
|
||||
pytest-rerunfailures = "16.1"
|
||||
pytest-rerunfailures = "15.1"
|
||||
parameterized = "0.9.0"
|
||||
|
||||
[tool.poetry.group.proxy-dev.dependencies]
|
||||
prisma = "0.11.0"
|
||||
hypercorn = "0.18.0"
|
||||
hypercorn = "0.17.3"
|
||||
prometheus-client = "0.20.0"
|
||||
opentelemetry-api = "1.28.0"
|
||||
opentelemetry-sdk = "1.28.0"
|
||||
opentelemetry-exporter-otlp = "1.28.0"
|
||||
azure-identity = {version = "1.16.1", python = ">=3.9"}
|
||||
azure-identity = {version = "1.25.3", python = ">=3.9"}
|
||||
a2a-sdk = {version = "0.3.25", python = ">=3.10"}
|
||||
|
||||
[build-system]
|
||||
|
||||
Reference in New Issue
Block a user