[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "keywarden" version = "0.1.0" description = "A lightweight, self-hosted SSH key management and access auditing platform." readme = "README.md" requires-python = ">=3.11" license = {text = "MIT"} authors = [ { name="George Wilkinson", email="admin@ntbx.io" } ] dependencies = [ "fastapi>=0.114", "uvicorn[standard]>=0.30", "SQLAlchemy[asyncio]>=2.0", "asyncpg>=0.29", "alembic>=1.13", "python-jose[cryptography]>=3.3", "passlib[argon2]>=1.7", "pydantic-settings>=2.4", "cryptography>=43", "structlog>=24", "prometheus-fastapi-instrumentator>=6.1" ] [project.optional-dependencies] dev = [ "pytest>=8.3", "httpx>=0.27", "ruff>=0.6", "black>=24.8", "mypy>=1.11" ] [tool.setuptools.packages.find] where = ["."] include = ["app*"] [tool.black] line-length = 88 target-version = ["py311"] [tool.ruff] line-length = 88 target-version = "py311" select = ["E", "F", "I"] ignore = ["E501"] # handled by black [tool.pytest.ini_options] minversion = "8.0" addopts = "-q" testpaths = ["tests"] [tool.mypy] python_version = "3.11" strict = true ignore_missing_imports = true