pyproject.toml
Rama main · réplica de lectura del repositorio original.
[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"]