mirror of
https://github.com/kuhyx/steam-backlog-enforcer.git
synced 2026-11-10 20:27:03 +01:00
`requires-python` and the CI pin already said 3.14, but ruff, mypy and pylint were still grading against 3.10 -- three tools judging an interpreter nothing runs any more, and ruff withholding the pyupgrade fixes that only become safe at the newer target. `pin_ci_python.py` rewrites exactly these three knobs. What the stale target was hiding: `datetime.timezone.utc` where `datetime.UTC` is now correct (UP017), `socket.timeout` where `TimeoutError` is (UP041), deprecated `typing` imports (UP035), PEP 695 `type` aliases (UP040), and ruff's stable formatter applying PEP 758 -- `except (A, B):` becomes `except A, B:`. That last one makes the source 3.14-only at the syntax level, which is what `requires-python = ">=3.14"` already promised; kuhy chose it deliberately over holding ruff a release back (2026-08-29). ruff, ruff-format, mypy --strict and pylint all clean at the new target. The two modified web/ TypeScript files are another session's in-flight work and are deliberately left unstaged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SfnJmxxsZ534AKk16rC2Gr
35 lines
1001 B
Python
35 lines
1001 B
Python
"""Running the privileged commands a playtime block needs.
|
|
|
|
One helper, shared by the mount side and the process-kill side, so the
|
|
"log the failure and carry on" policy is written once.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
import subprocess
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def _run(cmd: list[str]) -> bool:
|
|
"""Run a privileged command, reporting success.
|
|
|
|
The single subprocess seam in this module, so tests can assert on exact
|
|
argv without ever executing ``mount``.
|
|
|
|
Args:
|
|
cmd: Argument vector to execute.
|
|
|
|
Returns:
|
|
True if the command exited zero.
|
|
"""
|
|
try:
|
|
result = subprocess.run(cmd, capture_output=True, check=False, timeout=15)
|
|
except OSError, subprocess.SubprocessError:
|
|
logger.exception("Playtime block command failed: %s", cmd)
|
|
return False
|
|
if result.returncode != 0:
|
|
logger.warning("Playtime block command exited %d: %s", result.returncode, cmd)
|
|
return result.returncode == 0
|