[build-system] requires = ["setuptools>=77", "wheel"] build-backend = "setuptools.build_meta" [project] name = "presenton-backend" version = "0.1.0" description = "Add your description here" license = "Apache-2.0" license-files = ["LICENSE", "NOTICE"] requires-python = ">=3.11,<3.12" dependencies = [ "alembic>=1.14.0", "aiohttp>=3.12.15", "aiomysql>=0.2.0", "aiosqlite>=0.21.0", "asyncpg>=0.30.0", "dirtyjson>=1.0.8", "fastapi[standard]>=0.116.1", "fastembed-vectorstore>=0.5.2", "fastmcp>=2.11.0", "greenlet>=3.0.3", "google-genai>=1.28.0", "mem0ai[nlp]>=0.1.115", "nltk>=3.9.1", "openai>=1.98.0", "pathvalidate>=3.3.1", "pdfplumber>=0.11.7", "pillow>=12.2.0", "psycopg[binary]>=3.2.0", "sqlmodel>=0.0.24", "llmai==0.2.8", "jsonschema>=4.26.0", "python-pptx>=1.0.2", "fonttools>=4.55.0", ] [tool.uv] index-strategy = "unsafe-best-match" [tool.setuptools.packages.find] where = ["."] include = [ "api*", "enums*", "models*", "services*", "constants*", "utils*", "templates*", ] [tool.pyright] typeCheckingMode = "off" [dependency-groups] dev = [ "pytest>=9.0.3", "pytest-cov>=7.1.0", ] [tool.pytest.ini_options] testpaths = ["tests"] # Line coverage defaults (omit non-runtime / generated paths). Branch coverage doubles # the work for marginal signal; optimize for deterministic statement coverage runs. [tool.coverage.run] branch = false relative_files = true source = ["."] omit = [ "tests/*", "**/.venv/*", "**/venv/*", "alembic/versions/*", "scripts/*", ] [tool.coverage.report] precision = 1 skip_empty = true show_missing = true