#!/usr/bin/env python3 class requete: nom: str critere: str champs: dict def __init__(self, nom, critere, champs): self.nom = nom self.critere = critere self.champs = champs reqs = [] champs_stationnement = { "amenity": {"export_json": "Non", "FR": "aménagement"}, "capacity": {"export_json": "Oui", "FR": "nombre d'emplacements"}, "access": {"export_json": "Oui", "FR": "accès"}, "bicycle_parking": {"export_json": "Oui", "FR": "type"}, "covered": {"export_json": "Oui", "FR": "couvert"}, "operator": {"export_json": "Oui", "FR": "opérateur"}, "operator:type": {"export_json": "Oui", "FR": "type d'opérateur"}, "fee": {"export_json": "Oui", "FR": "frais"}, "check_date:capacity": {"export_json": "Non", "FR": "date_vérification"}, "source": {"export_json": "Non", "FR": "source"}, } champs_poi = { "name": {"export_json": "Oui", "FR": ""}, "description": {"export_json": "Oui", "FR": ""}, "website": {"export_json": "Oui", "FR": ""}, "addr:housenumber": {"export_json": "Oui", "FR": ""}, "addr:street": {"export_json": "Oui", "FR": ""}, "addr:postcode": {"export_json": "Oui", "FR": ""}, "addr:city": {"export_json": "Oui", "FR": ""}, "contact:email": {"export_json": "Oui", "FR": "email"}, "contact:twitter": {"export_json": "Oui", "FR": "Twitter"}, "contact:facebook": {"export_json": "Oui", "FR": "Facebook"}, "contact:phone": {"export_json": "Oui", "FR": "Téléphone"}, "network": {"export_json": "Oui", "FR": "Réseau"}, "office": {"export_json": "Oui", "FR": "Bureau"}, "opening_hours": {"export_json": "Oui", "FR": "Horaires"}, } # fields api_adresse (issus du géocodage inversé) champs_adresse = { "api_adresse:geometry:coordinates:lon": { "export_json": "Non", "FR": "lon_adresse_etalab", }, "api_adresse:geometry:coordinates:lat": { "export_json": "Non", "FR": "lat_adresse_etalab", }, "api_adresse:properties:label": {"export_json": "Non", "FR": "adresse_etalab"}, "api_adresse:properties:score": {"export_json": "Non", "FR": "score_etalab"}, "api_adresse:properties:housenumber": {"export_json": "Non", "FR": "numero_etalab"}, "api_adresse:properties:type": {"export_json": "Non", "FR": "type_etalab"}, "api_adresse:properties:name": { "export_json": "Non", "FR": "numero_et_voie_etalab", }, "api_adresse:properties:postcode": { "export_json": "Non", "FR": "code_postal_etalab", }, "api_adresse:properties:citycode": { "export_json": "Non", "FR": "code_INSEE_etalab", }, "api_adresse:properties:city": {"export_json": "Non", "FR": "ville_etalab"}, "api_adresse:properties:street": {"export_json": "Non", "FR": "rue_etalab"}, } reqs.append( requete( "stationnements_velos_publics", r'nwr["amenity"="bicycle_parking"](area:aire_de_recherche); - nwr["amenity"="bicycle_parking"]["access"~"(no|permit|private|customers)"](area:aire_de_recherche);', dict(champs_stationnement, **champs_adresse), ) ) reqs.append( requete( "stationnements_velos_non_publics", r'nwr["amenity"="bicycle_parking"]["access"~"(no|permit|private|customers)"](area:aire_de_recherche);', dict(champs_stationnement, **champs_adresse), ) ) champ_local = {"service:bicycle:diy": {"export_json": "Non", "FR": ""}} reqs.append( requete( "ateliers_autoreparation", r'nwr["service:bicycle:diy"="yes"](area:aire_de_recherche);', dict(champ_local, **champs_poi, **champs_adresse), ) ) champ_local = {"association": {"export_json": "Non", "FR": ""}} reqs.append( requete( "associations_velo", r'nwr["association"="bicycle"](area:aire_de_recherche);', dict(champ_local, **champs_poi, **champs_adresse), ) ) champ_local = {"craft": {"export_json": "Non", "FR": ""}} reqs.append( requete( "fabriquants_velo", r'nwr["craft"="bicycle"](area:aire_de_recherche);', dict(champ_local, **champs_poi, **champs_adresse), ) ) champ_local = {"shop": {"export_json": "Non", "FR": ""}} reqs.append( requete( "vendeurs_velo", r'nwr["shop"="bicycle"](area:aire_de_recherche);', dict(champ_local, **champs_poi, **champs_adresse), ) ) champ_local = {"amenity": {"export_json": "Non", "FR": ""}} reqs.append( requete( "velos_libre_service", r'nwr["amenity"="bicycle_rental"](area:aire_de_recherche);', dict(champ_local, **champs_poi, **champs_adresse), ) ) champ_local = {"service:bicycle:rental": {"export_json": "Non", "FR": ""}} reqs.append( requete( "location_velo", r'nwr["service:bicycle:rental"="yes"](area:aire_de_recherche);', dict(champ_local, **champs_poi, **champs_adresse), ) )