Repository-wide mechanical cleanup so `ruff check src tests` has a chance of passing; no behavioural changes. - Add `from __future__ import annotations` where PEP 604 unions are used. This has to come first: pyproject declares requires-python >= 3.9, where `X | None` is not evaluable at runtime unless annotations are stringified. - Replace typing.List/Dict/Tuple/Set with the builtin generics and Optional[X] with X | None, then drop the imports that became unused. The four actions/*/__init__.py files needed this by hand because ruff leaves unused imports in __init__.py alone (possible re-exports). - Strip shebangs from 72 importable modules. None of them are executable or invoked directly; the entry points are console_scripts and runpy. - Flatten nested `with` blocks, collapse needless-bool returns, and apply the remaining mechanical ruff fixes (PIE810, FLY002, PERF102, FURB192, RUF059, I001). - Pass check=False explicitly to the four subprocess.run() calls that inspect returncode themselves. That is the existing default. Two rewrites are visible to mocks, so their tests move with them: subprocess.run(stdout=PIPE, stderr=PIPE) became capture_output=True, and open(path, "r", ...) lost the redundant mode. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
26 lines
579 B
Python
26 lines
579 B
Python
import subprocess
|
|
|
|
|
|
def run(cmd, *, cwd=None, env=None, shell=False) -> str:
|
|
proc = subprocess.run(
|
|
cmd,
|
|
cwd=cwd,
|
|
env=env,
|
|
shell=shell,
|
|
text=True,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT,
|
|
check=False,
|
|
)
|
|
|
|
print("----- BEGIN COMMAND -----")
|
|
print(cmd if isinstance(cmd, str) else " ".join(cmd))
|
|
print("----- OUTPUT -----")
|
|
print(proc.stdout.rstrip())
|
|
print("----- END COMMAND -----")
|
|
|
|
if proc.returncode != 0:
|
|
raise AssertionError(proc.stdout)
|
|
|
|
return proc.stdout
|