Invoke – Aufgabenverwaltung mit Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung

Die Automatisierung von Routineaufgaben ist ein wesentlicher Bestandteil der modernen Softwareentwicklung. Ob Projekt-Build, Deployment, Code-Formatierung, Migrationen oder Tests – all diese Prozesse sollten spezialisierten Tools überlassen werden. Für Python-Entwickler bietet sich hier die Bibliothek Invoke als universelle Lösung an.

Invoke ist eine leistungsstarke Python-Bibliothek zur Erstellung von Kommandozeilen-Tools, mit denen sich Aufgaben als normale Python-Funktionen beschreiben lassen. Sie bietet eine einfache, aber funktionale Möglichkeit, automatisierte Befehle zu organisieren – ähnlich wie die bekannten Tools make oder Fabric, jedoch in reinem Python geschrieben.

Was ist Invoke?

Invoke ist eine Python-Bibliothek zur Beschreibung und Ausführung von Aufgaben im Kommandozeilen-Stil, die speziell zur Automatisierung von Entwicklungsprozessen entwickelt wurde. Sie wurde aus Fabric 2 als eigenständige Komponente für den Bau von CLI-Schnittstellen und Aufgabenautomatisierung ausgegliedert.

Die wichtigsten Vorteile von Invoke

Die Bibliothek bietet Entwicklern folgende Möglichkeiten:

  • Deklarative Aufgabenbeschreibung – Aufgaben werden als normale Python-Funktionen mit dem Decorator @task definiert
  • Automatische CLI-Generierung – Die Kommandozeilen-Schnittstelle wird automatisch aus dem Code erstellt
  • Umfangreiche Argumentunterstützung – Integrierte Unterstützung für Argumente, Optionen und Hilfetexte
  • Shell-Integration – Komfortable Arbeit mit Shell-Befehlen über das Context-Objekt
  • Flexible Konfiguration – Unterstützung für Namespaces, Konfigurationsdateien und Umgebungsvariablen
  • Erweiterbarkeit – Möglichkeit zur Erstellung komplexer Pipelines und Aufgabenketten

Installation und erste Einrichtung

Bibliothek installieren

Installiere Invoke mit pip:

pip install invoke

Nach der Installation steht der Befehl inv zur Verfügung – eine Alternative zu make, die jedoch mit Python-Code arbeitet.

Installation prüfen

Überprüfe die korrekte Installation mit:

inv --version

Aufgabenstruktur und grundlegende Syntax

Erste Aufgabe erstellen

Ein einfaches Beispiel für eine Aufgabe sieht so aus:

from invoke import task

@task
def hello(c):
    print("Hallo, Welt!")

Die Aufgabe wird wie folgt ausgeführt:

inv hello

Das Context-Objekt

Jede Aufgabe erhält ein Context-Objekt (meist als c bezeichnet), über das Shell-Befehle ausgeführt, die Konfiguration verwaltet und auf verschiedene Hilfsfunktionen zugegriffen werden kann:

@task
def build(c):
    c.run("python setup.py sdist")
    c.run("python setup.py bdist_wheel")

Der @task-Decorator

Der Decorator @task kennzeichnet eine Funktion als CLI-Aufgabe. Er unterstützt zahlreiche Parameter zur Verhaltensanpassung:

@task(help={"name": "Benutzername für die Begrüßung"})
def greet(c, name="Gast"):
    print(f"Hallo, {name}!")

Ausführung mit Parametern:

inv greet --name=Max

Arbeiten mit Argumenten und Optionen

Pflichtargumente

Für Pflichtargumente verwendest du Funktionsparameter ohne Standardwerte:

@task
def say(c, word):
    print(f"Gesagt: {word}")
inv say --word="Hallo, Welt!"

Optionale Argumente

Optionale Argumente werden mit Stan

Empfehlungen