SPB Git

Repository Public Research preview

verif_durees.py 1.6 KB 28 lines python

1#!/usr/bin/env python32"""Vérifie que les durées de SCRIPT_PROFESSEUR.md totalisent 180 min (blocs + pause)."""3import re, sys, pathlib4p = pathlib.Path(__file__).with_name("SCRIPT_PROFESSEUR.md")5txt = p.read_text(encoding="utf-8")6blocs = {"Ouverture (p. 1–2)": (1, 2), "Bloc 1 (p. 3–17)": (3, 17), "Bloc 2 (p. 18–31)": (18, 31), "Bloc 3 (p. 32–50)": (32, 50),7         "Pause": None, "Bloc 4 (p. 51–68)": (51, 68), "Bloc 5 (p. 69–81)": (69, 81), "Bloc 6 (p. 82–116)": (82, 116)}8tot = {k: 0 for k in blocs}; n = {k: 0 for k in blocs}; cur = None9for line in txt.splitlines():10    m = re.match(r"### p\. (\d+)", line)11    if m:12        pg = int(m.group(1)); cur = next(k for k, v in blocs.items() if v and v[0] <= pg <= v[1])13    elif line.startswith("### Pause"):14        cur = "Pause"15    d = re.match(r"\*\*Durée\*\* : (\d+):(\d{2})", line)16    if d and cur:17        tot[cur] += int(d.group(1)) * 60 + int(d.group(2)); n[cur] += 118cible = {"Ouverture (p. 1–2)": "—", "Bloc 1 (p. 3–17)": "25", "Bloc 2 (p. 18–31)": "30", "Bloc 3 (p. 32–50)": "35", "Pause": "—",19         "Bloc 4 (p. 51–68)": "30", "Bloc 5 (p. 69–81)": "25", "Bloc 6 (p. 82–116)": "35"}20print("| Bloc | Entrées | Durée du script | Cible du deck (hors pause) |\n|---|---:|---:|---:|")21T = 022for k in blocs:23    s = tot[k]; T += s; print(f"| {k} | {n[k]} | {s//60}:{s%60:02d} | {cible[k]} |")24print(f"| **Total** | {sum(n.values())} | **{T//60}:{T%60:02d}** | 180 |")25ok = abs(T - 180 * 60) <= 5 * 6026print(f"\nTotal = {T/60:.1f} min → {'dans la tolérance 180 ± 5' if ok else 'HORS TOLÉRANCE'}")27sys.exit(0 if ok else 1)28
Files main
Menu

Theme