Adding some stuff for the new structure to work with my system.
Some checks failed
Tests / Build and Push CICD Base Image (push) Failing after 37m18s
Tests / Build and Push CICD Complete Image (push) Has been cancelled
Tests / Trailing Whitespace Check (push) Has been cancelled
Tests / End of File Check (push) Has been cancelled
Tests / YAML Syntax Check (push) Has been cancelled
Tests / TOML Syntax Check (push) Has been cancelled
Tests / Mixed Line Ending Check (push) Has been cancelled
Tests / TOML Formatting Check (push) Has been cancelled
Tests / Ruff Linting (push) Has been cancelled
Tests / Ruff Format Check (push) Has been cancelled
Tests / Pyright Type Check (push) Has been cancelled
Tests / Darglint Docstring Check (push) Has been cancelled
Tests / No Docstring Types Check (push) Has been cancelled
Tests / ESLint Check (push) Has been cancelled
Tests / Prettier Format Check (push) Has been cancelled
Tests / TypeScript Type Check (push) Has been cancelled
Tests / TSDoc Lint Check (push) Has been cancelled
Tests / Backend Tests (push) Has been cancelled
Tests / Frontend Tests (push) Has been cancelled
Tests / Backend Doctests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / End-to-End Tests (push) Has been cancelled
Renovate Dependency Updates / Renovate Dependencies (push) Failing after 16m22s

Signed-off-by: Cliff Hill <xlorep@darkhelm.org>
This commit is contained in:
2026-04-08 09:45:49 -04:00
parent 18dc1c887a
commit 5d74dd8d8f
5 changed files with 103 additions and 32 deletions

View File

@@ -6,7 +6,7 @@ requires = ["hatchling"]
dev = [
"ruff>=0.6.0",
"pyright>=1.1.380",
"darglint>=1.8.1",
"pydoclint>=0.3.8",
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.1.0",
@@ -66,11 +66,6 @@ omit = [
]
source = ["src"]
# Darglint configuration for backend
[tool.darglint]
docstring_style = "google"
strictness = "short"
[tool.hatch.build]
include = [
"src/backend/**/*.py",
@@ -83,6 +78,8 @@ packages = ["src/backend"]
[tool.hatch.version]
path = "src/backend/__init__.py"
[tool.poe]
[tool.poe.tasks]
build-cicd = {shell = "./scripts/build-cicd-local.sh", help = "Build both CI/CD images"}
# === Docker CI/CD Image Tasks ===
@@ -124,7 +121,7 @@ dev-logs = {shell = "docker compose -f compose.dev.yml logs -f", help = "Follow
dev-restart = {shell = "docker compose -f compose.dev.yml restart", help = "Restart development environment"}
# === Documentation Tasks ===
docs-backend = {shell = "cd backend && uv run xdoctest --module backend", help = "Run backend docstring tests"}
docs-check = {shell = "cd backend && uv run darglint backend/", help = "Check docstring quality"}
docs-check = {shell = "cd backend && uv run pydoclint --config=pyproject.toml src/", help = "Check docstring quality"}
format = ["format-backend", "format-frontend"]
# === Code Formatting Tasks ===
format-backend = {shell = "cd backend && uv run ruff format .", help = "Format backend Python code"}
@@ -185,6 +182,14 @@ type-check-backend = {shell = "cd backend && uv run pyright .", help = "Type che
type-check-frontend = {shell = "cd frontend && yarn type-check", help = "Type check frontend TypeScript code"}
type-check-parallel = {shell = "poe type-check-backend & poe type-check-frontend & wait", help = "Run type checking in parallel for speed"}
# Pydoclint configuration for backend
[tool.pydoclint]
arg-type-hints-in-docstring = false
arg-type-hints-in-signature = true
check-return-types = false
check-yield-types = false
style = "google"
[tool.pytest.ini_options]
addopts = [
"--strict-markers",

61
backend/uv.lock generated
View File

@@ -195,15 +195,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/5f/04/642c1d8a448ae5ea1369eac8495740a79eb4e581a9fb0cbdce56bbf56da1/coverage-7.11.0-py3-none-any.whl", hash = "sha256:4b7589765348d78fb4e5fb6ea35d07564e387da2fc5efff62e0222971f155f68", size = 207761, upload-time = "2025-10-15T15:15:06.439Z" },
]
[[package]]
name = "darglint"
version = "1.8.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d4/2c/86e8549e349388c18ca8a4ff8661bb5347da550f598656d32a98eaaf91cc/darglint-1.8.1.tar.gz", hash = "sha256:080d5106df149b199822e7ee7deb9c012b49891538f14a11be681044f0bb20da", size = 74435, upload-time = "2021-10-18T03:40:37.283Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/69/28/85d1e0396d64422c5218d68e5cdcc53153aa8a2c83c7dbc3ee1502adf3a1/darglint-1.8.1-py3-none-any.whl", hash = "sha256:5ae11c259c17b0701618a20c3da343a3eb98b3bc4b5a83d31cdd94f5ebdced8d", size = 120767, upload-time = "2021-10-18T03:40:35.034Z" },
]
[[package]]
name = "distlib"
version = "0.4.0"
@@ -213,6 +204,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" },
]
[[package]]
name = "docstring-parser-fork"
version = "0.0.14"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/66/bf/27f9cab2f0cd1d17a4420572088bbc19f36d726fbcf165edf226a8926dbc/docstring_parser_fork-0.0.14.tar.gz", hash = "sha256:a2743a63d8d36c09650594f7b4ab5b2758fee8629dcf794d1b221b23179baa5c", size = 34551, upload-time = "2025-09-07T17:27:38.272Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/bf/50/98b146aea0f1cd7531d25f12bea69fa9ce8d1662124f93fb30dc4511b65e/docstring_parser_fork-0.0.14-py3-none-any.whl", hash = "sha256:4c544f234ef2cc2749a3df32b70c437d77888b1099143a1ad5454452c574b9af", size = 43063, upload-time = "2025-09-07T17:27:37.012Z" },
]
[[package]]
name = "fastapi"
version = "0.120.2"
@@ -336,6 +336,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
]
[[package]]
name = "pastel"
version = "0.2.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/76/f1/4594f5e0fcddb6953e5b8fe00da8c317b8b41b547e2b3ae2da7512943c62/pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d", size = 7555, upload-time = "2020-09-16T19:21:12.43Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/aa/18/a8444036c6dd65ba3624c63b734d3ba95ba63ace513078e1580590075d21/pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364", size = 5955, upload-time = "2020-09-16T19:21:11.409Z" },
]
[[package]]
name = "pathspec"
version = "0.12.1"
@@ -365,10 +374,11 @@ dependencies = [
[package.dev-dependencies]
dev = [
{ name = "darglint" },
{ name = "httpx" },
{ name = "language-formatters-pre-commit-hooks" },
{ name = "poethepoet" },
{ name = "pre-commit" },
{ name = "pydoclint" },
{ name = "pyright" },
{ name = "pytest" },
{ name = "pytest-asyncio" },
@@ -390,10 +400,11 @@ requires-dist = [
[package.metadata.requires-dev]
dev = [
{ name = "darglint", specifier = ">=1.8.1" },
{ name = "httpx", specifier = ">=0.25.0" },
{ name = "language-formatters-pre-commit-hooks", specifier = ">=2.14.0" },
{ name = "poethepoet", specifier = ">=0.24.0" },
{ name = "pre-commit", specifier = ">=3.0.0" },
{ name = "pydoclint", specifier = ">=0.3.8" },
{ name = "pyright", specifier = ">=1.1.380" },
{ name = "pytest", specifier = ">=7.4.0" },
{ name = "pytest-asyncio", specifier = ">=0.21.0" },
@@ -416,6 +427,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
]
[[package]]
name = "poethepoet"
version = "0.41.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pastel" },
{ name = "pyyaml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a8/b9/fa92286560f70eaa40d473ea48376d20c6c21f63627d33c6bb1c5e385175/poethepoet-0.41.0.tar.gz", hash = "sha256:dcaad621dc061f6a90b17d091bebb9ca043d67bfe9bd6aa4185aea3ebf7ff3e6", size = 87780, upload-time = "2026-02-08T20:45:36.061Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5d/5e/0b83e0222ce5921b3f9081eeca8c6fb3e1cfd5ca0d06338adf93b28ce061/poethepoet-0.41.0-py3-none-any.whl", hash = "sha256:4bab9fd8271664c5d21407e8f12827daeb6aa484dc6cc7620f0c3b4e62b42ee4", size = 113590, upload-time = "2026-02-08T20:45:34.697Z" },
]
[[package]]
name = "pre-commit"
version = "4.3.0"
@@ -496,6 +520,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897, upload-time = "2025-10-14T10:22:13.444Z" },
]
[[package]]
name = "pydoclint"
version = "0.8.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" },
{ name = "docstring-parser-fork" },
]
sdist = { url = "https://files.pythonhosted.org/packages/70/58/bb3c7edd2bd06b07d9bbb494e52e2d2d6d53405b166aac531b1a27cef972/pydoclint-0.8.3.tar.gz", hash = "sha256:0c69c0ed92c6f6b5aec2a14371bbd9e0a77980da8e2fa0f708092aa06b3b20b3", size = 186619, upload-time = "2025-11-26T06:53:43.361Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/87/6f/cc2b231dc78d8c3aaa674a676db190b8f8071c50134af8f8cf39b9b8e8df/pydoclint-0.8.3-py3-none-any.whl", hash = "sha256:5fc9b82d0d515afce0908cb70e8ff695a68b19042785c248c4f227ad66b4a164", size = 79075, upload-time = "2025-11-26T06:53:42.129Z" },
]
[[package]]
name = "pygments"
version = "2.19.2"
@@ -655,6 +692,8 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/6b/fa/3234f913fe9a6525a7b97c6dad1f51e72b917e6872e051a5e2ffd8b16fbb/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:70eda7703b8126f5e52fcf276e6c0f40b0d314674f896fc58c47b0aef2b9ae83", size = 137970, upload-time = "2025-09-22T19:51:09.472Z" },
{ url = "https://files.pythonhosted.org/packages/ef/ec/4edbf17ac2c87fa0845dd366ef8d5852b96eb58fcd65fc1ecf5fe27b4641/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a0cb71ccc6ef9ce36eecb6272c81afdc2f565950cdcec33ae8e6cd8f7fc86f27", size = 739639, upload-time = "2025-09-22T19:51:10.566Z" },
{ url = "https://files.pythonhosted.org/packages/15/18/b0e1fafe59051de9e79cdd431863b03593ecfa8341c110affad7c8121efc/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e7cb9ad1d525d40f7d87b6df7c0ff916a66bc52cb61b66ac1b2a16d0c1b07640", size = 764456, upload-time = "2025-09-22T19:51:11.736Z" },
{ url = "https://files.pythonhosted.org/packages/e7/cd/150fdb96b8fab27fe08d8a59fe67554568727981806e6bc2677a16081ec7/ruamel_yaml_clib-0.2.14-cp314-cp314-win32.whl", hash = "sha256:9b4104bf43ca0cd4e6f738cb86326a3b2f6eef00f417bd1e7efb7bdffe74c539", size = 102394, upload-time = "2025-11-14T21:57:36.703Z" },
{ url = "https://files.pythonhosted.org/packages/bd/e6/a3fa40084558c7e1dc9546385f22a93949c890a8b2e445b2ba43935f51da/ruamel_yaml_clib-0.2.14-cp314-cp314-win_amd64.whl", hash = "sha256:13997d7d354a9890ea1ec5937a219817464e5cc344805b37671562a401ca3008", size = 122673, upload-time = "2025-11-14T21:57:38.177Z" },
]
[[package]]