[build-system] requires = ["hatchling", "hatch-vcs"] build-backend = "hatchling.build" [project] name = "paskia" dynamic = ["version"] description = "Passkey Auth made easy: all sites and APIs can be guarded even without any changes on the protected site." readme = "README.md" keywords = [ "forward_auth", "auth_request", "FastAPI" ] authors = [ {name = "Leo Vasanko"}, ] dependencies = [ "fastapi[standard]>=0.104.1", "websockets>=12.0", "webauthn>=1.11.1", "base64url>=1.0.0", "uuid7-standard>=1.0.0", "pyjwt>=2.8.0", "jsondiff>=2.2.1", "msgspec>=0.20.0", "aiofiles>=25.1.0", "fastapi-vue>=0.3.0", "ua-parser[regex]>=1.0.1", ] requires-python = ">=3.11" [project.urls] Homepage = "https://git.zi.fi/LeoVasanko/paskia" Repository = "https://github.com/LeoVasanko/paskia" [tool.hatch.version] source = "vcs" [tool.hatch.build.hooks.vcs] version-file = "paskia/_version.py" [project.optional-dependencies] dev = [ "ruff>=0.1.0", "coverage[toml]>=7.0.0", "pytest>=8.0.0", "pytest-asyncio>=0.24.0", "httpx>=0.27.0", ] [tool.coverage.run] source = ["paskia"] branch = true parallel = true sigterm = true [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "if __name__ == .__main__.:", ] show_missing = true [tool.coverage.html] directory = "coverage-html" [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" testpaths = ["tests"] filterwarnings = [ "ignore::DeprecationWarning", ] [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "UP", "PLC0415"] ignore = ["E501"] # Line too long isort.known-first-party = ["paskia"] [dependency-groups] dev = [ "coverage>=7.12.0", "httpx>=0.28.1", "pytest>=9.0.1", "pytest-asyncio>=1.3.0", "pytest-cov>=7.0.0", "ruff>=0.14.8", ] [project.scripts] paskia = "paskia.__main__:main" [tool.hatch.build] artifacts = ["paskia/frontend-build"] targets.sdist.hooks.custom.path = "scripts/build-frontend.py" packages = ["paskia"] only-packages = true