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>
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from .context import build_context
|
|
from .printing import print_header, print_named_mirrors
|
|
from .types import Repository
|
|
|
|
|
|
def list_mirrors(
|
|
selected_repos: list[Repository],
|
|
repositories_base_dir: str,
|
|
all_repos: list[Repository],
|
|
source: str = "all",
|
|
) -> None:
|
|
"""
|
|
List mirrors for the selected repositories.
|
|
|
|
source:
|
|
- "config" → only mirrors from configuration
|
|
- "file" → only mirrors from MIRRORS file
|
|
- "resolved" → merged view (config + file, file wins)
|
|
- "all" → show config + file + resolved
|
|
"""
|
|
for repo in selected_repos:
|
|
ctx = build_context(repo, repositories_base_dir, all_repos)
|
|
resolved_m = ctx.resolved_mirrors
|
|
|
|
print_header("[MIRROR]", ctx)
|
|
|
|
if source in ("config", "all"):
|
|
print_named_mirrors("config mirrors", ctx.config_mirrors)
|
|
if source == "config":
|
|
print()
|
|
continue # next repo
|
|
|
|
if source in ("file", "all"):
|
|
print_named_mirrors("MIRRORS file", ctx.file_mirrors)
|
|
if source == "file":
|
|
print()
|
|
continue # next repo
|
|
|
|
if source in ("resolved", "all"):
|
|
print_named_mirrors("resolved mirrors", resolved_m)
|
|
|
|
print()
|