Siamo contenti di poter annunciare di aver reso Python Fire open source. Python Fire genera interfacce della riga di comando (Command Line Interface, CLI) da qualsiasi codice Python. È sufficiente chiamare la funzione Fire in qualsiasi programma Python per trasformare automaticamente quel programma in una CLI. La libreria è disponibile in pypi tramite "pip install fire" e il codice sorgente è disponibile su GitHub.
Python Fire trasformerà automaticamente il codice in una CLI senza dover far nulla. Non devi definire gli argomenti, impostare le informazioni della Guida o scrivere una funzione principale che stabilisca come eseguire il codice. Infatti basta chiamare la funzione Fire dal modulo principale e Python Fire si occuperà di tutto il resto. Esegue un'ispezione per trasformare qualsiasi oggetto Python tu voglia - che si tratti di una classe, un oggetto, un dizionario, una funzione o anche un intero modulo - in interfaccia della riga di comando, con tanto di completamento scheda e documentazione, e la CLI rimane aggiornata anche se il codice cambia.
Ecco qui un esempio per vedere come funziona.
#!/usr/bin/env python
import fire
class Example(object):
def hello(self, name='world'):
"""Says hello to the specified name."""
return 'Hello {name}!'.format(name=name)
def main():
fire.Fire(Example)
if __name__ == '__main__':
main()
Quando esegui la funzione Fire, verrà eseguito anche il nostro comando. Chiamando Fire, possiamo ora utilizzare la classe dell'esempio, come se si trattasse di un'utilità della riga di comando.
$ ./example.py hello
Hello world!
$ ./example.py hello David
Hello David!
$ ./example.py hello --name=Google
Hello Google!
Naturalmente potrai continuare a adoperare questo modulo come una normale libreria Python che ti consente di utilizzare lo stesso identico codice sia da Bash che da Python. Se stai scrivendo una libreria Python, non dovrai più aggiornare il tuo metodo principale o client quando fai delle prove, potrai semplicemente eseguire il pezzo di libreria con cui stai sperimentando direttamente dalla riga di comando. Anche se la libreria cambia, lo strumento della riga di comando rimane aggiornato.
A Google i programmatori usano Python Fire per generare gli strumenti della riga di comando dalle librerie Python. Abbiamo uno strumento di manipolazione delle immagini creato utilizzando Fire con Python Imaging Library, PIL. In ambito Google Brain utilizziamo uno strumento di gestione creato con Fire che ci permette di gestire gli esperimenti sia da Bash che da Python.
Ogni CLI di Fire presenta una modalità interattiva. Esegui la CLI con il flag "--interactive" per avviare una IPython REPL con il risultato del tuo comando, così come le altre variabili utili già definite e pronte per l'uso. Ti consigliamo di consultare la documentazione di Python Fire per ulteriori informazioni su questa e sulle altre caratteristiche utili fornite da Fire.
Grazie alla sua semplicità, universalità e potenza, ci auguriamo che tu possa trovare Python Fire utile come libreria per i tuoi progetti.