[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"]