Promouvoir une dalle voisine déjà téléchargée au lieu de la retélécharger, nettoyer les doublons existants
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@ -216,6 +216,7 @@ def fetch_tiles(input_dir, specs, output_dir=None, only_viz=None, resolutions=(0
|
||||
Returns:
|
||||
Liste des chemins téléchargés.
|
||||
"""
|
||||
from .dtm import EDGE_NEIGHBORS_DIRNAME
|
||||
input_dir = Path(input_dir)
|
||||
complete = None
|
||||
if output_dir is not None and only_viz and not force:
|
||||
@ -223,6 +224,10 @@ def fetch_tiles(input_dir, specs, output_dir=None, only_viz=None, resolutions=(0
|
||||
keys = [step_to_keyword(v) for v in only_viz]
|
||||
complete = cells_with_all_viz(Path(output_dir) / "visualisations",
|
||||
keys, resolutions)
|
||||
# Explicite : jamais de promotion quand on télécharge directement DANS
|
||||
# edge_neighbors/ (appel de _fetch_edge_neighbors avec input_dir=edge_dir)
|
||||
# — sinon une dalle voisine pourrait se retrouver déplacée vers elle-même.
|
||||
is_edge_dir = input_dir.name == EDGE_NEIGHBORS_DIRNAME
|
||||
downloaded = []
|
||||
for col, row in specs:
|
||||
name = tile_filename(col, row)
|
||||
@ -232,6 +237,19 @@ def fetch_tiles(input_dir, specs, output_dir=None, only_viz=None, resolutions=(0
|
||||
logger.info(f" {name} : déjà présent dans input/ — aucun téléchargement")
|
||||
_report_download(output_dir, tile, "skip", "déjà dans input/")
|
||||
continue
|
||||
if not is_edge_dir:
|
||||
# dest.exists() ci-dessus ne teste que le nom exact : un ".part"
|
||||
# voisin n'y correspond jamais, donc .exists() suffit à exclure
|
||||
# un téléchargement voisin encore en cours.
|
||||
neighbor_copy = input_dir / EDGE_NEIGHBORS_DIRNAME / name
|
||||
if neighbor_copy.exists():
|
||||
import os
|
||||
os.replace(neighbor_copy, dest)
|
||||
logger.info(f" {name} : déjà téléchargée comme voisine "
|
||||
f"— déplacée dans input/")
|
||||
_report_download(output_dir, tile, "skip",
|
||||
"déjà téléchargée comme voisine — déplacée dans input/")
|
||||
continue
|
||||
if output_dir is not None and not force:
|
||||
if complete is not None:
|
||||
if (col, row) in complete:
|
||||
|
||||
Reference in New Issue
Block a user