Introduction
L'automatisation des tâches répétitives est un élément essentiel du développement logiciel moderne. Que ce soit pour la compilation d'un projet, le déploiement, le formatage du code, l'exécution de migrations ou les tests, il est préférable de confier ces processus à des outils spécialisés. Pour les développeurs Python, la bibliothèque Invoke constitue une solution universelle.
Invoke est une puissante bibliothèque Python permettant de créer des utilitaires en ligne de commande en décrivant les tâches sous forme de fonctions Python classiques. Elle offre un moyen simple mais fonctionnel d'organiser des commandes automatisées, rappelant des outils populaires comme make ou Fabric, mais écrit en Python pur.
Qu'est-ce qu'Invoke
Invoke est une bibliothèque Python pour décrire et exécuter des tâches en ligne de commande, conçue pour simplifier l'automatisation des processus de développement. Elle a été extraite de Fabric 2 en tant que composant indépendant pour la création d'interfaces CLI et l'automatisation de tâches.
Principaux avantages d'Invoke
La bibliothèque offre aux développeurs les fonctionnalités suivantes :
- Description déclarative des tâches — les tâches sont décrites comme des fonctions Python classiques avec le décorateur
@task - Création automatique de CLI — l'interface en ligne de commande est générée automatiquement à partir du code
- Prise en charge riche des arguments — support intégré des arguments, options et informations d'aide
- Intégration avec le shell — travail pratique avec les commandes shell via l'objet Context
- Configuration flexible — prise en charge des espaces de noms, fichiers de configuration et variables d'environnement
- Extensibilité — possibilité de créer des pipelines complexes et des chaînes de tâches
Installation et configuration initiale
Installation de la bibliothèque
Pour installer Invoke, utilisez pip :
pip install invoke
Après l'installation, la commande inv est disponible. Elle est similaire à make, mais fonctionne avec du code Python.
Vérification de l'installation
Pour vérifier que l'installation est correcte, utilisez la commande :
inv --version
Structure des tâches et syntaxe de base
Création d'une première tâche
Un exemple simple de tâche ressemble à ceci :
from invoke import task
@task
def hello(c):
print("Bonjour tout le monde !")
L'exécution de la tâche se fait avec la commande :
inv hello
Objet Context
Chaque tâche reçoit un objet Context (généralement noté c), qui permet d'exécuter des commandes shell, de gérer la configuration et d'accéder à divers utilitaires :
@task
def build(c):
c.run("python setup.py sdist")
c.run("python setup.py bdist_wheel")
Décorateur @task
Le décorateur @task est utilisé pour marquer une fonction comme une tâche CLI. Il prend en charge de nombreux paramètres pour personnaliser le comportement :
@task(help={"name": "Nom de l'utilisateur à saluer"})
def greet(c, name="Anonyme"):
print(f"Bonjour, {name} !")
Exécution avec paramètres :
inv greet --name=Jean
Gestion des arguments et options
Arguments obligatoires
Pour créer des arguments obligatoires, utilisez des paramètres de fonction sans valeur par défaut :
@task
def say(c, word):
print(f"Dit : {word}")
inv say --word="Bonjour le monde !"
Arguments optionnels
Les arguments optionnels sont créés avec des valeurs par défaut :
@task
def greet(c, name="Invité"):
print(f"Bienvenue, {name} !")
inv greet
inv greet --name=Marie
Aussi dans la bibliothèque
Eloquent ORM pour PHP : guide complet avec exemples
NodaTime pour C# (.NET) : guide complet avec exemples
ARKit Swift : guide complet avec exemples
Configuration des applications Kotlin : bibliothèques, approches et outils