From 2df8c63df987dc6aa9d6f7215fbef6f6af6a0974 Mon Sep 17 00:00:00 2001 From: SebF Date: Sun, 6 Feb 2022 15:54:28 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20d'un=20param=C3=A8tre=20timeout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ rdoo.py | 6 +++++- rdoopy/utils.py | 13 ++++--------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ab6ba18..6b06810 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,9 @@ Il est possible de ne pas archiver en passant l'argument `-na, --no-archive`. ### 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é. +### Timeout +`-t, --timeout`, pour définir le timeout en secondes de la requêt Overpass (défaut 25s). + ## 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"`. diff --git a/rdoo.py b/rdoo.py index 5c9bb3c..ce5f7db 100644 --- a/rdoo.py +++ b/rdoo.py @@ -114,6 +114,10 @@ def init_argparse() -> argparse.ArgumentParser: ) parser.set_defaults(concatenation=True) + parser.add_argument( + "-t", "--timeout", type=int, help="Définir le temps de timeout.", default=25 + ) + return parser @@ -132,7 +136,7 @@ def main(): ], ) - utils = Utils(OVERPASS_URL, GEO_API_URL, args.dossier_resultats) + utils = Utils(OVERPASS_URL, GEO_API_URL, args.dossier_resultats, args.timeout) if args.archivage: utils.archivage(args.dossier_archive) diff --git a/rdoopy/utils.py b/rdoopy/utils.py index 48f823e..b49064b 100644 --- a/rdoopy/utils.py +++ b/rdoopy/utils.py @@ -39,10 +39,11 @@ class Utils: geo_api_url: str dossier_resultats: str - def __init__(self, overpass_url, geo_api_url, dossier_resultats): + def __init__(self, overpass_url, geo_api_url, dossier_resultats, timeout): self.overpass_url = overpass_url self.geo_api_url = geo_api_url self.dossier_resultats = dossier_resultats + self.timeout = timeout with open("configuration/traductions.json", encoding="utf-8") as trads: self.traductions = json.load(trads) @@ -157,15 +158,9 @@ class Utils: """Envoie la requête Overpass et retourne la réponse JSON.""" overpass_query = ( - """[out:json]; - ( - """ - + critere - + """ - ); - out center; - """ + f"[out:json][timeout: {str(self.timeout)}];({critere});out center;" ) + overpass_query = overpass_query.replace("aire_de_recherche", aire_de_recherche) response = requests.get(self.overpass_url, params={"data": overpass_query})