Skip to main content

Una librería para mejorar la interacción en la consola

Project description

bit8tools

Biblioteca Python moderna para crear interfaces CLI elegantes con colores, validación de entrada y componentes estilizados, inspirada en la era de los 8 bits 🎮✨

🚀 Características

Input

Clase para manejo de entrada de datos con validación:

  • text(): Entrada de texto
  • int_number(): Entrada y validación de números enteros
  • float_number(): Entrada y validación de números decimales
  • yes_no(): Entrada de opciones sí/no
  • date(): Entrada y validación de fechas
  • email(): Entrada y validación de correos electrónicos
  • password(): Entrada de contraseñas
  • menu(): Entrada de selección de menú

Output

Clase para mostrar información formateada:

  • print(): Impresión con colores
  • show_warning(): Muestra mensajes de advertencia
  • show_error(): Muestra mensajes de error
  • confirm(): Muestra mensajes de confirmación
  • clear(): Limpia la pantalla
  • press_enter_to_continue(): Pausa hasta que se presione Enter
  • set_locale(): Configura la localización
  • format_currency(): Formatea números como moneda
  • print_title(): Imprime un título con formato
  • show_progress_bar(): Muestra una barra de progreso

Colors

Clase base para manejo de colores en terminal:

  • Códigos de color para texto
  • Códigos de color para fondos
  • Utilidades de formateo

Alignment

Clase para manejo de alineación de texto:

  • LEFT: Alineación a la izquierda
  • CENTER: Alineación centrada
  • RIGHT: Alineación a la derecha

Tabular

Clase para manejo de tablas en terminal:

  • tabulate(): Genera una tabla con los datos proporcionados

📦 Instalación

pip install bit8tools

🎮 Ejemplo de Uso

from bit8tools import Input, Output, Colors, Alignment, Tabular

# Entrada de datos
nombre = Input.text("Ingrese su nombre:", Colors.GREEN, Colors.BLUE)
edad = Input.int_number("Ingrese su edad:", Colors.GREEN, Colors.BLUE, 0, 120)
peso = Input.float_number("Ingrese su peso:", Colors.GREEN, Colors.BLUE, 50, 150)
continuar = Input.yes_no("¿Deseas continuar? (si/no):", Colors.GREEN, Colors.BLUE)

# Salida formateada
Output.print(nombre, Colors.WHITE)
Output.print(edad, Colors.WHITE)
Output.print(peso, Colors.WHITE)
Output.print(continuar, Colors.WHITE)

Output.show_warning("Esto es un mensaje de advertencia.")
Output.show_error("Esto es un mensaje de error.")
Output.confirm("Esto es un mensaje de confirmación.")
Output.clear()
Output.print("Esto es un mensaje de limpieza.", Colors.RED)
Output.set_locale("es_AR")
Output.print(f"Mi sueldo es de {Output.format_currency(367000)}", Colors.GREEN)

# Alineación de texto
Output.print("Texto alineado a la izquierda")
Output.print("Texto centrado", color=Colors.BLUE, alignment=Alignment.CENTER)
Output.print("Texto alineado a la derecha", alignment=Alignment.RIGHT)

# Datos de ejemplo para la tabla
data = [
    {
        "nombre": "Juan Carlos González",
        "descripción": "Este es un texto muy largo que necesitará ser dividido",
        "ciudad": "Madrid"
    },
    {
        "nombre": "María",
        "descripción": "Texto corto",
        "ciudad": "Barcelona"
    }
]

# Usar el método estático directamente
Tabular.tabulate(data, title="Lista de Usuarios")

# O especificar un ancho máximo
Tabular.tabulate(data, title="Lista de Usuarios", max_width=80)

# Barra de progreso
total_iterations = 100
for i in range(total_iterations + 1):
    Output.show_progress_bar(i, total_iterations)
    time.sleep(0.1)

🛠️ Requisitos

  • Python 3.8 o superior

📜 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

🤝 Contribuir

Las contribuciones son bienvenidas. Por favor, siéntete libre de:

  • Reportar bugs
  • Sugerir nuevas funcionalidades
  • Enviar pull requests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bit8tools-1.0.7.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bit8tools-1.0.7-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file bit8tools-1.0.7.tar.gz.

File metadata

  • Download URL: bit8tools-1.0.7.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bit8tools-1.0.7.tar.gz
Algorithm Hash digest
SHA256 03ce10ba8c759c30be485d9acca1f451d4988e6b7d38c2c77b69641fbe8a2bf0
MD5 30336c9bcc647b3c6a67a8ce89ebe2b1
BLAKE2b-256 b19938dac743810e80e355c4b4e15b31ec5626e7ed6333ecc90f1a690eee2f6a

See more details on using hashes here.

File details

Details for the file bit8tools-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: bit8tools-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bit8tools-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1cf3059ef6aaac69214b5e5a108f79d7f90044a516e89e519a817bcadac4e5e6
MD5 a96c3e04665cb59e62dd846c39ff5855
BLAKE2b-256 29c345168e5c7423c59ac69290dddfd4f5fce098ed9ac7349c287ef81d5a9887

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page