Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "entities_api"
version = "1.61.3"
description = "Unified multi vendor AI inference API"
readme = "README.md"

authors = [
  { name = "Francis Neequaye Armah", email = "francis.neequaye@projectdavid.co.uk" }
]

license = { file = "LICENSE" }

keywords = ["AI", "API", "Assistants", "LLM", "RAG", "Vector"]

requires-python = ">=3.10,<3.14"

dependencies = [
  "fastapi~=0.110.0",
  "SQLAlchemy",
  "pydantic>=2.10.3",
  "httpx>=0.24.1",
  "mcp>=2.2,<3",
  "cryptography>=44.0.2",
  "defusedxml==0.7.1",
  "python-dotenv>=1.0",
  "aiofiles>=23.2.1",
  "qdrant-client~=1.13.3",
  "pdfplumber~=0.11.6",
  "validators~=0.34.0",
  "uvicorn[standard]",
  "pysmb",
  "typer>=0.9.0",
  "click==8.1.7",
  "PyYAML>=6.0",
  "pymysql",
  "projectdavid-common>=0.77.0",
  "projectdavid-orm>=1.12.0",
]

[project.optional-dependencies]
# Only the existing local file-search embedding path needs this extra.
embeddings = ["sentence-transformers~=4.0.1"]
dev = [
  "black==24.1.1",
  "isort==5.13.2",
  "ruff>=0.4.0",
  "pytest>=7.2",
  "pytest-cov",
  "mypy>=1.0",
  "bandit",
  "safety",
  "build",
  "twine",
  "types-PyYAML",
  "types-requests",
  "types-aiofiles",
]

[project.scripts]
platform-api = "entities_api.__main__:root"

[project.urls]
Homepage = "https://github.com/project-david-ai/platform"
Documentation = "https://docs.projectdavid.co.uk/docs"
Changelog = "https://github.com/project-david-ai/platform/blob/master/CHANGELOG.md"

[tool.setuptools]
package-dir = { "" = "src/api" }

[tool.setuptools.packages.find]
where = ["src/api"]
exclude = ["tests", "docs"]

# ── Unified Formatting (SDK Parity) ───────────────────────────────────────
[tool.black]
line-length = 88
target-version = ["py310", "py311", "py312"]

[tool.isort]
profile = "black"
line_length = 88
known_third_party = ["pytest", "docker", "ray", "redis"]
skip_glob = ["tests/integration/*"]
skip = ["src/api/training/worker.py"]


[tool.ruff]
line-length = 88

[tool.ruff.lint.per-file-ignores]
"src/api/entities_api/daemons/*.py" = ["E402"]
"src/api/entities_api/cli/*.py"     = ["E402"]
"migrations/env.py"                 = ["E402"]
"src/api/training/unsloth_train.py" = ["E402"]

[tool.pytest.ini_options]
addopts = "--ignore=tests/integration"
pythonpath = ["src/api"]