Diffuser la qualité des dalles dans l'inventaire et la conserver sur la carte légère

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Antoine Jacquin
2026-09-27 15:29:06 +02:00
parent 473097257e
commit 3b4d106cc2
4 changed files with 58 additions and 0 deletions

View File

@ -305,6 +305,30 @@ def _remote_payload(force=False):
return payload
_SAFE_BASENAME = re.compile(r"^[A-Za-z0-9_.-]+$")
def _persist_remote_quality(output_dir, payload):
"""Recopie la table qualité amont en sidecars locaux.
L'encart qualité de l'export PDF lit toujours le disque local : la
carte autonome (amont éteint) garde ainsi les dernières valeurs connues.
Returns: nombre de sidecars (ré)écrits.
"""
from .quality import QUALITY_VERSION, write_quality
written = 0
for base, data in (payload.get("quality") or {}).items():
if (not isinstance(base, str) or not _SAFE_BASENAME.match(base)
or base.startswith(".") or not isinstance(data, dict)
or data.get("version") != QUALITY_VERSION):
continue
try:
written += bool(write_quality(output_dir, base, data))
except OSError as e:
logger.debug(f"Sidecar qualité non recopié ({base}) : {e}")
return written
def _remote_index(output_dir, force=False):
"""Inventaire construit depuis l'amont : sources non encore rapatriées.
@ -320,6 +344,7 @@ def _remote_index(output_dir, force=False):
and _remote_cache.get("built") is payload):
return _remote_cache["index"]
output_dir = Path(output_dir)
_persist_remote_quality(output_dir, payload)
layers = {}
for entry in payload["tiles"]:
col, row = entry.get("col"), entry.get("row")