[tool.poe.tasks] fmt = "ruff format ${PWD}" lint = "ruff check --fix ${PWD}" check = "basedpyright ${PWD}" test = "pytest ${PWD} --alluredir allure-results --driver chrome" all = [ {ref="fmt"}, {ref="lint"}, {ref="check"}, {ref="test"} ] "ci:fmt" = "ruff format --check ${PWD}" # fail if not formatted "ci:lint" = "ruff check ${PWD}" [tool.poe.tasks.coverage] cmd = "pytest --cov-config=${PWD}/.coveragerc --cov --cov-report=html --cov-report=term-missing --alluredir allure-results" cwd = "${POE_PWD}" [project] name = "sshecret" version = "0.1.0" description = "A simple secret manager with an SSH server." readme = "README.md" authors = [ { name = "Allan Eising", email = "allan@eising.dk" } ] requires-python = ">=3.13" dependencies = [ "aiosqlite>=0.21.0", "asyncssh>=2.20.0", "click>=8.1.8", "cryptography>=44.0.2", "fastapi[standard]>=0.115.12", "greenlet>=3.2.2", "httpx>=0.28.1", "jinja2>=3.1.6", "pydantic>=2.10.6", "pydantic-settings>=2.8.1", "pykeepass>=4.1.1.post1", "pytest-asyncio>=0.26.0", "pytest-cov>=6.1.1", "pytest-selenium>=4.1.0", "python-dotenv>=1.0.1", "python-json-logger>=3.3.0", "sqlalchemy[asyncio]>=2.0.40", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.basedpyright] venvPath = "." venv = ".venv" include = ["src"] exclude = ["**/migrations"] reportUnusedCallResult = false reportExplicitAny = false reportIncompatibleVariableOverride = false executionEnvironments = [ { root = "packages/sshecret-backend" }, { root = "packages/sshecret-sshd" }, { root = "packages/sshecret-admin" }, ] [tool.uv.workspace] members = ["packages/sshecret-backend", "packages/sshecret-sshd", "packages/sshecret-admin"] [dependency-groups] dev = [ "construct-typing>=0.6.2", "mypy>=1.15.0", "poethepoet>=0.34.0", "python-dotenv>=1.0.1", ] test = [ "allure-pytest>=2.14.2", "coverage>=7.8.0", "pytest>=8.3.5", "pytest-asyncio>=0.26.0", "pytest-cov>=6.1.1", "pytest-selenium>=4.1.0", "requests>=2.32.3", "robotframework>=7.2.2", "selenium>=4.32.0", ]