Skip to main content

Ease of managing color and positioning prints and supplies for teaching purposes.

Project description

Simple Screen

Provee una serie de funciones basadas en curses, para permitir usar print e input de forma posicionada y jugar con colores.

La idea es poder crear programas que vayan enfrentando a situaciones algo mas reales que con print e input, pero sin necesitar librerias que metan ruido a la hora de enseñar. Es un paso previo.

Funciones que aporta

Aquí tienes un listado de las funciones públicas del archivo proporcionado junto con una breve explicación de cada una:

  1. pause(ms: int)

    • Pausa la ejecución del programa durante una cantidad de milisegundos especificada.
  2. init()

    • Inicializa la pantalla de curses y configura los parámetros básicos como dimensiones, colores y pares de colores.
  3. finish()

    • Finaliza el uso de curses y restaura la configuración del terminal a su estado original.
  4. cls(refresh: bool = False)

    • Limpia la pantalla y opcionalmente refresca la pantalla para mostrar los cambios inmediatamente.
  5. locate(x: int, y: int)

    • Mueve el cursor a la posición (x, y) especificada en la pantalla.
    • Si x o y está fuera de los límites de la terminal se produce una excepcion OverflowError.
  6. Print(cadena: object = "", refresh: bool = False)

    • Imprime una cadena en la pantalla en la posición actual del cursor y opcionalmente refresca la pantalla para mostrar los cambios inmediatamente.
  7. Input(mensaje: str = "") -> str

    • Muestra un mensaje en la pantalla y espera la entrada del usuario. Devuelve la cadena de entrada del usuario.
  8. pair(_pen: Color, _paper: Color, refresh: bool = False)

    • Configura el par de colores activo con los colores de primer plano (_pen) y fondo (_paper) especificados, y opcionalmente refresca la pantalla para mostrar los cambios inmediatamente.
  9. pen(color: Color, refresh: bool = False)

    • Cambia el color del "bolígrafo" (texto) al color de primer plano especificado y opcionalmente refresca la pantalla para mostrar los cambios inmediatamente.
  10. paper(color: Color, refresh: bool = False)

    • Cambia el color del "papel" (fondo) al color de fondo especificado y opcionalmente refresca la pantalla para mostrar los cambios inmediatamente.
  11. app(func: Callable[..., None]) -> Callable[..., None]

    • Decorador que asegura que la función proporcionada se ejecute en un contexto de curses y llama a _end() al finalizar la ejecución.
  12. Simple_ScreenContextManager

    • Clase manejadora de contexto para asegurar que finish() se llame al salir del bloque with.

Explicación detallada de las funciones internas:

  1. _init_curses()

    • Inicializa la pantalla de curses, configura el modo cbreak y empieza el modo de color. Devuelve la pantalla inicializada.
  2. _end(scr)

    • Restaura la configuración del terminal y finaliza el uso de curses.
  3. _create_color(ix: int, color: Color)

    • Crea un color en curses utilizando el índice y el valor de color especificados.
  4. _retrievePos()

    • Actualiza la posición del cursor global POS obteniendo la posición actual del cursor en la pantalla.

Estas funciones y clases proporcionan una interfaz para manejar de manera más sencilla la biblioteca curses en Python, permitiendo inicializar y finalizar correctamente el entorno curses, manipular colores, limpiar la pantalla, mover el cursor, y manejar entradas y salidas de texto en la consola.

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

simple_screen-0.1.3.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file simple_screen-0.1.3.tar.gz.

File metadata

  • Download URL: simple_screen-0.1.3.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for simple_screen-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c890934c6b860f0047538edcf5df9b12e1c3aa0c12d7943b39ba8dfa80f02028
MD5 05c431c6892294d8d87753779a8c7dab
BLAKE2b-256 d3fc96937eb778e6336f15cdc979e5ec2b7ec21e8197f23d9c8a5b2f37d9b629

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