[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"}, ] requires-python = ">=3.11" dependencies = [ "fastapi[standard]>=0.129.0", "websockets>=16.0", "webauthn>=2.7.1", "base64url>=1.1.1", "uuid7-standard>=1.1.0", "pyjwt[crypto]>=2.11.0", "jsondiff>=2.2.1", "msgspec>=0.20.0", "fastapi-vue>=1.1.0", "ua-parser[regex]>=1.0.1", ] [dependency-groups] dev = [ "coverage>=7.13.4", "httpx>=0.28.1", "pytest>=9.0.2", "pytest-asyncio>=1.3.0", "pytest-cov>=7.0.0", "ruff>=0.15.1", ] [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" [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"] [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