-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
40 lines (36 loc) · 1.31 KB
/
Copy pathpyproject.toml
File metadata and controls
40 lines (36 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[project]
name = "clientctl"
version = "0.1.1" # Single source of truth: config.VERSION (CI verifies match)
description = "Web-based control panel for a Linux client (KDE Plasma 6 / multi-distro)"
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.11"
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
addopts = "-q --strict-markers --tb=short"
filterwarnings = [
"ignore::DeprecationWarning:webauthn.*",
]
[tool.coverage.run]
source = ["config", "core", "routes", "utils"]
omit = [
"*/__init__.py",
"tests/*",
]
[tool.coverage.report]
show_missing = true
skip_covered = false
exclude_lines = [
"pragma: no cover",
"if __name__ == .__main__.:",
"raise NotImplementedError",
]
[tool.bandit]
# CI runs on these paths only — tests use assert/subprocess legitimately.
exclude_dirs = ["tests", ".venv", "examples"]
# B101 (assert) — fine in tests, won't be reached anyway thanks to exclude_dirs
# B404 (subprocess imp) — clientctl is a system control panel, subprocess is the tool
# B603 (subprocess no-shell) — we always use list-form, no shell=True
# B607 (partial path) — system tools (busctl, qdbus6, …) are intentionally invoked by name
skips = ["B101", "B404", "B603", "B607"]