Voici la documentation : https://geoplateforme.pages.gpf-tech.ign.fr/documentation

Skip to content
Extraits de code Groupes Projets

Empêcher d'afficher les logs user en dehors du check de la structure de la livraison

Fusionnées Quy Thy Truong a demandé de fusionner chore/add-log-verbosity vers main
1 fichier
+ 35
21
Comparer les modifications
  • Côte à côte
  • En ligne
+ 35
21
@@ -30,11 +30,14 @@ logger = logging.getLogger(__name__)
# -- LOGIC
def get_struct_prefix_type(vector_datasources: list[gdal.Dataset]) -> dict:
def get_struct_prefix_type(
vector_datasources: list[gdal.Dataset], verbosity: bool = True
) -> dict:
"""Vérifie si la livraison est de type PREFIX.
Args:
vector_files (list[gdal.Dataset]): données vecteur lues par GDAL
verbosity (bool, optional): active les logs user. Defaults to True.
Returns:
dict: un dictionnaire contenant la couche `M_*` dans la clé "table_mission"
@@ -55,22 +58,28 @@ def get_struct_prefix_type(vector_datasources: list[gdal.Dataset]) -> dict:
structured_vector_layers["table_mission"] = vector_layers[1]
structured_vector_layers["table_cliches"] = vector_layers[0]
else:
logger.user_error(
f"Les noms de fichiers {vector_layers[0]} et {vector_layers[1]}"
" ne respectent pas une structure de type PREFIX "
" (rappel : le fichier mission doit être nommé M_* "
" et le fichier clichés doit être nommé C_*"
)
if verbosity:
logger.user_warning(
f"Les noms de fichiers {vector_layers[0]['layer_name']} "
f"et {vector_layers[1]['layer_name']}"
" ne respectent pas une structure de type PREFIX "
" (rappel : le fichier mission doit être nommé M_* "
" et le fichier clichés doit être nommé C_*"
)
return None
logger.user_info("La livraison est de type PREFIX")
if verbosity:
logger.user_info("La livraison est de type PREFIX")
return structured_vector_layers
def get_struct_generic_type(vector_datasource: list[gdal.Dataset]) -> dict:
def get_struct_generic_type(
vector_datasource: list[gdal.Dataset], verbose: bool = True
) -> dict:
"""Vérifie si la livraison est de type GENERIC.
Args:
vector_files (list): données vecteur lues par GDAL
verbosity (bool, optional): active les logs user. Defaults to True.
Returns:
dict: un dictionnaire contenant la couche `dataset` dans la clé "table_mission"
@@ -91,14 +100,17 @@ def get_struct_generic_type(vector_datasource: list[gdal.Dataset]) -> dict:
structured_vector_layers["table_mission"] = vector_layers[1]
structured_vector_layers["table_cliches"] = vector_layers[0]
else:
logger.user_error(
f"Les noms de fichiers {vector_layers[0]} et {vector_layers[1]}"
" ne respectent pas une structure de type GENERIC "
" (rappel : le fichier mission doit être dataset "
" et le fichier clichés doit être nommé image"
)
if verbose:
logger.user_warning(
f"Les noms de fichiers {vector_layers[0]['layer_name']} "
f"et {vector_layers[1]['layer_name']}"
" ne respectent pas une structure de type GENERIC "
" (rappel : le fichier mission doit être dataset "
" et le fichier clichés doit être nommé image"
)
return None
logger.user_info("La livraison est de type GENERIC")
if verbose:
logger.user_info("La livraison est de type GENERIC")
return structured_vector_layers
@@ -130,7 +142,7 @@ def get_layers_from_datasource(datasources: list[gdal.Dataset]) -> list[dict]:
def get_vector_files_structure(
upload_dir_path: Path, upload_type: str = "AUTO"
upload_dir_path: Path, upload_type: str = "AUTO", verbosity: bool = True
) -> dict | None:
"""Vérifie et retourne la structure des fichiers vecteur d'une livraison.
@@ -141,6 +153,8 @@ def get_vector_files_structure(
Args:
upload_dir_path (Path): name of the subfolder to look for.
Must be a subfolder of work_dir. Defaults to "upload".
upload_type (str, optional): 'PREFIX', 'GENERIC' or 'AUTO'. Defaults to 'AUTO'
verbosity (bool, optional): active les logs user. Defaults to True.
Returns:
dict: dict contenant les informations des deux couches, dont la structure est :
@@ -187,12 +201,12 @@ def get_vector_files_structure(
else:
vector_file_struct = None
if upload_type in ("PREFIX", "AUTO"):
vector_file_struct = get_struct_prefix_type(vector_files)
vector_file_struct = get_struct_prefix_type(vector_files, verbosity)
if vector_file_struct:
return vector_file_struct
if upload_type in ("GENERIC", "AUTO"):
vector_file_struct = get_struct_generic_type(vector_files)
vector_file_struct = get_struct_generic_type(vector_files, verbosity)
if vector_file_struct:
return vector_file_struct
@@ -373,7 +387,7 @@ def get_geojson_dataset_geom(upload_dir: Path, upload_type: str = "AUTO") -> dic
"""
try:
vector_files = get_vector_files_structure(
upload_dir_path=upload_dir, upload_type=upload_type
upload_dir_path=upload_dir, upload_type=upload_type, verbosity=False
)
if vector_files is None:
return None
@@ -425,7 +439,7 @@ def run(
try:
logger.user_info("Vérification de la structure de la livraison")
vector_files = get_vector_files_structure(
upload_dir_path=upload_dir, upload_type=upload_type
upload_dir_path=upload_dir, upload_type=upload_type, verbosity=True
)
if vector_files is None:
return Status.FAILURE
Chargement en cours