Update app.py
Browse files
app.py
CHANGED
|
@@ -227,7 +227,7 @@ def _warmup_thread(models: List[str]):
|
|
| 227 |
t_global = time.time()
|
| 228 |
_log_warmup(f"[JOB] start • {len(models)} dépôts")
|
| 229 |
|
| 230 |
-
|
| 231 |
if warmup_stop.is_set():
|
| 232 |
_log_warmup("[STOP] Arrêt demandé — fin du job après ce point")
|
| 233 |
break
|
|
@@ -237,7 +237,8 @@ def _warmup_thread(models: List[str]):
|
|
| 237 |
warmup_state["current"] = repo
|
| 238 |
warmup_state["percent"] = int((i / max(1, len(models))) * 100)
|
| 239 |
|
| 240 |
-
|
|
|
|
| 241 |
with warmup_lock:
|
| 242 |
if res == "ok":
|
| 243 |
ok_count += 1
|
|
@@ -249,24 +250,23 @@ def _warmup_thread(models: List[str]):
|
|
| 249 |
warmup_state["failed_repos"].append(repo)
|
| 250 |
elif res == "stopped":
|
| 251 |
_log_warmup("[STOP] Fin anticipée — demande reçue pendant le run")
|
|
|
|
| 252 |
break
|
| 253 |
|
| 254 |
warmup_state["percent"] = int(((i + 1) / max(1, len(models))) * 100)
|
| 255 |
|
| 256 |
-
|
| 257 |
if warmup_stop.is_set():
|
| 258 |
_log_warmup("[STOP] Fin anticipée — demande reçue pendant le run")
|
| 259 |
break
|
| 260 |
|
| 261 |
-
|
| 262 |
-
|
| 263 |
warmup_state["done"] = True
|
| 264 |
warmup_state["running"] = False
|
| 265 |
warmup_state["ok_count"] = ok_count
|
| 266 |
warmup_state["finished_at"] = time.time()
|
| 267 |
-
_log_warmup(f"[JOB] done • {ok_count}/{len(models)} • {time.time()-t_global:.1f}s")
|
| 268 |
-
|
| 269 |
|
|
|
|
| 270 |
# <<<< HUGINFACE PATCH: WARMUP STATE+HELPERS END >>>>
|
| 271 |
# ---------- Helpers ----------
|
| 272 |
|
|
@@ -1055,15 +1055,13 @@ const warmupCloseBtn = document.getElementById('warmupCloseBtn');
|
|
| 1055 |
|
| 1056 |
// Helpers popup
|
| 1057 |
function buildFinalSummary(s){
|
| 1058 |
-
|
| 1059 |
-
const okL = Array.isArray(s.ok_repos) ? s.ok_repos : [];
|
| 1060 |
-
const failL = Array.isArray(s.failed_repos) ? s.failed_repos : [];
|
| 1061 |
const cacheL = Array.isArray(s.cache_repos) ? s.cache_repos : [];
|
| 1062 |
const dlL = Array.isArray(s.downloaded_repos) ? s.downloaded_repos : [];
|
| 1063 |
-
const
|
| 1064 |
|
| 1065 |
const lines = [];
|
| 1066 |
-
lines.push(`Terminé — demandés: ${
|
| 1067 |
lines.push("");
|
| 1068 |
|
| 1069 |
lines.push("Demandés : " + asked.length);
|
|
@@ -1082,13 +1080,12 @@ function buildFinalSummary(s){
|
|
| 1082 |
if (failL.length) lines.push(failL.map(m=>' • '+m).join('\n'));
|
| 1083 |
|
| 1084 |
return lines.join('\n');
|
|
|
|
| 1085 |
|
| 1086 |
// >>> C2_BEGIN warmup_preface
|
| 1087 |
let warmupPreface = '';
|
| 1088 |
// >>> C2_END warmup_preface
|
| 1089 |
|
| 1090 |
-
|
| 1091 |
-
|
| 1092 |
// >>> A2B2P3_BEGIN warmup_defaults
|
| 1093 |
// Modèles par défaut si l’utilisateur laisse la saisie vide.
|
| 1094 |
// (Liste “safe” validée chez toi ; on pourra l’étendre plus tard.)
|
|
|
|
| 227 |
t_global = time.time()
|
| 228 |
_log_warmup(f"[JOB] start • {len(models)} dépôts")
|
| 229 |
|
| 230 |
+
for i, repo in enumerate(models):
|
| 231 |
if warmup_stop.is_set():
|
| 232 |
_log_warmup("[STOP] Arrêt demandé — fin du job après ce point")
|
| 233 |
break
|
|
|
|
| 237 |
warmup_state["current"] = repo
|
| 238 |
warmup_state["percent"] = int((i / max(1, len(models))) * 100)
|
| 239 |
|
| 240 |
+
res = _download_one(repo)
|
| 241 |
+
|
| 242 |
with warmup_lock:
|
| 243 |
if res == "ok":
|
| 244 |
ok_count += 1
|
|
|
|
| 250 |
warmup_state["failed_repos"].append(repo)
|
| 251 |
elif res == "stopped":
|
| 252 |
_log_warmup("[STOP] Fin anticipée — demande reçue pendant le run")
|
| 253 |
+
warmup_state["percent"] = int(((i + 1) / max(1, len(models))) * 100)
|
| 254 |
break
|
| 255 |
|
| 256 |
warmup_state["percent"] = int(((i + 1) / max(1, len(models))) * 100)
|
| 257 |
|
|
|
|
| 258 |
if warmup_stop.is_set():
|
| 259 |
_log_warmup("[STOP] Fin anticipée — demande reçue pendant le run")
|
| 260 |
break
|
| 261 |
|
| 262 |
+
with warmup_lock:
|
| 263 |
+
warmup_state["percent"] = 100
|
| 264 |
warmup_state["done"] = True
|
| 265 |
warmup_state["running"] = False
|
| 266 |
warmup_state["ok_count"] = ok_count
|
| 267 |
warmup_state["finished_at"] = time.time()
|
|
|
|
|
|
|
| 268 |
|
| 269 |
+
_log_warmup(f"[JOB] done • {ok_count}/{len(models)} • {time.time()-t_global:.1f}s")
|
| 270 |
# <<<< HUGINFACE PATCH: WARMUP STATE+HELPERS END >>>>
|
| 271 |
# ---------- Helpers ----------
|
| 272 |
|
|
|
|
| 1055 |
|
| 1056 |
// Helpers popup
|
| 1057 |
function buildFinalSummary(s){
|
| 1058 |
+
const asked = Array.isArray(s.asked) ? s.asked : [];
|
|
|
|
|
|
|
| 1059 |
const cacheL = Array.isArray(s.cache_repos) ? s.cache_repos : [];
|
| 1060 |
const dlL = Array.isArray(s.downloaded_repos) ? s.downloaded_repos : [];
|
| 1061 |
+
const failL = Array.isArray(s.failed_repos) ? s.failed_repos : [];
|
| 1062 |
|
| 1063 |
const lines = [];
|
| 1064 |
+
lines.push(`Terminé — demandés: ${asked.length} • ⬛ cache: ${cacheL.length} • ✅ téléchargés: ${dlL.length} • ❌ échecs: ${failL.length}`);
|
| 1065 |
lines.push("");
|
| 1066 |
|
| 1067 |
lines.push("Demandés : " + asked.length);
|
|
|
|
| 1080 |
if (failL.length) lines.push(failL.map(m=>' • '+m).join('\n'));
|
| 1081 |
|
| 1082 |
return lines.join('\n');
|
| 1083 |
+
}
|
| 1084 |
|
| 1085 |
// >>> C2_BEGIN warmup_preface
|
| 1086 |
let warmupPreface = '';
|
| 1087 |
// >>> C2_END warmup_preface
|
| 1088 |
|
|
|
|
|
|
|
| 1089 |
// >>> A2B2P3_BEGIN warmup_defaults
|
| 1090 |
// Modèles par défaut si l’utilisateur laisse la saisie vide.
|
| 1091 |
// (Liste “safe” validée chez toi ; on pourra l’étendre plus tard.)
|