feat: Use pyproject standardized dependency-groups (#6689)
* Use pyproject standardized dependency-groups * fix: update Python version requirement to support up to 3.14 --------- Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
This commit is contained in:
parent
400572342f
commit
0886bdad16
12 changed files with 141 additions and 146 deletions
2
.github/workflows/lint-py.yml
vendored
2
.github/workflows/lint-py.yml
vendored
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
- name: Run Mypy
|
||||
run: |
|
||||
uv run mypy --namespace-packages -p "langflow"
|
||||
|
|
|
|||
2
.github/workflows/nightly_build.yml
vendored
2
.github/workflows/nightly_build.yml
vendored
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
- name: "Setup Environment"
|
||||
uses: ./.github/actions/setup-uv
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
|
||||
- name: Generate main nightly tag
|
||||
id: generate_main_tag
|
||||
|
|
|
|||
2
.github/workflows/py_autofix.yml
vendored
2
.github/workflows/py_autofix.yml
vendored
|
|
@ -30,7 +30,7 @@ jobs:
|
|||
|
||||
- name: "Install dependencies"
|
||||
run: |
|
||||
uv sync --frozen
|
||||
uv sync
|
||||
uv pip install -e .
|
||||
|
||||
- name: Run starter projects update
|
||||
|
|
|
|||
4
.github/workflows/python_test.yml
vendored
4
.github/workflows/python_test.yml
vendored
|
|
@ -54,7 +54,7 @@ jobs:
|
|||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
- name: Run unit tests
|
||||
uses: nick-fields/retry@v3
|
||||
with:
|
||||
|
|
@ -78,7 +78,7 @@ jobs:
|
|||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
- name: Run integration tests
|
||||
run: make integration_tests_no_api_keys
|
||||
- name: Minimize uv cache
|
||||
|
|
|
|||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -65,7 +65,7 @@ jobs:
|
|||
- name: Setup Environment
|
||||
uses: ./.github/actions/setup-uv
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
- name: Check Version
|
||||
id: check-version
|
||||
run: |
|
||||
|
|
@ -129,7 +129,7 @@ jobs:
|
|||
- name: Setup Environment
|
||||
uses: ./.github/actions/setup-uv
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
|
||||
# If pre-release is true, we need to check if ["a", "b", "rc", "dev", "post"] is in the version string
|
||||
# if the version string is incorrect, we need to exit the workflow
|
||||
|
|
|
|||
4
.github/workflows/release_nightly.yml
vendored
4
.github/workflows/release_nightly.yml
vendored
|
|
@ -75,7 +75,7 @@ jobs:
|
|||
- name: "Setup Environment"
|
||||
uses: ./.github/actions/setup-uv
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
|
||||
- name: Verify Nightly Name and Version
|
||||
id: verify
|
||||
|
|
@ -152,7 +152,7 @@ jobs:
|
|||
- name: "Setup Environment"
|
||||
uses: ./.github/actions/setup-uv
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
|
||||
- name: Verify Nightly Name and Version
|
||||
id: verify
|
||||
|
|
|
|||
2
.github/workflows/store_pytest_durations.yml
vendored
2
.github/workflows/store_pytest_durations.yml
vendored
|
|
@ -26,7 +26,7 @@ jobs:
|
|||
- name: "Setup Environment"
|
||||
uses: ./.github/actions/setup-uv
|
||||
- name: Install the project
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
- name: Run unit tests
|
||||
id: run_tests
|
||||
continue-on-error: true
|
||||
|
|
|
|||
2
.github/workflows/typescript_test.yml
vendored
2
.github/workflows/typescript_test.yml
vendored
|
|
@ -262,7 +262,7 @@ jobs:
|
|||
uses: ./.github/actions/setup-uv
|
||||
|
||||
- name: Install Python Dependencies
|
||||
run: uv sync --dev
|
||||
run: uv sync
|
||||
|
||||
- name: Configure Environment Variables
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ Pre-commit hooks will help keep your changes clean and well-formatted.
|
|||
Install pre-commit hooks by running the following commands:
|
||||
|
||||
```bash
|
||||
uv sync --dev
|
||||
uv sync
|
||||
uv run pre-commit install
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -115,54 +115,8 @@ dependencies = [
|
|||
"apify-client>=1.8.1",
|
||||
]
|
||||
|
||||
[tool.uv.sources]
|
||||
langflow-base = { workspace = true }
|
||||
langflow = { workspace = true }
|
||||
|
||||
[tool.uv.workspace]
|
||||
members = ["src/backend/base", "."]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/backend/langflow"]
|
||||
|
||||
|
||||
[project.urls]
|
||||
Repository = "https://github.com/langflow-ai/langflow"
|
||||
Documentation = "https://docs.langflow.org"
|
||||
|
||||
[project.optional-dependencies]
|
||||
deploy = [
|
||||
"celery[redis]>=5.3.6",
|
||||
"flower>=2.0.0"
|
||||
]
|
||||
couchbase = [
|
||||
"couchbase>=4.2.1"
|
||||
]
|
||||
cassio = [
|
||||
"cassio>=0.1.7"
|
||||
]
|
||||
local = [
|
||||
"llama-cpp-python~=0.2.0",
|
||||
"sentence-transformers>=2.3.1",
|
||||
"ctransformers>=0.2.10"
|
||||
]
|
||||
clickhouse-connect = [
|
||||
"clickhouse-connect==0.7.19"
|
||||
]
|
||||
nv-ingest = [
|
||||
# nv-ingest-client 2025.2.7.dev0 does not correctly install its
|
||||
# dependencies, so we need to install some manually.
|
||||
"nv-ingest-client==2025.2.7.dev0",
|
||||
"python-pptx==0.6.23",
|
||||
"pymilvus[bulk_writer,model]==2.5.0",
|
||||
"llama-index-embeddings-nvidia==0.1.5",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
langflow = "langflow.__main__:main"
|
||||
|
||||
[tool.uv]
|
||||
dev-dependencies = [
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"pytest-instafail>=0.5.0",
|
||||
"types-redis>=4.6.0.5",
|
||||
"ipykernel>=6.29.0",
|
||||
|
|
@ -203,6 +157,52 @@ dev-dependencies = [
|
|||
"locust>=2.32.9",
|
||||
]
|
||||
|
||||
[tool.uv.sources]
|
||||
langflow-base = { workspace = true }
|
||||
langflow = { workspace = true }
|
||||
|
||||
[tool.uv.workspace]
|
||||
members = ["src/backend/base", "."]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/backend/langflow"]
|
||||
|
||||
|
||||
[project.urls]
|
||||
Repository = "https://github.com/langflow-ai/langflow"
|
||||
Documentation = "https://docs.langflow.org"
|
||||
|
||||
[project.optional-dependencies]
|
||||
deploy = [
|
||||
"celery[redis]>=5.3.6",
|
||||
"flower>=2.0.0"
|
||||
]
|
||||
couchbase = [
|
||||
"couchbase>=4.2.1"
|
||||
]
|
||||
cassio = [
|
||||
"cassio>=0.1.7"
|
||||
]
|
||||
local = [
|
||||
"llama-cpp-python~=0.2.0",
|
||||
"sentence-transformers>=2.3.1",
|
||||
"ctransformers>=0.2.10"
|
||||
]
|
||||
clickhouse-connect = [
|
||||
"clickhouse-connect==0.7.19"
|
||||
]
|
||||
|
||||
nv-ingest = [
|
||||
# nv-ingest-client 2025.2.7.dev0 does not correctly install its
|
||||
# dependencies, so we need to install some manually.
|
||||
"nv-ingest-client==2025.2.7.dev0",
|
||||
"python-pptx==0.6.23",
|
||||
"pymilvus[bulk_writer,model]==2.5.0",
|
||||
"llama-index-embeddings-nvidia==0.1.5",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
langflow = "langflow.__main__:main"
|
||||
|
||||
[tool.codespell]
|
||||
skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,*.trig.,**/node_modules/**,./stuff/*,*.csv'
|
||||
|
|
|
|||
|
|
@ -83,6 +83,45 @@ dependencies = [
|
|||
"greenlet>=3.1.1",
|
||||
]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"asgi-lifespan>=2.1.0",
|
||||
"pytest-codspeed>=3.0.0",
|
||||
"pytest-github-actions-annotate-failures>=0.2.0",
|
||||
"types-aiofiles>=24.1.0.20240626",
|
||||
"types-redis>=4.6.0.5",
|
||||
"ipykernel>=6.29.0",
|
||||
"mypy>=1.11.0",
|
||||
"ruff>=0.6.2",
|
||||
"httpx[http2]>=0.27",
|
||||
"pytest>=8.2.0",
|
||||
"types-requests>=2.32.0",
|
||||
"requests>=2.32.0",
|
||||
"pytest-cov>=5.0.0",
|
||||
"pandas-stubs>=2.1.4.231227",
|
||||
"types-pillow>=10.2.0.20240213",
|
||||
"types-pyyaml>=6.0.12.8",
|
||||
"types-python-jose>=3.3.4.8",
|
||||
"types-passlib>=1.7.7.13",
|
||||
"pytest-mock>=3.14.0",
|
||||
"pytest-xdist>=3.6.0",
|
||||
"types-pywin32>=306.0.0.4",
|
||||
"types-google-cloud-ndb>=2.2.0.0",
|
||||
"pytest-sugar>=1.0.0",
|
||||
"respx>=0.21.1",
|
||||
"pytest-instafail>=0.5.0",
|
||||
"pytest-asyncio>=0.23.0",
|
||||
"pytest-profiling>=1.7.0",
|
||||
"pre-commit>=3.7.0",
|
||||
"vulture>=2.11",
|
||||
"dictdiffer>=0.9.0",
|
||||
"pytest-split>=0.9.0",
|
||||
"devtools>=0.12.2",
|
||||
"pytest-flakefinder>=1.1.0",
|
||||
"types-markdown>=3.7.0.20240822",
|
||||
"codeflash>=0.8.4"
|
||||
]
|
||||
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["langflow"]
|
||||
|
|
@ -158,13 +197,6 @@ ignore = [
|
|||
"S301", # Use of pickle
|
||||
]
|
||||
|
||||
[tool.uv]
|
||||
dev-dependencies = [
|
||||
"asgi-lifespan>=2.1.0",
|
||||
"pytest-codspeed>=3.0.0",
|
||||
"pytest-github-actions-annotate-failures>=0.2.0",
|
||||
"types-aiofiles>=24.1.0.20240626",
|
||||
]
|
||||
[tool.codeflash]
|
||||
# All paths are relative to this pyproject.toml's directory.
|
||||
module-root = "langflow"
|
||||
|
|
@ -208,40 +240,5 @@ all = [
|
|||
"ctransformers>=0.2"
|
||||
]
|
||||
|
||||
# Development dependencies
|
||||
dev = [
|
||||
"types-redis>=4.6.0.5",
|
||||
"ipykernel>=6.29.0",
|
||||
"mypy>=1.11.0",
|
||||
"ruff>=0.6.2",
|
||||
"httpx[http2]>=0.27",
|
||||
"pytest>=8.2.0",
|
||||
"types-requests>=2.32.0",
|
||||
"requests>=2.32.0",
|
||||
"pytest-cov>=5.0.0",
|
||||
"pandas-stubs>=2.1.4.231227",
|
||||
"types-pillow>=10.2.0.20240213",
|
||||
"types-pyyaml>=6.0.12.8",
|
||||
"types-python-jose>=3.3.4.8",
|
||||
"types-passlib>=1.7.7.13",
|
||||
"pytest-mock>=3.14.0",
|
||||
"pytest-xdist>=3.6.0",
|
||||
"types-pywin32>=306.0.0.4",
|
||||
"types-google-cloud-ndb>=2.2.0.0",
|
||||
"pytest-sugar>=1.0.0",
|
||||
"respx>=0.21.1",
|
||||
"pytest-instafail>=0.5.0",
|
||||
"pytest-asyncio>=0.23.0",
|
||||
"pytest-profiling>=1.7.0",
|
||||
"pre-commit>=3.7.0",
|
||||
"vulture>=2.11",
|
||||
"dictdiffer>=0.9.0",
|
||||
"pytest-split>=0.9.0",
|
||||
"devtools>=0.12.2",
|
||||
"pytest-flakefinder>=1.1.0",
|
||||
"types-markdown>=3.7.0.20240822",
|
||||
"codeflash>=0.8.4"
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
langflow-base = "langflow.__main__:main"
|
||||
|
|
|
|||
86
uv.lock
generated
86
uv.lock
generated
|
|
@ -4640,7 +4640,15 @@ deploy = [
|
|||
{ name = "flower" },
|
||||
{ name = "redis" },
|
||||
]
|
||||
local = [
|
||||
{ name = "ctransformers" },
|
||||
{ name = "llama-cpp-python" },
|
||||
{ name = "sentence-transformers" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "asgi-lifespan" },
|
||||
{ name = "codeflash" },
|
||||
{ name = "devtools" },
|
||||
{ name = "dictdiffer" },
|
||||
|
|
@ -4651,8 +4659,10 @@ dev = [
|
|||
{ name = "pre-commit" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-asyncio" },
|
||||
{ name = "pytest-codspeed" },
|
||||
{ name = "pytest-cov" },
|
||||
{ name = "pytest-flakefinder" },
|
||||
{ name = "pytest-github-actions-annotate-failures" },
|
||||
{ name = "pytest-instafail" },
|
||||
{ name = "pytest-mock" },
|
||||
{ name = "pytest-profiling" },
|
||||
|
|
@ -4662,6 +4672,7 @@ dev = [
|
|||
{ name = "requests" },
|
||||
{ name = "respx" },
|
||||
{ name = "ruff" },
|
||||
{ name = "types-aiofiles" },
|
||||
{ name = "types-google-cloud-ndb" },
|
||||
{ name = "types-markdown" },
|
||||
{ name = "types-passlib" },
|
||||
|
|
@ -4673,19 +4684,6 @@ dev = [
|
|||
{ name = "types-requests" },
|
||||
{ name = "vulture" },
|
||||
]
|
||||
local = [
|
||||
{ name = "ctransformers" },
|
||||
{ name = "llama-cpp-python" },
|
||||
{ name = "sentence-transformers" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "asgi-lifespan" },
|
||||
{ name = "pytest-codspeed" },
|
||||
{ name = "pytest-github-actions-annotate-failures" },
|
||||
{ name = "types-aiofiles" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
|
|
@ -4701,13 +4699,10 @@ requires-dist = [
|
|||
{ name = "celery", marker = "extra == 'deploy'", specifier = ">=5.3.1" },
|
||||
{ name = "chardet", specifier = ">=5.2.0,<6.0.0" },
|
||||
{ name = "clickhouse-connect", specifier = "==0.7.19" },
|
||||
{ name = "codeflash", marker = "extra == 'dev'", specifier = ">=0.8.4" },
|
||||
{ name = "cryptography", specifier = ">=42.0.5,<44.0.0" },
|
||||
{ name = "ctransformers", marker = "extra == 'all'", specifier = ">=0.2" },
|
||||
{ name = "ctransformers", marker = "extra == 'local'", specifier = ">=0.2" },
|
||||
{ name = "defusedxml", specifier = ">=0.7.1,<1.0.0" },
|
||||
{ name = "devtools", marker = "extra == 'dev'", specifier = ">=0.12.2" },
|
||||
{ name = "dictdiffer", marker = "extra == 'dev'", specifier = ">=0.9.0" },
|
||||
{ name = "diskcache", specifier = ">=5.6.3,<6.0.0" },
|
||||
{ name = "docstring-parser", specifier = ">=0.16,<1.0.0" },
|
||||
{ name = "duckdb", specifier = ">=1.0.0,<2.0.0" },
|
||||
|
|
@ -4722,8 +4717,6 @@ requires-dist = [
|
|||
{ name = "greenlet", specifier = ">=3.1.1" },
|
||||
{ name = "gunicorn", specifier = ">=22.0.0,<24.0.0" },
|
||||
{ name = "httpx", extras = ["http2"], specifier = ">=0.27,<1.0.0" },
|
||||
{ name = "httpx", extras = ["http2"], marker = "extra == 'dev'", specifier = ">=0.27" },
|
||||
{ name = "ipykernel", marker = "extra == 'dev'", specifier = ">=6.29.0" },
|
||||
{ name = "jq", marker = "sys_platform != 'win32'", specifier = ">=1.7.0,<2.0.0" },
|
||||
{ name = "json-repair", specifier = ">=0.30.3" },
|
||||
{ name = "langchain", specifier = "~=0.3.10" },
|
||||
|
|
@ -4736,7 +4729,6 @@ requires-dist = [
|
|||
{ name = "loguru", specifier = ">=0.7.1,<1.0.0" },
|
||||
{ name = "mcp", specifier = ">=1.1.2" },
|
||||
{ name = "multiprocess", specifier = ">=0.70.14,<1.0.0" },
|
||||
{ name = "mypy", marker = "extra == 'dev'", specifier = ">=1.11.0" },
|
||||
{ name = "nanoid", specifier = ">=2.0.0,<3.0.0" },
|
||||
{ name = "nest-asyncio", specifier = ">=1.6.0,<2.0.0" },
|
||||
{ name = "networkx", specifier = ">=3.4.2" },
|
||||
|
|
@ -4746,35 +4738,20 @@ requires-dist = [
|
|||
{ name = "opentelemetry-sdk", specifier = ">=1.25.0,<2.0.0" },
|
||||
{ name = "orjson", specifier = "==3.10.15" },
|
||||
{ name = "pandas", specifier = "==2.2.3" },
|
||||
{ name = "pandas-stubs", marker = "extra == 'dev'", specifier = ">=2.1.4.231227" },
|
||||
{ name = "passlib", specifier = ">=1.7.4,<2.0.0" },
|
||||
{ name = "pillow", specifier = ">=11.1.0,<12.0.0" },
|
||||
{ name = "platformdirs", specifier = ">=4.2.0,<5.0.0" },
|
||||
{ name = "pre-commit", marker = "extra == 'dev'", specifier = ">=3.7.0" },
|
||||
{ name = "prometheus-client", specifier = ">=0.20.0,<1.0.0" },
|
||||
{ name = "pydantic", specifier = "~=2.10.1" },
|
||||
{ name = "pydantic-settings", specifier = ">=2.2.0,<3.0.0" },
|
||||
{ name = "pypdf", specifier = "~=5.1.0" },
|
||||
{ name = "pyperclip", specifier = ">=1.8.2,<2.0.0" },
|
||||
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.2.0" },
|
||||
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
||||
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=5.0.0" },
|
||||
{ name = "pytest-flakefinder", marker = "extra == 'dev'", specifier = ">=1.1.0" },
|
||||
{ name = "pytest-instafail", marker = "extra == 'dev'", specifier = ">=0.5.0" },
|
||||
{ name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14.0" },
|
||||
{ name = "pytest-profiling", marker = "extra == 'dev'", specifier = ">=1.7.0" },
|
||||
{ name = "pytest-split", marker = "extra == 'dev'", specifier = ">=0.9.0" },
|
||||
{ name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1.0.0" },
|
||||
{ name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.6.0" },
|
||||
{ name = "python-docx", specifier = ">=1.1.0,<2.0.0" },
|
||||
{ name = "python-jose", specifier = ">=3.3.0,<4.0.0" },
|
||||
{ name = "python-multipart", specifier = ">=0.0.12,<1.0.0" },
|
||||
{ name = "redis", marker = "extra == 'all'", specifier = ">=4.6.0" },
|
||||
{ name = "redis", marker = "extra == 'deploy'", specifier = ">=4.6.0" },
|
||||
{ name = "requests", marker = "extra == 'dev'", specifier = ">=2.32.0" },
|
||||
{ name = "respx", marker = "extra == 'dev'", specifier = ">=0.21.1" },
|
||||
{ name = "rich", specifier = ">=13.7.0,<14.0.0" },
|
||||
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.6.2" },
|
||||
{ name = "sentence-transformers", marker = "extra == 'all'", specifier = ">=2.0.0" },
|
||||
{ name = "sentence-transformers", marker = "extra == 'local'", specifier = ">=2.0.0" },
|
||||
{ name = "sentry-sdk", extras = ["fastapi", "loguru"], specifier = ">=2.5.1,<3.0.0" },
|
||||
|
|
@ -4782,27 +4759,48 @@ requires-dist = [
|
|||
{ name = "spider-client", specifier = ">=0.0.27,<1.0.0" },
|
||||
{ name = "sqlmodel", specifier = "==0.0.22" },
|
||||
{ name = "typer", specifier = ">=0.13.0,<1.0.0" },
|
||||
{ name = "types-google-cloud-ndb", marker = "extra == 'dev'", specifier = ">=2.2.0.0" },
|
||||
{ name = "types-markdown", marker = "extra == 'dev'", specifier = ">=3.7.0.20240822" },
|
||||
{ name = "types-passlib", marker = "extra == 'dev'", specifier = ">=1.7.7.13" },
|
||||
{ name = "types-pillow", marker = "extra == 'dev'", specifier = ">=10.2.0.20240213" },
|
||||
{ name = "types-python-jose", marker = "extra == 'dev'", specifier = ">=3.3.4.8" },
|
||||
{ name = "types-pywin32", marker = "extra == 'dev'", specifier = ">=306.0.0.4" },
|
||||
{ name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.8" },
|
||||
{ name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6.0.5" },
|
||||
{ name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.0" },
|
||||
{ name = "uncurl", specifier = ">=0.0.11,<1.0.0" },
|
||||
{ name = "uvicorn", specifier = ">=0.30.0,<1.0.0" },
|
||||
{ name = "validators", specifier = ">=0.34.0" },
|
||||
{ name = "vulture", marker = "extra == 'dev'", specifier = ">=2.11" },
|
||||
]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "asgi-lifespan", specifier = ">=2.1.0" },
|
||||
{ name = "codeflash", specifier = ">=0.8.4" },
|
||||
{ name = "devtools", specifier = ">=0.12.2" },
|
||||
{ name = "dictdiffer", specifier = ">=0.9.0" },
|
||||
{ name = "httpx", extras = ["http2"], specifier = ">=0.27" },
|
||||
{ name = "ipykernel", specifier = ">=6.29.0" },
|
||||
{ name = "mypy", specifier = ">=1.11.0" },
|
||||
{ name = "pandas-stubs", specifier = ">=2.1.4.231227" },
|
||||
{ name = "pre-commit", specifier = ">=3.7.0" },
|
||||
{ name = "pytest", specifier = ">=8.2.0" },
|
||||
{ name = "pytest-asyncio", specifier = ">=0.23.0" },
|
||||
{ name = "pytest-codspeed", specifier = ">=3.0.0" },
|
||||
{ name = "pytest-cov", specifier = ">=5.0.0" },
|
||||
{ name = "pytest-flakefinder", specifier = ">=1.1.0" },
|
||||
{ name = "pytest-github-actions-annotate-failures", specifier = ">=0.2.0" },
|
||||
{ name = "pytest-instafail", specifier = ">=0.5.0" },
|
||||
{ name = "pytest-mock", specifier = ">=3.14.0" },
|
||||
{ name = "pytest-profiling", specifier = ">=1.7.0" },
|
||||
{ name = "pytest-split", specifier = ">=0.9.0" },
|
||||
{ name = "pytest-sugar", specifier = ">=1.0.0" },
|
||||
{ name = "pytest-xdist", specifier = ">=3.6.0" },
|
||||
{ name = "requests", specifier = ">=2.32.0" },
|
||||
{ name = "respx", specifier = ">=0.21.1" },
|
||||
{ name = "ruff", specifier = ">=0.6.2" },
|
||||
{ name = "types-aiofiles", specifier = ">=24.1.0.20240626" },
|
||||
{ name = "types-google-cloud-ndb", specifier = ">=2.2.0.0" },
|
||||
{ name = "types-markdown", specifier = ">=3.7.0.20240822" },
|
||||
{ name = "types-passlib", specifier = ">=1.7.7.13" },
|
||||
{ name = "types-pillow", specifier = ">=10.2.0.20240213" },
|
||||
{ name = "types-python-jose", specifier = ">=3.3.4.8" },
|
||||
{ name = "types-pywin32", specifier = ">=306.0.0.4" },
|
||||
{ name = "types-pyyaml", specifier = ">=6.0.12.8" },
|
||||
{ name = "types-redis", specifier = ">=4.6.0.5" },
|
||||
{ name = "types-requests", specifier = ">=2.32.0" },
|
||||
{ name = "vulture", specifier = ">=2.11" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue