Typer et Python : une solution pour réaliser facilement des applications console

Typer et Python : une solution pour réaliser facilement des applications console

Pour nos besoins internes, nous avions besoin de rapidement créer une application console pour pouvoir la faire exécuter à travers des outils comme Rundeck par exemple. Nous sommes parties à la pêche et avons trouvé une librairie Python nous permettant de réaliser facilement ce que nous souhaitions

Une application console en deux temps, trois mouvements

A l’aide d’une dépendance au sein de votre projet Python, nommée Typer, vous pourrez réaliser de puissantes applications s’éxecutant en mode console. Adieu le parsing à la main des arguments passés, bonjour les arguments optionnels, obligatoires, les typages forts

Typer vous permet de gérer des commandes, des sous-commandes, de fournir de l’aide facilement et même de récupérer des variables d’environnement, que demander de plus ?

L’auteur de cette librairie n’est ni plus ni moins que le créateur de FastAPI (Sebastián Ramírez / Tiangolo)

Simple comme bonjour

Voici un petit exemple (tiré de la documentation officielle)

import typer

app = typer.Typer()


@app.command()
def hello(name: str):
    print(f"Hello {name}")


@app.command()
def goodbye(name: str, formal: bool = False):
    if formal:
        print(f"Goodbye Ms. {name}. Have a good day.")
    else:
        print(f"Bye {name}!")


if __name__ == "__main__":
    app()

A l’aide d’annotation, vous informez quelles sont les commandes que vous gérez, ici, nous avons deux commandes disponibles : hello et goodbye

Si on lance la commande goodbye sans argument, Typer vous indique le paramètre name comme obligatoire et des paramètres optionnels

python main.py goodbye --help
 Usage: main.py goodbye [OPTIONS] NAME

╭─ Arguments ───────────────────────────────────────╮
│ *    name      TEXT  [default: None] [required]   │
╰───────────────────────────────────────────────────╯
╭─ Options ─────────────────────────────────────────╮
│ --formal    --no-formal      [default: no-formal] │
│ --help                       Show this message    │
│                              and exit.            │
╰───────────────────────────────────────────────────╯

Nous vous invitons à lire la documentation très complète et très bien faite.

Quels framework Java utilisons-nous en 2023 ?
De NextJS à Astrobuild
Value Object : le must-have du développeur
Effacer le cache Symfony directement dans son application