matplotlib
28 строк · 917.0 Байт
1#!/usr/bin/env python3
2"""
3Generate matplotlirc for installs.
4
5If packagers want to change the default backend, insert a `#backend: ...` line.
6Otherwise, use the default `##backend: Agg` which has no effect even after
7decommenting, which allows _auto_backend_sentinel to be filled in at import
8time.
9"""
10
11import sys12from pathlib import Path13
14
15if len(sys.argv) != 4:16raise SystemExit('usage: {sys.argv[0]} <input> <output> <backend>')17
18input = Path(sys.argv[1])19output = Path(sys.argv[2])20backend = sys.argv[3]21
22template_lines = input.read_text(encoding="utf-8").splitlines(True)23backend_line_idx, = ( # Also asserts that there is a single such line.24idx for idx, line in enumerate(template_lines)25if "#backend:" in line)26template_lines[backend_line_idx] = (27f"#backend: {backend}\n" if backend not in ['', 'auto'] else "##backend: Agg\n")28output.write_text("".join(template_lines), encoding="utf-8")29