Loading ...

Generare applicazioni CLI automaticamente in Python con Fire

Generare applicazioni CLI automaticamente in Python con Fire

Detta così vuol dire poco, ma in effetti Python Fire fa proprio questo: genera applicazioni da riga di comando in maniera automatica.

Per certi versi assomiglia ad una parse della riga di comando, ma non è proprio quello.

Diciamo che per capire bene cos'è bisogna testarlo, e quindi eccoci qui.

Prima di tutto installiamo la libreria, che tra le altre cose è stata scritta da Google:

# pip install fire

Detto ciò ecco un codice di esempio:

import fire

class Calculator(object):

    def double(self, number):
        return 2 * number

    def add(selfself, number1, number2):
        return number1 + number2

if __name__ == '__main__':
    fire.Fire(Calculator)

Qui sotto qualche esempio di comando e di output:

$ python3 main.py add 10 
Fire trace:
1. Initial component
2. Instantiated class "Calculator" (main.py:3)
3. Accessed property "add" (main.py:8)
4. ('The function received no value for the required argument:', 'number2')

Type:        method
String form: >
File:        main.py
Line:        8

Usage:       main.py add NUMBER1 NUMBER2
             main.py add --number1 NUMBER1 --number2 NUMBER2

$ python3 main.py add 10 5
15

$ python3 main.py double
Fire trace:
1. Initial component
2. Instantiated class "Calculator" (main.py:3)
3. Accessed property "double" (main.py:5)
4. ('The function received no value for the required argument:', 'number')

Type:        method
String form: >
File:        main.py
Line:        5

Usage:       main.py double NUMBER
             main.py double --number NUMBER

$ python3 main.py double 30
60

Come potete vedere, con pochissimo codice abbiamo ottenuto un'applicazione CLI funzionante.

Con tanto di "istruzioni" nel caso in cui passiamo argomenti sbagliati, ecc.

Enjoy!