Skip to main content

No project description provided

Project description

Nakalator CLI

python-versions os-versions

Nakalator est un outil en ligne de commande (CLI) conçu pour faciliter la création de dépôts et l'envoi de fichiers sur la plateforme Nakala

Nakalator permet de :

  • Créer un dépôt dans Nakala avec des métadonnées associées en utilisant un fichier YAML ;
  • Envoyer des fichiers (par exemple, des images) sur Nakala associés à une donnée spécifique ;
  • Créer une collection de données ou rattacher des données à une collection déjà existante dans Nakala.

Il peut être considéré comme une alternative à l'outil Mynkl.

Les avantages de Nakalator sont les suivants :

  • Retour utilisateur : Nakalator permet de suivre en temps réel le nombre de fichiers en cours d'envoi dans Nakala ;
  • Performances : En fonction de la machine utilisée et de la quantité de fichiers, Nakalator réduit le temps d'envoi des fichiers sur Nakala grâce à une méthode d'envoi multi-threads (goroutines) ;
  • Intégrité des données : Tests automatiques effectués après l'envoi des fichiers.
  • Post-traitements : Génération d'un rapport (mapping) pour les fichiers envoyés sur Nakala, contenant les identifiants DOI et SHA-1 pour aider, par exemple, à la génération des manifestes .

Sommaire

Installation

Méthode 1 (recommandée)

  1. Installez le CLI via pip dans un environnement virtuel ou non :
# (optionnel :) virtualenv -p python3.9 venv # exemple avec python3.9 mais vous pouvez choisir une autre version python3.10 par exemple
# (optionnel :) source venv/bin/activate 
pip install nakalator
  1. Testez l'installation :
nakalator --help

Passer à la section Marche à suivre de Readme pour commencer à utiliser Nakalator.

Méthode 2

  1. Clonez le projet (via https ou ssh) :
git clone git@github.com:chartes/Nakalator.git # exemple avec ssh ici
cd Nakalator/
  1. (Optionnel) Créez un environnement virtuel avec virtualenv, pyenv, etc. ici avec virtualenv par exemple :
virtualenv -p python3.9 venv # exemple avec python3.9 mais vous pouvez choisir une autre version python3.10 par exemple
source venv/bin/activate
  1. Installez le CLI :
pip install -e .
  1. Testez l'installation :
nakalator --help

Passer à la section Marche à suivre de Readme pour commencer à utiliser Nakalator.

Méthode 3 (non requis pour les utilisateurs. Concerne uniquement le développement de nakalator)

  1. Clonez le projet :
git clone git@github.com:chartes/Nakalator.git
cd Nakalator/
  1. Créer un environnement virtuel avec virtualenv, pyenv, etc. ici avec virtualenv par exemple :
virtualenv -p python3.9 venv # exemple avec python3.9 mais vous pouvez choisir une autre version python3.10 par exemple
source venv/bin/activate
  1. Installez les dépendances :
pip install -r requirements-dev.txt
  1. Puis lancer l'outil pour tester :
python3 nakalator.py --help

Si vous êtes dans le dossier Nakalator/nakalator_workspace :

python3 ../nakalator.py --help
Commandes pour le développement très spécifiques

[!WARNING] Le langage Go est nécessaire pour faire fonctionner les commandes suivantes.

Si et seulement si cela est nécéssaire : pour compiler l'ensemble du projet (build, dist, etc. et hors sources GO) avant la distribution via Pypi depuis Naklator/ :

make build_pkg VERSION_PKG=0.0.1-beta # exemple de version à spécifier 

Si et seulement si cela est nécéssaire : en cas de modification des sources Go, vous devez recompiler le binaire depuis Naklator/ pour Linux et pour MacOS :

sous linux :

make build_go

Cela créé alors un binaire nakala_request.so dans le dossier lib/bridge/

sous MacOS :

make build_go # même commande que pour linux

Cela créé alors un binaire nakala_request.dylib dans le dossier lib/bridge/

Marche à suivre

  1. Une fois l'installation effectuée, et lors de la première utilisation de l'outil, commencez par créer votre environnement de travail (nommé nakalator_workspace/) via la commande suivante :
nakalator init

La commande crée un dossier nakalator_workspace/ dans votre répertoire courant. Il s'agit de votre espace de travail privilégié et toutes les commandes Nakalator doivent être exécutées à partir de ce dossier. Ce dossier contiendra :

  • les fichiers de configuration temporaires (au format YAML) nécessaires pour l'envoi des données sur Nakala (dossier metadatas/) ;
  • les fichiers à envoyer (dossier data/)
  • les rapports (mapping) des données envoyées (dossier output/)

Notez également la présence d'un fichier nommé credentials.yml pour renseigner les informations de connexion à Nakala (clés API) en test (https://test.nakala.fr/) ou en production (https://nakala.fr/).

  1. Commencer par remplir le fichier credentials.yml avec les informations de connexion à Nakala (clés API). Pour l'instance de test, des clés d'API sont disponibles sur la page d'accueil de l'instance de test de Nakala (https://test.nakala.fr/). Pour l'instance de production Nakala, vous devez disposer d'un compte HumanID auprès d'Huma-Num et effectuer une demande d'accès à Nakala.

  2. L'organisation des fichiers de métadonnées YAML et des fichiers à envoyer est cruciale. Le fichier pivot YAML contient les métadonnées de la donnée à envoyer sur Nakala et les liens vers les fichiers à envoyer. Plusieurs cas d'usage sont possibles, les plus courants sont :

  • Création d'une donnée sur Nakala (rattachée ou non à une collection existante ou à créer) avec des fichiers associés (par exemple, des images) :

    1. Déposez votre fichier YAML (préalablement rempli) dans le dossier metadatas/ (par exemple metadatas/mon_projet.yml) ;
    2. Déposez vos images dans un dossier spécifique dans data/ (par exemple data/mon_projet/image1.jpg, data/mon_projet/image2.jpg, etc.).

    Voici un exemple de structure de dossiers pour ce cas d'usage :

     nakalator_workspace/
         |
         ├── metadatas/
         │    ├── mon_projet.yml
         │
         ├── data/
              ├── mon_projet/
                   ├── image1.jpg
                   ├── image2.jpg
    
  • Création de plusieurs données (envoi en lot) sur Nakala (rattachées ou non à une collection existante ou à créer) avec des fichiers associés (par exemple, des images) pour chacune d'elles :

    1. Déposez vos fichiers YAML (préalablement remplis) dans un sous-dossier situé dans le dossier metadatas/ (par exemple metadatas/mon_projet/mon_projet_1.yml, metadatas/mon_projet/mon_projet_2.yml) ;
    2. Déposez vos images dans des sous-dossiers spécifiques placés dans un sous-dossier (portant le nom du projet) de data/ (par exemple data/mon_projet/mon_projet_1/image1.jpg, data/mon_projet/mon_projet_1/image2.jpg, data/mon_projet/mon_projet_2/image1.jpg, data/mon_projet/mon_projet_2/image2.jpg, etc.).

    Voici un exemple de structure de dossiers pour ce cas d'usage :

      nakalator_workspace/
           |
           ├── metadatas/
           │    ├── mon_projet/
           │         ├── mon_projet_1.yml
           │         ├── mon_projet_2.yml
           │
           ├── data/
                  ├── mon_projet/
                    ├── mon_projet_1/
                           ├── image1.jpg
                           ├── image2.jpg
                    ├── mon_projet_2/
                           ├── image1.jpg
                           ├── image2.jpg
    

[!TIP] Pour remplir le fichier YAML, vous pouvez vous inspirer du fichier metadata_example.yml présent dans le dossier nakalator_workspace/ lors de l'initialisation de l'environnement de travail. Vous remarquerez que certaines informations sont obligatoires et d'autres facultatives. Vous pouvez également consulter le dossier examples/ qui contient des exemples de fichiers de métadonnées inspirés d'autres projets.

[!TIP] Prévoyez un plan de nommage rigoureux pour les images avant l'envoi, car cela déterminera l'ordre des images dans Nakala.

[!TIP] Si vous avez plusieurs données à créer, vous pouvez utiliser les suffixes spéciaux _PREV et _NEXT. La donnée avec le suffixe _PREV sera automatiquement placée en première position et celle avec le suffixe _NEXT en dernière position. Cela peut être utile pour les pages liminaires et postliminaires d'un document, par exemple.

[!TIP] Pour plus d'informations sur les métadonnées Nakala, consultez la documentation Nakala.

  1. Une fois l'étape 2 terminée, vous pouvez lancer l'envoi des données sur Nakala depuis le répertoire nakalator_workspace/ :
nakalator main

Suivez les instructions et répondez aux questions posées par le CLI.

[!TIP] Une fois la donnée créée, il est toujours possible de modifier ou d'ajouter des métadonnées dans l'interface Nakala suivant l'instance désignée (production ou test).

  1. À la fin du processus, un ou plusieurs fichiers de mapping seront générés dans le dossier output/ de votre nakalator_workspace/. Le nommage est le suivant :

    • Donnée rattachée à une collection : data_{ordre}_{doi_de_la_collection}_{doi_de_la_donnee}.csv
    • Donnée non rattachée à une collection : data_{ordre}_{doi_de_la_donnee}.csv

Ce fichier, à bien conserver, contient l'ensemble des fichiers envoyés sur Nakala avec les identifiants DOI et SHA-1 associés.

  1. Vous pouvez vérifier dans l'interface Nakala que les données ont bien été envoyées :
  • Modifier manuellement les métadonnées des données.
  • Ajouter des fichiers supplémentaires si nécessaire.
  • Si les images ne sont pas triés, utiliser la fonction de tri pour remettre les images dans l'ordre dans Nakala (cf. FAQ pour plus d'informations).
  • Passer les données et les collections en mode "publié" (au lieu de "privé").

[!WARNING] Le nombre de données en mode "privé" est limité sur Nakala, pensez à contrôler votre stockage régulièrement et à publier ces données au fur et à mesure surtout si vous avez un grand nombre de données à envoyer.

[!WARNING] Une fois la donnée "publiée" dans Nakala, il n'est plus possible de la supprimer (contactez le support de Nakala).

FAQ

  • Comment remettre les images dans l'ordre sur Nakala ?

    Vous pouvez vous rendre sur la page de la donnée créée dans Nakala, utiliser l'icône de tri, puis sauvegarder les modifications.

    capture-nakala

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nakalator-0.0.2.tar.gz (7.1 MB view details)

Uploaded Source

Built Distribution

nakalator-0.0.2-py3-none-any.whl (7.1 MB view details)

Uploaded Python 3

File details

Details for the file nakalator-0.0.2.tar.gz.

File metadata

  • Download URL: nakalator-0.0.2.tar.gz
  • Upload date:
  • Size: 7.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for nakalator-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3990876ca895f400462f7829c4837a80697440a056186e91e3d6c4e7cc82e8f7
MD5 261241fef7d3c4bb577ddd251e5b5431
BLAKE2b-256 37ff49024ae42abe6b347acdfaf3deec51c753c323565800aa1167e7d62e4f17

See more details on using hashes here.

File details

Details for the file nakalator-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: nakalator-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for nakalator-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c89314f496d0e7a123096a777de91f4a7c92f2508831d0d9b845c8aa9c8d34f4
MD5 ffb0f47786614c711111dba1ca7f317d
BLAKE2b-256 2bbe38222c321733966eb8ca18478dfec5a519bf110fcd5b94ae981f43700762

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page