diff --git a/authors-tools/v1/corporate/private-public.py b/authors-tools/v1/corporate/private-public.py index c52aea2..de92cec 100755 --- a/authors-tools/v1/corporate/private-public.py +++ b/authors-tools/v1/corporate/private-public.py @@ -1,5 +1,4 @@ #!/usr/bin/python3 - import json import sys import re @@ -20,7 +19,7 @@ return "private" elif word in public : return "public" - return adress + return # requête pour récupérer le fichier json def request_abbreviation(url): @@ -43,14 +42,12 @@ res.append(word) return " ".join(res) - # découpage des adresses en plusieurs parties def name_enterprise(affiliation) : affiliation = affiliation.lower() affiliations = affiliation.split(',') return affiliations[0] - # Repérer le département dans l'affiliation def num_dept(affiliation) : res = re.findall('f-(\d{2})\d{3}',affiliation) @@ -61,6 +58,7 @@ # requêtage de l'API pour les données filtrées @on_exception(expo, RateLimitException, max_time=1) @limits(calls=7, period=1) + def request(name, dept) : url = "https://recherche-entreprises.api.gouv.fr/search?q=" + urllib.parse.quote(name) if dept: @@ -71,8 +69,7 @@ # gérer les réponses de l'API def is_private_public(information): if len(information)==0 or 'results' not in information or not information['results']: - return "Informations manquantes" - + return None # Parcourir chaque objet "results" extraire la valeur de "est_service_public" est_service_public_list = [] for result in information['results']: @@ -83,35 +80,30 @@ if True in est_service_public_list : return "public" return "private" - - # return est_service_public_list - + +# return est_service_public_list def public_or_private(affiliation,my_dict): privatePublicOrAffiliation = filter(affiliation) if privatePublicOrAffiliation in ["private", "public"]: adress = affiliation.lower().split(",") enterprise = adress[0] - return "organisme: "+enterprise+", statut: "+privatePublicOrAffiliation + return {"organisme": enterprise, "statut": privatePublicOrAffiliation} expanded_affiliation = expand_abbreviations(affiliation,my_dict) - name = name_enterprise(expanded_affiliation) dept = num_dept(expanded_affiliation) - information = request(name, dept) nature = is_private_public(information) - - return "organisme: "+name+", statut: "+nature + if nature is None: + return {"organisme": "n/a", "statut": "n/a"} + return {"organisme": name, "statut": nature} - def main(): my_dict = request_abbreviation("http://mapping-tables.daf.intra.inist.fr/affiliations-tools-corporate.json") for line in sys.stdin: data = json.loads(line) texte = data["value"] - data["value"] = public_or_private(texte,my_dict) - sys.stdout.write(json.dumps(data)) sys.stdout.write("\n")