Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions catalog/snippets/configs/vscode-tasks-python.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@
}
},
{
// The clean-compile aggregator: format, then lint, then types - in order, no shell chaining.
"label": "Python Verify",
// The clean-compile aggregator - formats in place, then lints, then type-checks, in order (no shell
// chaining). Named "Format" (it mutates, like the sibling ".NET Format" task), not "Verify".
"label": "Python Format",
"dependsOrder": "sequence",
"dependsOn": [
"Ruff Format",
Expand Down
3 changes: 2 additions & 1 deletion spec/files.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
{ "path": "repo-config/develop.json", "intentRef": "repo-config/README.md", "appliesTo": "*" },
{ "path": "repo-config/main.json", "intentRef": "repo-config/README.md", "appliesTo": "*" },
{ "path": ".github/dependabot.yml", "appliesTo": "*" },
{ "path": ".vscode/tasks.json", "sections": ["clean-compile task group"], "reference": "catalog/snippets/configs/vscode-tasks.json", "appliesTo": ["csharp", "python"] },
{ "path": ".vscode/tasks.json", "sections": ["clean-compile task group"], "reference": "catalog/snippets/configs/vscode-tasks.json", "appliesTo": ["csharp"] },
{ "path": ".vscode/tasks.json", "sections": ["clean-compile task group"], "reference": "catalog/snippets/configs/vscode-tasks-python.json", "appliesTo": ["python"] },
{ "path": "codecov.yml", "reference": "catalog/snippets/configs/codecov.yml", "intentRef": "WORKFLOW.md", "appliesTo": ["csharp", "python"] },
{ "path": ".dockerignore", "appliesTo": ["docker"] },
{ "path": "Docker/README.md", "reference": "catalog/snippets/configs/docker-hub-readme.md", "appliesTo": ["docker"] }
Expand Down
3 changes: 2 additions & 1 deletion spec/project-types.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
{ "id": "python.pyright.config", "verdict": "intent", "assert": "pyright is configured and runs strict on first-party code (src or the integration package) - the strong typing baseline; third-party strictness is relaxed only where a dependency has no usable types.", "intentRef": "CODESTYLE.md" },
{ "id": "python.config.placement", "verdict": "letter", "assert": "ruff and pyright config live in pyproject.toml (canonical); standalone .ruff.toml / pyrightconfig.json is a drift finding. A Home Assistant integration is the exception - it follows home-assistant/core standalone-config conventions and is scored by ha.python.conventions instead.", "intentRef": "CODESTYLE.md" },
{ "id": "python.mypy.allowed", "verdict": "intent", "assert": "mypy is permitted as an additional type checker (not banned); required for a Home Assistant integration (platinum strict-typing). When used it runs in CI and the editor.", "intentRef": "CODESTYLE.md" },
{ "id": "python.coverage.codecov", "verdict": "letter", "assert": "The test job collects coverage (pytest --cov-report=xml) and uploads it to Codecov via codecov/codecov-action, best-effort (continue-on-error and fail_ci_if_error: false); CODECOV_TOKEN is stored in the repo actions secrets. Required for every Python repo with tests.", "intentRef": "WORKFLOW.md" }
{ "id": "python.coverage.codecov", "verdict": "letter", "assert": "The test job collects coverage (pytest --cov-report=xml) and uploads it to Codecov via codecov/codecov-action, best-effort (continue-on-error and fail_ci_if_error: false); CODECOV_TOKEN is stored in the repo actions secrets. Required for every Python repo with tests.", "intentRef": "WORKFLOW.md" },
{ "id": "python.uvlock.pinned", "verdict": "letter", "assert": "If the project uses uv (a committed uv.lock), the lockfile is pinned to LF in both .editorconfig ([uv.lock]) and .gitattributes (uv.lock text eol=lf); uv regenerates it LF on every platform, so a CRLF-default repo otherwise reds editorconfig-checker on every uv lock/sync. N/A for a non-uv Python repo (e.g. a Home Assistant integration on pip/requirements).", "intentRef": "AGENTS.md#line-endings" }
]
},
"console": {
Expand Down