lezione 09

cli tools e automazione

argparse, subcommands e output professionale.

livello: intermedio durata: 36 min output: cli tool badge: automation cli

argparse

argparse è lo standard per parametri e help automatico.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--env", default="dev")
args = parser.parse_args()

subcommands

usa subparser per comandi multipli: build, deploy, report.

sub = parser.add_subparsers(dest="cmd")
report = sub.add_parser("report")
report.add_argument("--format", default="txt")

output curato

struttura l'output con tabelle e colori leggeri.

rows = [("task", "done"), ("lint", "ok")]
for row in rows:
    print(f"{row[0]:10} {row[1]}")

packaging rapido

esponi entrypoint in pyproject.toml per installare il comando.

[project.scripts]
buzatu-cli = "app.cli:main"

esercizi

crea un tool che analizza log e produce un report.

aggiungi una modalità verbose con flag -v.

checklist

  • usa help chiaro
  • aggiungi subcommands
  • mantieni output leggibile
  • testa su input errati

panoramica

In questo capitolo su cli tools e automazione, argparse, subcommands e output professionale. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: automation cli

obiettivi

  • capire e applicare argparse in uno scenario reale
  • capire e applicare subcommands in uno scenario reale
  • capire e applicare output in uno scenario reale
  • capire e applicare packaging in uno scenario reale

scheda rapida

def main():
    dati = [1, 2, 3]
    risultati = [x * 2 for x in dati]
    print(risultati)

if __name__ == "__main__":
    main()

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • usa un venv per ogni progetto
  • separa logica e I/O
  • mantieni funzioni piccole e nominative
  • supporta --dry-run
  • usa exit code coerenti
  • logga operazioni principali

tip: Se uno script modifica file, aggiungi sempre una modalità simulazione.

mini progetto

Tool che rinomina file in batch con prefisso.

  • leggi la directory target
  • costruisci i nuovi nomi
  • applica con --dry-run
  • stampa un summary finale

output atteso: uno script o query ripetibile con risultati verificabili.

start a brief