Scripts

bool_quetion

Modulo de Python para realizar preguntas cuya respuestas son binarias (sí/no o aceptar/cancelar).

Instalación

Utilizando PyP

pip install bool_quetion

Utilizando un entorno virtual

Creando el entorno:

python3 -m venv .venv

Activando el entorno:

source .venv/bin/activate

Instalar bool_quetion volviendo a intentar utilizando PyP:

pip install bool_quetion

Si no quiere utilizar un entorno virtual y no le deja instalar el módulo de manera global,puede utilizar --break-system-packages:

pip install bool_quetion --break-system-packages

Instalar desde repositorios APT

Como root o usando sudo

Añadiendo repositorios APT:

echo "deb https://pablinet.github.io/apt ./" > /etc/apt/sources.list.d/pablinet.list

Configurando la firma pública del repositorio APT con curl:

curl -fsSL https://pablinet.github.io/apt/pablinet.gpg -o /etc/apt/trusted.gpg.d/pablinet.gpg

O puede utilizar wget:

wget -O /etc/apt/trusted.gpg.d/pablinet.gpg https://pablinet.github.io/apt/pablinet.gpg

Actualizando repositorios APT:

apt update

Instalar bool_quetion:

apt install python-bool-quetion

Usando el código en Python 3.x

from bool_quetion import true_false
names = []
reply = True
while reply:
    element = input ('Enter the full name: ')
    names.append(element)
    for name in names:
        print (name)
        reply = true_false('¿Desea continuar?', ['Sí o', 'no'])
else:
    reply = True

También es posible personalizar el mensaje de error y resaltar los caracteres que se pueden ingresar.:

reply = true_false('¿Desea continuar?', ['Sí o', 'no'], True)
reply = true_false('¿Desea continuar?', ['Sí o', 'no'], 'Error Key', True)

BONUS TRACK

Utilizando la libería en Bash.

#!/usr/bin/env python3
from sys import argv, exit
from bool_quetion import true_false

if 3 > len(argv) or len(argv) > 5:
    print('Error in the number of arguments.')
    exit(255)
arguments = argv[1:].copy()
arguments[1] = arguments[1].split('%')
err_number = 1
if len(arguments[1]) == 3 and arguments[1][2].isdecimal():
    err_number = int(arguments[1][2])
    arguments[1].pop()
if len(arguments) in (3, 4):
    if arguments[-1].lower() in ('true', 'false'):
        arguments[-1] = arguments[-1].lower() == 'true'
exit(0 if true_false(*arguments) else err_number)

Añadiendo permisos de ejecución:

chmod +x true-false

Ejecutando el script con Bash:

./true-false '¿Desea continuar?' 'Sí o%No'
./true-false '¿Desea continuar?' 'Sí o%No' true
./true-false '¿Desea continuar?' 'Sí o%No' 'Bad key' true

Ejecutar el script con código de error personalizado:

./true-false '¿Desea continuar?' 'Sí o%No%5'
./true-false '¿Desea continuar?' 'Sí o%No%5' 'Bad key'
./true-false '¿Desea continuar?' 'Sí o%No%5' 'Bad key' true
: