mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-29 01:42:19 +00:00
chore: sync pyproject.toml with main (uv migration)
This commit is contained in:
parent
377fa9baef
commit
356524977a
1 changed files with 215 additions and 158 deletions
373
pyproject.toml
373
pyproject.toml
|
|
@ -1,189 +1,246 @@
|
|||
[tool.poetry]
|
||||
[project]
|
||||
name = "litellm"
|
||||
version = "1.83.7"
|
||||
version = "1.83.8"
|
||||
description = "Library to easily interface with LLM API providers"
|
||||
authors = ["BerriAI"]
|
||||
license = "MIT"
|
||||
readme = "README.md"
|
||||
packages = [
|
||||
{ include = "litellm" },
|
||||
{ include = "litellm/py.typed"},
|
||||
requires-python = ">=3.9, <3.14"
|
||||
license = "MIT"
|
||||
license-files = ["LICENSE"]
|
||||
authors = [
|
||||
{ name = "BerriAI" },
|
||||
]
|
||||
dependencies = [
|
||||
"fastuuid==0.14.0",
|
||||
"httpx==0.28.1",
|
||||
"openai==2.24.0",
|
||||
"python-dotenv==1.0.1",
|
||||
"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",
|
||||
"pydantic==2.12.5",
|
||||
"jsonschema==4.23.0",
|
||||
]
|
||||
|
||||
[tool.poetry.urls]
|
||||
homepage = "https://litellm.ai"
|
||||
[project.urls]
|
||||
Homepage = "https://litellm.ai"
|
||||
repository = "https://github.com/BerriAI/litellm"
|
||||
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.14.0"
|
||||
httpx = "0.28.1"
|
||||
openai = "2.30.0"
|
||||
python-dotenv = "1.0.1"
|
||||
tiktoken = "0.12.0"
|
||||
importlib-metadata = "8.5.0"
|
||||
tokenizers = "0.22.2"
|
||||
click = "8.1.8"
|
||||
jinja2 = "3.1.6"
|
||||
aiohttp = "3.13.5"
|
||||
pydantic = "2.12.5"
|
||||
jsonschema = "4.23.0"
|
||||
numpydoc = {version = "1.8.0", optional = true} # not in Docker or PyPI proxy extra
|
||||
|
||||
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.124.4", optional = true}
|
||||
backoff = {version = "2.2.1", 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.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 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 PyPI proxy extra
|
||||
pynacl = {version = "1.6.2", optional = true}
|
||||
websockets = {version = "15.0.1", optional = true}
|
||||
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.26.0", optional = true, python = ">=3.10"}
|
||||
a2a-sdk = {version = "0.3.25", optional = true, python = ">=3.10"}
|
||||
litellm-proxy-extras = {version = "0.4.65", optional = true}
|
||||
rich = {version = "13.9.4", optional = true}
|
||||
litellm-enterprise = {version = "0.1.37", optional = true}
|
||||
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'"}
|
||||
# grpcio: pinned to 1.80.0 (past reconnect bug #38290 in 1.68.x, has Python 3.14 wheels)
|
||||
grpcio = {version = "1.80.0", optional = true}
|
||||
|
||||
[tool.poetry.extras]
|
||||
# Dependencies pinned from the published `litellm[proxy]==1.83.0` resolution.
|
||||
# Docker and CI should prefer `uv.lock` rather than maintaining parallel installers.
|
||||
[project.optional-dependencies]
|
||||
proxy = [
|
||||
"gunicorn",
|
||||
"uvicorn",
|
||||
"uvloop",
|
||||
"fastapi",
|
||||
"backoff",
|
||||
"pyyaml",
|
||||
"rq",
|
||||
"orjson",
|
||||
"apscheduler",
|
||||
"fastapi-sso",
|
||||
"PyJWT",
|
||||
"python-multipart",
|
||||
"cryptography",
|
||||
"pynacl",
|
||||
"websockets",
|
||||
"boto3",
|
||||
"azure-identity",
|
||||
"azure-storage-blob",
|
||||
"mcp",
|
||||
"litellm-proxy-extras",
|
||||
"litellm-enterprise",
|
||||
"rich",
|
||||
"polars",
|
||||
"soundfile",
|
||||
"pyroscope-io",
|
||||
"gunicorn==23.0.0",
|
||||
"uvicorn==0.33.0",
|
||||
"uvloop==0.21.0; sys_platform != 'win32'",
|
||||
"fastapi==0.124.4",
|
||||
"backoff==2.2.1",
|
||||
"pyyaml==6.0.3",
|
||||
"rq==2.7.0",
|
||||
"orjson==3.10.15",
|
||||
"apscheduler==3.11.2",
|
||||
"fastapi-sso==0.16.0",
|
||||
"PyJWT==2.11.0; python_version >= '3.9'",
|
||||
"python-multipart==0.0.20",
|
||||
"cryptography==46.0.7",
|
||||
"pynacl==1.6.2",
|
||||
"websockets==15.0.1",
|
||||
"boto3==1.42.59",
|
||||
"azure-identity==1.25.2; python_version >= '3.9'",
|
||||
"azure-storage-blob==12.28.0",
|
||||
"mcp==1.26.0; python_version >= '3.10'",
|
||||
"litellm-proxy-extras==0.4.65",
|
||||
"litellm-enterprise==0.1.37",
|
||||
"rich==13.9.4",
|
||||
"polars==1.38.1; python_version >= '3.10'",
|
||||
"soundfile==0.12.1",
|
||||
"pyroscope-io==0.8.16; sys_platform != 'win32'",
|
||||
]
|
||||
|
||||
extra_proxy = [
|
||||
"prisma",
|
||||
"azure-identity",
|
||||
"azure-keyvault-secrets",
|
||||
"google-cloud-kms",
|
||||
"google-cloud-iam",
|
||||
"resend",
|
||||
"redisvl",
|
||||
"a2a-sdk"
|
||||
"prisma==0.11.0",
|
||||
"azure-identity==1.25.2; python_version >= '3.9'",
|
||||
"azure-keyvault-secrets==4.10.0",
|
||||
# Not in PyPI proxy extra.
|
||||
"google-cloud-kms==2.24.2",
|
||||
"google-cloud-iam==2.19.1",
|
||||
# Not in PyPI proxy extra.
|
||||
"resend==2.23.0",
|
||||
"redisvl==0.4.1; python_version >= '3.9' and python_version < '3.14'",
|
||||
"a2a-sdk==0.3.24; python_version >= '3.10'",
|
||||
]
|
||||
|
||||
utils = [
|
||||
"numpydoc",
|
||||
# Not in Docker or PyPI proxy extra.
|
||||
"numpydoc==1.8.0",
|
||||
]
|
||||
caching = ["diskcache==5.6.3"]
|
||||
semantic-router = [
|
||||
"semantic-router==0.1.12; python_version >= '3.9' and python_version < '3.14'",
|
||||
"aurelio-sdk==0.0.19; python_version >= '3.9' and python_version < '3.14'",
|
||||
]
|
||||
mlflow = ["mlflow==3.9.0; python_version >= '3.10'"]
|
||||
grpc = [
|
||||
# Newest non-yanked release older than the 30-day cutoff.
|
||||
"grpcio==1.78.0",
|
||||
]
|
||||
google = ["google-cloud-aiplatform==1.133.0"]
|
||||
proxy-runtime = [
|
||||
# Historically bundled in the proxy Docker images via requirements.txt.
|
||||
# Keep these in a dedicated extra so uv-based images preserve the same
|
||||
# feature surface without forcing the base SDK install to grow.
|
||||
"google-cloud-aiplatform==1.133.0",
|
||||
"google-genai==1.37.0",
|
||||
"anthropic[vertex]==0.84.0",
|
||||
"grpcio==1.78.0",
|
||||
"prometheus-client==0.20.0",
|
||||
"langfuse==2.59.7",
|
||||
"opentelemetry-api==1.28.0",
|
||||
"opentelemetry-sdk==1.28.0",
|
||||
"opentelemetry-exporter-otlp==1.28.0",
|
||||
"ddtrace==2.19.0",
|
||||
"sentry-sdk==2.21.0",
|
||||
"mangum==0.17.0",
|
||||
"azure-ai-contentsafety==1.0.0",
|
||||
"azure-storage-file-datalake==12.20.0",
|
||||
"pypdf==6.7.5; python_version < '3.14'",
|
||||
"llm-sandbox==0.3.31; python_version >= '3.10'",
|
||||
"detect-secrets==1.5.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
litellm = "litellm:run_server"
|
||||
litellm-proxy = "litellm.proxy.client.cli:cli"
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"diff-cover==9.7.2",
|
||||
"flake8==7.3.0",
|
||||
"black==24.10.0",
|
||||
"mypy==1.19.0",
|
||||
"pytest==8.3.5",
|
||||
"pytest-mock==3.15.1",
|
||||
"pytest-asyncio==1.2.0",
|
||||
"pytest-postgresql==7.0.2",
|
||||
# pytest-postgresql imports psycopg v3 during pytest startup. Keep the base
|
||||
# package and the binary wheel in the default dev environment so local
|
||||
# pytest works without requiring a system libpq install.
|
||||
"psycopg==3.2.13; python_version < '3.10'",
|
||||
"psycopg==3.3.3; python_version >= '3.10'",
|
||||
"psycopg-binary==3.2.13; python_version < '3.10'",
|
||||
"psycopg-binary==3.3.3; python_version >= '3.10'",
|
||||
"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; python_version >= '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",
|
||||
"opentelemetry-sdk==1.28.0",
|
||||
"opentelemetry-exporter-otlp==1.28.0",
|
||||
"langfuse==2.59.7",
|
||||
"fastapi-offline==1.7.6",
|
||||
"fakeredis==2.34.1",
|
||||
"pytest-rerunfailures==15.1",
|
||||
"pytest-cov==5.0.0",
|
||||
"parameterized==0.9.0",
|
||||
"openapi-core==0.22.0; python_version < '3.14'",
|
||||
"pytest-timeout==2.4.0",
|
||||
]
|
||||
proxy-dev = [
|
||||
"prisma==0.11.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==1.25.2; python_version >= '3.9'",
|
||||
"a2a-sdk==0.3.24; python_version >= '3.10'",
|
||||
]
|
||||
ci = [
|
||||
# These are lazily imported at call sites; keep them out of core deps to
|
||||
# avoid bloating the base SDK install (google-generativeai pulls grpcio +
|
||||
# protobuf, Pillow is a compiled C extension).
|
||||
"tenacity==8.5.0",
|
||||
"google-generativeai==0.8.6",
|
||||
"Pillow==11.3.0; python_version < '3.10'",
|
||||
"Pillow==12.1.1; python_version >= '3.10'",
|
||||
# Azure batch E2E tests still import psycopg2 directly.
|
||||
"psycopg2-binary==2.9.11",
|
||||
"pytest-codspeed==4.3.0",
|
||||
"pytest-retry==1.7.0",
|
||||
"pyarrow==21.0.0; python_version < '3.10'",
|
||||
"pyarrow==22.0.0; python_version >= '3.10'",
|
||||
"langchain==0.3.27; python_version < '3.10'",
|
||||
"langchain==1.2.10; python_version >= '3.10'",
|
||||
"lunary==1.0.36; python_version < '3.10'",
|
||||
"lunary==1.4.36; python_version == '3.10'",
|
||||
"lunary==1.4.37; python_version >= '3.11'",
|
||||
"logfire==4.6.0",
|
||||
"traceloop-sdk==0.33.12",
|
||||
"detect-secrets==1.5.0",
|
||||
"PyGithub==2.8.1",
|
||||
"aiodynamo==24.7",
|
||||
"argon2-cffi==25.1.0",
|
||||
"assemblyai==0.52.4",
|
||||
"jsonlines==4.0.0",
|
||||
"anthropic==0.84.0",
|
||||
"blockbuster==1.5.26",
|
||||
"beautifulsoup4==4.14.3",
|
||||
"pylint==3.3.9; python_version < '3.10'",
|
||||
"pylint==4.0.5; python_version >= '3.10'",
|
||||
"pyright==1.1.408",
|
||||
"langchain-mcp-adapters==0.2.1; python_version >= '3.10'",
|
||||
"langchain-openai==1.1.10; python_version >= '3.10'",
|
||||
"langgraph==1.0.10; python_version >= '3.10'",
|
||||
"claude-agent-sdk==0.1.44; python_version >= '3.10'",
|
||||
]
|
||||
healthcheck = [
|
||||
"httpx==0.28.1",
|
||||
"pyyaml==6.0.3",
|
||||
]
|
||||
|
||||
caching = ["diskcache"]
|
||||
[build-system]
|
||||
requires = ["uv_build==0.10.7"]
|
||||
build-backend = "uv_build"
|
||||
|
||||
semantic-router = ["semantic-router"]
|
||||
[tool.uv]
|
||||
default-groups = ["dev"]
|
||||
required-version = "==0.10.9"
|
||||
exclude-newer = "3 days"
|
||||
|
||||
mlflow = ["mlflow"]
|
||||
[tool.uv.sources]
|
||||
litellm-proxy-extras = { workspace = true }
|
||||
litellm-enterprise = { workspace = true }
|
||||
|
||||
grpc = ["grpcio"]
|
||||
[tool.uv.workspace]
|
||||
members = ["enterprise", "litellm-proxy-extras"]
|
||||
|
||||
google = ["google-cloud-aiplatform"]
|
||||
[tool.uv.build-backend]
|
||||
module-root = ""
|
||||
source-exclude = [
|
||||
"litellm/proxy/enterprise",
|
||||
"**/__pycache__",
|
||||
"**/__pycache__/**",
|
||||
"**/.mypy_cache",
|
||||
"**/.mypy_cache/**",
|
||||
"**/.pytest_cache",
|
||||
"**/.pytest_cache/**",
|
||||
"**/.ruff_cache",
|
||||
"**/.ruff_cache/**",
|
||||
]
|
||||
|
||||
[tool.isort]
|
||||
profile = "black"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
litellm = 'litellm:run_server'
|
||||
litellm-proxy = 'litellm.proxy.client.cli:cli'
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
diff-cover = "9.7.2"
|
||||
flake8 = "7.3.0"
|
||||
black = "24.10.0"
|
||||
mypy = "1.19.0"
|
||||
pytest = "8.3.5"
|
||||
pytest-mock = "3.15.1"
|
||||
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 = {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"
|
||||
opentelemetry-sdk = "1.28.0"
|
||||
opentelemetry-exporter-otlp = "1.28.0"
|
||||
langfuse = "2.59.7"
|
||||
fastapi-offline = "1.7.6"
|
||||
fakeredis = "2.34.1"
|
||||
pytest-rerunfailures = "15.1"
|
||||
pytest-cov = "5.0.0"
|
||||
parameterized = "0.9.0"
|
||||
|
||||
[tool.poetry.group.proxy-dev.dependencies]
|
||||
prisma = "0.11.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.25.3", python = ">=3.9"}
|
||||
a2a-sdk = {version = "0.3.25", python = ">=3.10"}
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core", "wheel"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
||||
[tool.commitizen]
|
||||
version = "1.83.7"
|
||||
version = "1.83.8"
|
||||
version_files = [
|
||||
"pyproject.toml:^version"
|
||||
"pyproject.toml:^version",
|
||||
]
|
||||
|
||||
[tool.mypy]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue