Files
dify/api/pyproject.toml
dependabot[bot] b11c7137a7 chore(deps): bump the python-packages group across 1 directory with 14 updates
Updates the requirements on [gevent](https://github.com/gevent/gevent), [python-socketio](https://github.com/miguelgrinberg/python-socketio), [aliyun-log-python-sdk](https://github.com/aliyun/aliyun-log-python-sdk), [resend](https://github.com/resendlabs/resend-python), [graphon](https://github.com/langgenius/graphon), [json-repair](https://github.com/mangiucugna/json_repair), [tenacity](https://github.com/jd/tenacity), [fastapi](https://github.com/fastapi/fastapi), [jsonschema](https://github.com/python-jsonschema/jsonschema), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [coverage[toml]](https://github.com/coveragepy/coveragepy), [mkdocs-glightbox](https://github.com/blueswen/mkdocs-glightbox), [mkdocs-material](https://github.com/squidfunk/mkdocs-material) and [mkdocstrings-python](https://github.com/mkdocstrings/python) to permit the latest version.

Updates `gevent` from 26.4.0 to 26.5.0
- [Release notes](https://github.com/gevent/gevent/releases)
- [Changelog](https://github.com/gevent/gevent/blob/master/docs/changelog_pre.rst)
- [Commits](https://github.com/gevent/gevent/compare/26.4.0...26.5.0)

Updates `python-socketio` from 5.16.1 to 5.16.2
- [Release notes](https://github.com/miguelgrinberg/python-socketio/releases)
- [Changelog](https://github.com/miguelgrinberg/python-socketio/blob/main/CHANGES.md)
- [Commits](https://github.com/miguelgrinberg/python-socketio/compare/v5.16.1...v5.16.2)

Updates `aliyun-log-python-sdk` from 0.9.44 to 0.9.46
- [Release notes](https://github.com/aliyun/aliyun-log-python-sdk/releases)
- [Changelog](https://github.com/aliyun/aliyun-log-python-sdk/blob/master/HISTORY.md)
- [Commits](https://github.com/aliyun/aliyun-log-python-sdk/commits)

Updates `resend` from 2.27.0 to 2.30.1
- [Release notes](https://github.com/resendlabs/resend-python/releases)
- [Commits](https://github.com/resendlabs/resend-python/compare/v2.27.0...v2.30.1)

Updates `graphon` from 0.2.2 to 0.4.0
- [Release notes](https://github.com/langgenius/graphon/releases)
- [Commits](https://github.com/langgenius/graphon/compare/v0.2.2...v0.4.0)

Updates `json-repair` from 0.59.4 to 0.59.10
- [Release notes](https://github.com/mangiucugna/json_repair/releases)
- [Commits](https://github.com/mangiucugna/json_repair/compare/v0.59.4...v0.59.10)

Updates `tenacity` from 8.5.0 to 9.1.4
- [Release notes](https://github.com/jd/tenacity/releases)
- [Commits](https://github.com/jd/tenacity/compare/8.5.0...9.1.4)

Updates `fastapi` from 0.136.0 to 0.136.3
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.136.0...0.136.3)

Updates `jsonschema` from 4.23.0 to 4.26.0
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.23.0...v4.26.0)

Updates `uvicorn[standard]` from 0.46.0 to 0.48.0
- [Release notes](https://github.com/Kludex/uvicorn/releases)
- [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/uvicorn/compare/0.46.0...0.48.0)

Updates `coverage[toml]` to 7.14.0
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.10.7...7.14.0)

Updates `mkdocs-glightbox` to 0.5.2
- [Release notes](https://github.com/blueswen/mkdocs-glightbox/releases)
- [Changelog](https://github.com/blueswen/mkdocs-glightbox/blob/main/CHANGELOG)
- [Commits](https://github.com/blueswen/mkdocs-glightbox/compare/v0.4.0...v0.5.2)

Updates `mkdocs-material` to 9.7.6
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.7.0...9.7.6)

Updates `mkdocstrings-python` to 2.0.3
- [Release notes](https://github.com/mkdocstrings/python/releases)
- [Changelog](https://github.com/mkdocstrings/python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/python/compare/2.0.0...2.0.3)

---
updated-dependencies:
- dependency-name: gevent
  dependency-version: 26.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: python-socketio
  dependency-version: 5.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: aliyun-log-python-sdk
  dependency-version: 0.9.46
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: resend
  dependency-version: 2.30.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: graphon
  dependency-version: 0.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: json-repair
  dependency-version: 0.59.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: tenacity
  dependency-version: 9.1.4
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: fastapi
  dependency-version: 0.136.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: jsonschema
  dependency-version: 4.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: uvicorn[standard]
  dependency-version: 0.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: coverage[toml]
  dependency-version: 7.14.0
  dependency-type: direct:development
  dependency-group: python-packages
- dependency-name: mkdocs-glightbox
  dependency-version: 0.5.2
  dependency-type: direct:development
  dependency-group: python-packages
- dependency-name: mkdocs-material
  dependency-version: 9.7.6
  dependency-type: direct:development
  dependency-group: python-packages
- dependency-name: mkdocstrings-python
  dependency-version: 2.0.3
  dependency-type: direct:development
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 02:30:27 +00:00

298 lines
9.6 KiB
TOML

[project]
name = "dify-api"
version = "1.14.2"
requires-python = "~=3.12.0"
dependencies = [
# Legacy: mature and widely deployed
"bleach>=6.3.0,<7.0.0",
"boto3>=1.43.10,<2.0.0",
"celery>=5.6.3,<6.0.0",
"croniter>=6.2.2,<7.0.0",
"dify-agent",
"flask>=3.1.3,<4.0.0",
"flask-cors>=6.0.2,<7.0.0",
"gevent>=26.5.0,<26.6.0",
"gevent-websocket==0.10.1",
"gmpy2>=2.3.0,<3.0.0",
"google-api-python-client>=2.196.0,<3.0.0",
"gunicorn>=26.0.0,<27.0.0",
"psycogreen>=1.0.2,<2.0.0",
"psycopg2-binary>=2.9.12,<3.0.0",
"python-socketio>=5.16.2,<6.0.0",
"redis[hiredis]>=7.4.0,<8.0.0",
"sendgrid>=6.12.5,<7.0.0",
"sseclient-py>=1.8.0,<2.0.0",
# Stable: production-proven, cap below the next major
"aliyun-log-python-sdk==0.9.46",
"azure-identity>=1.25.3,<2.0.0",
"flask-compress>=1.24,<2.0.0",
"flask-login==0.6.3",
"flask-migrate>=4.1.0,<5.0.0",
"flask-orjson>=2.0.0,<3.0.0",
"flask-restx>=1.3.2,<2.0.0",
"google-cloud-aiplatform>=1.151.0,<2.0.0",
"httpx[socks]==0.28.1",
"opentelemetry-distro==0.62b1",
"opentelemetry-instrumentation-celery==0.62b1",
"opentelemetry-instrumentation-flask==0.62b1",
"opentelemetry-instrumentation-httpx==0.62b1",
"opentelemetry-instrumentation-redis==0.62b1",
"opentelemetry-instrumentation-sqlalchemy==0.62b1",
"opentelemetry-propagator-b3>=1.41.1,<2.0.0",
"readabilipy==0.3.0",
"resend>=2.30.1,<3.0.0",
# Emerging: newer and fast-moving, use compatible pins
"fastopenapi[flask]==0.7.0",
"graphon==0.4.0",
"httpx-sse==0.4.3",
"json-repair==0.59.10",
]
# Before adding new dependency, consider place it in
# alphabet order (a-z) and suitable group.
[tool.setuptools]
packages = []
[tool.uv.workspace]
members = ["providers/vdb/*", "providers/trace/*"]
exclude = ["providers/vdb/__pycache__", "providers/trace/__pycache__"]
[tool.uv.sources]
dify-agent = { path = "../dify-agent" }
dify-vdb-alibabacloud-mysql = { workspace = true }
dify-vdb-analyticdb = { workspace = true }
dify-vdb-baidu = { workspace = true }
dify-vdb-chroma = { workspace = true }
dify-vdb-clickzetta = { workspace = true }
dify-vdb-couchbase = { workspace = true }
dify-vdb-elasticsearch = { workspace = true }
dify-vdb-hologres = { workspace = true }
dify-vdb-huawei-cloud = { workspace = true }
dify-vdb-iris = { workspace = true }
dify-vdb-lindorm = { workspace = true }
dify-vdb-matrixone = { workspace = true }
dify-vdb-milvus = { workspace = true }
dify-vdb-myscale = { workspace = true }
dify-vdb-oceanbase = { workspace = true }
dify-vdb-opengauss = { workspace = true }
dify-vdb-opensearch = { workspace = true }
dify-vdb-oracle = { workspace = true }
dify-vdb-pgvecto-rs = { workspace = true }
dify-vdb-pgvector = { workspace = true }
dify-vdb-qdrant = { workspace = true }
dify-vdb-relyt = { workspace = true }
dify-vdb-tablestore = { workspace = true }
dify-vdb-tencent = { workspace = true }
dify-vdb-tidb-on-qdrant = { workspace = true }
dify-vdb-tidb-vector = { workspace = true }
dify-vdb-upstash = { workspace = true }
dify-vdb-vastbase = { workspace = true }
dify-vdb-vikingdb = { workspace = true }
dify-vdb-weaviate = { workspace = true }
dify-trace-aliyun = { workspace = true }
dify-trace-arize-phoenix = { workspace = true }
dify-trace-langfuse = { workspace = true }
dify-trace-langsmith = { workspace = true }
dify-trace-mlflow = { workspace = true }
dify-trace-opik = { workspace = true }
dify-trace-tencent = { workspace = true }
dify-trace-weave = { workspace = true }
[tool.uv]
default-groups = ["storage", "tools", "vdb-all", "trace-all"]
package = false
override-dependencies = [
"litellm>=1.83.10,<2.0.0",
"pyarrow>=23.0.1,<24.0.0",
]
[dependency-groups]
############################################################
# [ Dev ] dependency group
# Required for development and running tests
############################################################
dev = [
"coverage>=7.13.4",
"dotenv-linter>=0.7.0",
"faker>=40.15.0",
"lxml-stubs>=0.5.1",
"ruff>=0.15.12",
"pytest>=9.0.3",
"pytest-benchmark>=5.2.3",
"pytest-cov>=7.1.0",
"pytest-env>=1.6.0",
"pytest-mock>=3.15.1",
"testcontainers>=4.14.2",
"types-aiofiles>=25.1.0",
"types-beautifulsoup4>=4.12.0",
"types-cachetools>=7.0.0.20260503",
"types-colorama>=0.4.15",
"types-defusedxml>=0.7.0",
"types-deprecated>=1.3.1",
"types-docutils>=0.22.3",
"types-flask-cors>=6.0.0",
"types-flask-migrate>=4.1.0",
"types-gevent>=26.4.0",
"types-greenlet>=3.5.0.20260428",
"types-html5lib>=1.1.11",
"types-markdown>=3.10.2",
"types-oauthlib>=3.3.0",
"types-objgraph>=3.6.0",
"types-olefile>=0.47.0",
"types-openpyxl>=3.1.5",
"types-pexpect>=4.9.0",
"types-protobuf>=7.34.1.20260503",
"types-psutil>=7.2.2",
"types-psycopg2>=2.9.21.20260422",
"types-pygments>=2.20.0",
"types-pymysql>=1.1.0",
"types-python-dateutil>=2.9.0",
"types-pywin32>=311.0.0",
"types-pyyaml>=6.0.12",
"types-regex>=2026.4.4",
"types-shapely>=2.1.0",
"types-simplejson>=3.20.0.20260408",
"types-six>=1.17.0.20260408",
"types-tensorflow>=2.18.0.20260408",
"types-tqdm>=4.67.3.20260408",
"types-ujson>=5.10.0",
"boto3-stubs>=1.43.10",
"types-jmespath>=1.1.0.20260408",
"hypothesis>=6.152.4",
"types_pyOpenSSL>=24.1.0",
"types_cffi>=2.0.0.20260429",
"types_setuptools>=82.0.0.20260408",
"pandas-stubs>=3.0.0",
"scipy-stubs>=1.17.1.4",
"types-python-http-client>=3.3.7.20260408",
"import-linter>=2.3",
"types-redis>=4.6.0.20241004",
"celery-types>=0.23.0",
"mypy>=1.20.2",
# "locust>=2.40.4", # Temporarily removed due to compatibility issues. Uncomment when resolved.
"pytest-timeout>=2.4.0",
"pytest-xdist>=3.8.0",
"pyrefly>=1.0.0",
"xinference-client>=2.7.0",
]
############################################################
# [ Storage ] dependency group
# Required for storage clients
############################################################
storage = [
"azure-storage-blob>=12.29.0,<13.0.0",
"bce-python-sdk==0.9.71",
"cos-python-sdk-v5>=1.9.43,<2.0.0",
"esdk-obs-python>=3.22.2,<4.0.0",
"google-cloud-storage>=3.10.1,<4.0.0",
"opendal==0.46.0",
"oss2>=2.19.1,<3.0.0",
"supabase>=2.30.0,<3.0.0",
"tos>=2.9.0,<3.0.0",
]
############################################################
# [ Tools ] dependency group
############################################################
tools = ["cloudscraper>=1.2.71,<2.0.0", "nltk>=3.9.1,<4.0.0"]
############################################################
# [ VDB ] workspace plugins — hollow packages under providers/vdb/*
# Each declares its own third-party deps and registers dify.vector_backends entry points.
# Use: uv sync --group vdb-all | uv sync --group vdb-qdrant
############################################################
vdb-all = [
"dify-vdb-alibabacloud-mysql",
"dify-vdb-analyticdb",
"dify-vdb-baidu",
"dify-vdb-chroma",
"dify-vdb-clickzetta",
"dify-vdb-couchbase",
"dify-vdb-elasticsearch",
"dify-vdb-hologres",
"dify-vdb-huawei-cloud",
"dify-vdb-iris",
"dify-vdb-lindorm",
"dify-vdb-matrixone",
"dify-vdb-milvus",
"dify-vdb-myscale",
"dify-vdb-oceanbase",
"dify-vdb-opengauss",
"dify-vdb-opensearch",
"dify-vdb-oracle",
"dify-vdb-pgvecto-rs",
"dify-vdb-pgvector",
"dify-vdb-qdrant",
"dify-vdb-relyt",
"dify-vdb-tablestore",
"dify-vdb-tencent",
"dify-vdb-tidb-on-qdrant",
"dify-vdb-tidb-vector",
"dify-vdb-upstash",
"dify-vdb-vastbase",
"dify-vdb-vikingdb",
"dify-vdb-weaviate",
]
vdb-alibabacloud-mysql = ["dify-vdb-alibabacloud-mysql"]
vdb-analyticdb = ["dify-vdb-analyticdb"]
vdb-baidu = ["dify-vdb-baidu"]
vdb-chroma = ["dify-vdb-chroma"]
vdb-clickzetta = ["dify-vdb-clickzetta"]
vdb-couchbase = ["dify-vdb-couchbase"]
vdb-elasticsearch = ["dify-vdb-elasticsearch"]
vdb-hologres = ["dify-vdb-hologres"]
vdb-huawei-cloud = ["dify-vdb-huawei-cloud"]
vdb-iris = ["dify-vdb-iris"]
vdb-lindorm = ["dify-vdb-lindorm"]
vdb-matrixone = ["dify-vdb-matrixone"]
vdb-milvus = ["dify-vdb-milvus"]
vdb-myscale = ["dify-vdb-myscale"]
vdb-oceanbase = ["dify-vdb-oceanbase"]
vdb-opengauss = ["dify-vdb-opengauss"]
vdb-opensearch = ["dify-vdb-opensearch"]
vdb-oracle = ["dify-vdb-oracle"]
vdb-pgvecto-rs = ["dify-vdb-pgvecto-rs"]
vdb-pgvector = ["dify-vdb-pgvector"]
vdb-qdrant = ["dify-vdb-qdrant"]
vdb-relyt = ["dify-vdb-relyt"]
vdb-tablestore = ["dify-vdb-tablestore"]
vdb-tencent = ["dify-vdb-tencent"]
vdb-tidb-on-qdrant = ["dify-vdb-tidb-on-qdrant"]
vdb-tidb-vector = ["dify-vdb-tidb-vector"]
vdb-upstash = ["dify-vdb-upstash"]
vdb-vastbase = ["dify-vdb-vastbase"]
vdb-vikingdb = ["dify-vdb-vikingdb"]
vdb-weaviate = ["dify-vdb-weaviate"]
# Optional client used by some tests / integrations (not a vector backend plugin)
vdb-xinference = ["xinference-client>=2.7.0,<3.0.0"]
trace-all = [
"dify-trace-aliyun",
"dify-trace-arize-phoenix",
"dify-trace-langfuse",
"dify-trace-langsmith",
"dify-trace-mlflow",
"dify-trace-opik",
"dify-trace-tencent",
"dify-trace-weave",
]
trace-aliyun = ["dify-trace-aliyun"]
trace-arize-phoenix = ["dify-trace-arize-phoenix"]
trace-langfuse = ["dify-trace-langfuse"]
trace-langsmith = ["dify-trace-langsmith"]
trace-mlflow = ["dify-trace-mlflow"]
trace-opik = ["dify-trace-opik"]
trace-tencent = ["dify-trace-tencent"]
trace-weave = ["dify-trace-weave"]
[tool.pyrefly]
project-includes = ["."]
project-excludes = [".venv", "migrations/"]
python-platform = "linux"
python-version = "3.12.0"
infer-with-first-use = true
min-severity = "warn"