Módulo de fuego Python

Python Fire es una biblioteca para crear aplicaciones CLI. Puede generar automáticamente interfaces de línea de comandos desde cualquier objeto en python. No se limita a esto, es una buena herramienta para fines de depuración y desarrollo. Con la ayuda de Fire, puede convertir el código existente en CLI. En este artículo veremos el uso del fuego.

Instalación

En primer lugar, existen diferentes métodos de instalación que puede realizar según su elección. 

Instalar usando pip:

pip install fire

Fire funciona en cualquier objeto de Python, incluidos componentes, diccionarios, listas, tuplas, etc. 

Función de llamada de fuego

Aquí hay un ejemplo de llamar a fuego en una función para esto, haremos una función y llamaremos a la función en CLI.

Python3

import fire
  
def greeting(name):
    return "Hello " + name
  
fire.Fire(greeting("World!"))

Producción:

Hello World!

Luego, desde la terminal, puedes ejecutar usando los siguientes comandos:

 python main.py

Establecer una función como punto de entrada

Hay otra forma de ejecutar este programa configurando una función en la función Incendio en el momento de la invocación. Al hacerlo, solo necesitamos pasar argumentos en tiempo de ejecución sin decir a qué método llamar.

Python3

import fire
  
def hello(name):
    return "Hello " + name
  
if __name__ == '__main__':
    fire.Fire(hello)

Producción:

Hello world

Si ejecuta esto en la terminal usando el siguiente comando, dará el mismo resultado que la función anterior. Llamando Fuego consumido nombre = «Mundo». Usando este método de llamar al fuego, evita escribir el nombre de la función con argumentos.

python main.py world

Ambas formas de llamar darán «Hello World» como salida.

Función de llamada en clases

Aquí hay una clase de ejemplo creada llamada Square y un método «square» se define dentro de ella. Una vez que llamamos a disparar en cualquier clase, podemos acceder a ella como un método en la línea de comando directamente. Veremos cómo llamar a este método usando el siguiente ejemplo,

Python3

import fire
  
class Square(object):
  
    def square(self, number):
        return number*number
  
fire.Fire(Square)

Producción:

4

Hay dos formas de ejecutar esta clase, el primer método es:

python main.py square 2

La segunda forma que dará el mismo resultado deseado es:

python main.py square --number=2

Ambos métodos darán el mismo resultado = 4. 

Pasar argumentos al comando

Fire es conveniente ya que permite pasar argumentos desde una línea de comando. En el ejemplo anterior, invocamos el método desde la línea de comando y asignamos argumentos al mismo tiempo.  

Uso de comandos jerárquicos

Fire se puede usar para instanciar clases dentro de la clase, creando una vista jerárquica. pongamos un ejemplo,

Python3

import fire
  
class Calculator(object):
    def __init__(self):
        self.SQUARE = Square()
  
class Square(object):
  
    def square(self, number):
        return number*number
        
    def triplet(self,number):
        return number*number*number
  
fire.Fire(Calculator)

De esta forma, la clase Calculadora instancia la clase cuadrada y se crea su objeto. Se puede acceder a las funciones miembro de la clase instanciada en tiempo de ejecución como: 

Banderas de fuego

Para saber más sobre los comandos de disparo asociados con un objeto o clase en particular, use la bandera de ayuda con el objeto o la clase. Por ejemplo, que se muestra a continuación, estamos consultando sobre el objeto «CUADRADO», y muestra dos comandos asociados con él: «cuadrado» y «triplete». Esto significa que solo puede pasar estos dos comandos con SQUARE con sus parámetros.

¿Por qué fuego?

  • El fuego hace que el código sea más legible.
  • Fácil de crear interfaces de línea de comandos.
  • fire.Fire() ejecuta el contenido completo del programa cuando se invoca al final de un programa.

Publicación traducida automáticamente

Artículo escrito por rn540 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *