[project] name = "memrelay" version = "0.1.0" description = "Self-hosted memory relay for AI clients" readme = "README.md" requires-python = ">=3.12,<3.13" license = "AGPL-3.0-only" dependencies = [ "alembic==1.16.4", "argon2-cffi==25.1.0", "cryptography==45.0.6", "croniter==6.0.0", "fastapi==0.116.1", "fastmcp==3.3.1", "httpx==0.28.1", "odfpy==1.4.1", "openpyxl==3.1.5", "pillow==11.3.0", "pypdf==5.9.0", "pyyaml==6.0.2", "pydantic-settings==2.10.1", "python-multipart==0.0.26", "python-docx==1.2.0", "python-pptx==1.0.2", "sqlalchemy==2.0.43", "uvicorn[standard]==0.35.0", "xlrd==2.0.2", ] [dependency-groups] dev = [ "pytest==8.4.1", "pytest-cov==6.2.1", "pytest-mock==3.14.1", "ruff==0.12.10", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/memrelay"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-q --strict-markers" [tool.ruff] target-version = "py312" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"]