From 5f1cd67cc0476eb7b98495c0da337e482c48a12c Mon Sep 17 00:00:00 2001 From: SebF Date: Sun, 16 Jan 2022 20:37:23 +0100 Subject: [PATCH] =?UTF-8?q?close=20#15=20option=20pour=20concat=C3=A9ner?= =?UTF-8?q?=20l'export=20json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- rdoo.py | 13 +++++++++++-- rdoopy/utils.py | 37 +++++++++++++++++++++++-------------- 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 0facbc2..ab6ba18 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,10 @@ Ces chemins sont relatifs à `rdoo.py`, il est possible de passer des chemins ab Il est possible de ne pas archiver en passant l'argument `-na, --no-archive`. -### Traductions +### Concaténation des tags dans l'export json +`-nc, --no-concatenation`, pour ne pas concaténer les tags dans le champ description du json exporté. + +## Traductions Les tags peuvent être traduits grâce au fichier `traductions.json` contenant la configuration sous la forme `"clef" : "tableau_de_valeurs"` où la clef est la valeur du tag OSM à traduire et le tableau de valeurs est de la forme `"valeur" : "traduction"`. Le fichier par défaut contient l'exemple de la traduction du tag `"bicycle_parking"`. ## Umap diff --git a/rdoo.py b/rdoo.py index bf43f15..5c9bb3c 100644 --- a/rdoo.py +++ b/rdoo.py @@ -105,6 +105,15 @@ def init_argparse() -> argparse.ArgumentParser: ) parser.set_defaults(archivage=True) + parser.add_argument( + "-nc", + "--no-concatenation", + dest="concatenation", + action="store_false", + help="Désactiver la concaténation des tags dans l'export json", + ) + parser.set_defaults(concatenation=True) + return parser @@ -157,8 +166,8 @@ def main(): # Sauvegarde os.makedirs(args.dossier_resultats, exist_ok=True) - export_json = utils.nettoyage_json_pour_umap( - data, utils.json_reqs[req]["champs"] + export_json = utils.export_json_pour_umap( + data, utils.json_reqs[req]["champs"], args.concatenation ) utils.save_as_json(export_json, req) diff --git a/rdoopy/utils.py b/rdoopy/utils.py index 331f3da..bddaf6a 100644 --- a/rdoopy/utils.py +++ b/rdoopy/utils.py @@ -96,7 +96,7 @@ class Utils: logging.info("Sauvegarde résultat format JSON/OSM") - def nettoyage_json_pour_umap(self, data, overpass_query_fields): + def export_json_pour_umap(self, data, overpass_query_fields, concatenation): """Sélection uniquement des champs export_json == oui""" export_json = { @@ -110,7 +110,7 @@ class Utils: for element in data["elements"]: export_json["elements"].append( - {"type": element["type"], "id": element["id"]} + {"type": element["type"], "id": element["id"], "tags": {}} ) # positionnement des éléments @@ -127,19 +127,28 @@ class Utils: if ( overpass_query_fields[tag]["export_json"] == "Oui" and tag in element["tags"] - and overpass_query_fields[tag]["FR"] != "" ): - description = ( - description - + overpass_query_fields[tag]["FR"] - + " : " - + str(element["tags"][tag]) - + "\n" - ) - - export_json["elements"][index_line]["tags"] = { - "description": description[:-1] - } + if concatenation: + ajout = ( + str(element["tags"][tag]) + if overpass_query_fields[tag]["FR"] == "" + else overpass_query_fields[tag]["FR"] + + " : " + + str(element["tags"][tag]) + ) + description = description + ajout + "\n" + export_json["elements"][index_line]["tags"] = { + "description": description[:-1] + } + else: + tagname = ( + tag + if overpass_query_fields[tag]["FR"] == "" + else overpass_query_fields[tag]["FR"] + ) + export_json["elements"][index_line]["tags"].update( + {tagname: element["tags"][tag]} + ) index_line = index_line + 1