@@ -55,9 +55,10 @@ target-version = "py311"
5555line-length = 110
5656
5757[tool .ruff .lint ]
58- select = [" E" , " F" , " W" , " I" , " UP" , " B" , " SIM" , " RUF" ]
58+ select = [" E" , " F" , " W" , " I" , " UP" , " B" , " S " , " SIM" , " RUF" ]
5959ignore = [
6060 " E501" , # line length handled by formatter
61+ " S110" , # try-except-pass is intentional for best-effort probe cleanup
6162 " SIM105" , # contextlib.suppress is less readable for async cleanup
6263 " RUF001" , # en-dash in strings is intentional
6364 " RUF002" , # en-dash in docstrings is intentional
@@ -66,7 +67,9 @@ ignore = [
6667]
6768
6869[tool .ruff .lint .per-file-ignores ]
69- "tests/*" = [" RUF059" ] # unused unpacked vars in tests are fine
70+ "tests/*" = [" S101" , " S108" , " RUF059" ] # asserts, /tmp paths, unused unpacked vars are fine in tests
71+ "tools/*" = [" S108" , " S603" , " S607" ] # /tmp paths, subprocess calls in CLI/dev tools
72+ "examples/*" = [" S105" , " S311" , " S603" , " S607" ] # demo devices: fake passwords, pseudo-random sensor data, subprocess
7073
7174[tool .ruff .lint .isort ]
7275known-first-party = [" dbgprobe_mcp_server" ]
0 commit comments