Geoplateforme / sdk-entrepot

SDK Python pour utiliser l'API Entrepôt de la Géoplateforme.
GNU General Public License v3.0
1 stars 0 forks source link

Impossible de faire un upload avec upload.api_push_data_file #49

Closed jmkerloch closed 9 months ago

jmkerloch commented 9 months ago

J'ai voulu suivre le tutoriel pour ajouter un upload de type VECTOR : https://geoplateforme.github.io/sdk-entrepot/comme-module/#sans-la-classe-uploadaction:

# Attributs pour créer ma livraison (cf. la documentation)
# https://data.geopf.fr/api/swagger-ui/index.html#/Livraisons%20et%20vérifications/create

upload_infos = {
    "description": "BDTOPO Transport sur Paris",
    "name": "BDTOPO_TRANSPORT_PARIS",
    "srs": "EPSG:2154",
    "type": "VECTOR"
}

# Création d'une livraison
upload = Upload.api_create(upload_infos)

# Téléversement des fichiers
# Listes des fichiers : chemin local -> chemin distant
files = {Path("/home/jmkerloch/dev/ign/gpf-iti-scripts/bdtopo_transport_paris/gpkg/BDTOPO_TRANSPORT_PARIS.gpkg"): "bdtopo"}
# Pour chaque fichier
for local_path, api_path in files.items():
    # On le téléverse en utilisant la méthode api_push_data_file
    upload.api_push_data_file(local_path, api_path)

# Fermeture de la livraison
upload.api_close()

Une erreur est toujours remontée:

File "/home/jmkerloch/dev/ign/gpf-iti-scripts/gpf_iti_scripts/tests_gpf_sdk.py", line 65, in <module>
    upload_with_api()
  File "/home/jmkerloch/dev/ign/gpf-iti-scripts/gpf_iti_scripts/tests_gpf_sdk.py", line 56, in upload_with_api
    upload.api_push_data_file(local_path, api_path)
  File "/home/jmkerloch/dev/ign/gpf-iti-scripts/.venv/lib/python3.10/site-packages/sdk_entrepot_gpf/store/Upload.py", line 47, in api_push_data_file
    ApiRequester().route_upload_file(
  File "/home/jmkerloch/dev/ign/gpf-iti-scripts/.venv/lib/python3.10/site-packages/sdk_entrepot_gpf/io/ApiRequester.py", line 285, in route_upload_file
    return self.route_request(route_name, route_params=route_params, method=method, params=params, data=data, files=o_dict_files)
  File "/home/jmkerloch/dev/ign/gpf-iti-scripts/.venv/lib/python3.10/site-packages/sdk_entrepot_gpf/io/ApiRequester.py", line 92, in route_request
    raise RouteNotFoundError(route_name)
sdk_entrepot_gpf.io.Errors.RouteNotFoundError: Explications : Route non trouvée (problème de configuration).

J'ai réussi à m'en sortir en ajoutant cette partie à mon fichier de configuration :

[routing]
upload_push_data=${upload_get}/data

J'utilise la version 0.1.17 de sdk_entrepot_gpf

LudivineSchlegel commented 9 months ago

Bonjour, Merci le retour. La route a été supprimée par erreur lors d'une modification. La correction est faite pour la version 0.1.18 qui sera publié sous peu.

vsasyan-ignf commented 9 months ago

Bonjour @jmkerloch,

La publication a été effectuée, il faudra mettre à jour le module (qui a changé de nom si vous utilisiez ignf_gpf_sdk) :

pip install -U sdk_entrepot_gpf

Après cela ça devrait fonctionner.

jmkerloch commented 9 months ago

Je confirme la correction en 0.1.18