Skip to main content

Un motor de concentración gamificado para la terminal.

Project description

🪴 Zen Focus: Gamificación y Enfoque Profundo (Deep Work)

PyPI version Open In Colab

Zen Focus es una librería de Python orientada a proteger la atención de desarrolladores, científicos de datos y estudiantes.

Cuando ejecutamos procesos de alta carga computacional (limpieza de DataFrames gigantes, entrenamiento de modelos, simulaciones estadísticas), los tiempos de espera nos hacen perder nuestro estado de Deep Work al abrir redes sociales. Zen Focus resuelve esto mediante gamificación visual en la terminal y un escudo de red a nivel del sistema operativo.


✨ Características Principales

  1. Gamificación Visual (POO): Arte ASCII interactivo que evoluciona en 5 fases proporcionalmente al avance de tu código o tiempo de sesión.
  2. Arquitectura Extensible: Motor basado en clases abstractas (TemaBase). Incluye temas predeterminados: PlantaFlor, Cohete, Edificio y Bebida.
  3. Escudo de Red (Context Manager): Modifica dinámicamente el archivo hosts (/etc/hosts o System32/drivers/etc/hosts) para bloquear sitios web distractores y restaura la conexión de forma segura al finalizar o en caso de error.
  4. Interfaz de Terminal (CLI): Integración nativa con rich para paneles en vivo que no inundan la consola.

🚀 Instalación

Instala la última versión estable directamente desde PyPI:

pip install zen-focus rich

Para probar de inmediato sin configuraciones locales, haz clic en el botón de Open in Colab en la parte superior.


📖 Uso Básico

La librería puede usarse de dos maneras principales: integrada en tus scripts largos o como una sesión de enfoque dedicada.

  1. Gamificar un Script Largo Importa un tema y hazlo evolucionar mientras tu código trabaja:
from zen_focus.temas import PlantaFlor
import time

mi_planta = PlantaFlor(nombre="Girasol Analítico")

# Simulamos el procesamiento de datos por lotes
for lote in range(5):
    time.sleep(1) # Reemplaza con tu lógica de código pesada
    mi_planta.evolucionar()
    print(mi_planta.renderizar())
  1. Modo Deep Work (Con bloqueo de sitios) Utiliza la clase SesionZen junto con el Escudo para bloquear distracciones. Nota: Este script requiere ser ejecutado con permisos de administrador (sudo) para modificar las rutas de red.
from zen_focus.motor import SesionZen
from zen_focus.escudo import Escudo
from zen_focus.temas import Cohete

# 1. Definimos las distracciones
distracciones = ["twitter.com", "instagram.com", "youtube.com"]

# 2. El Context Manager garantiza que el internet regrese a la normalidad
with Escudo(bloquear=distracciones) as mi_escudo:
    
    # 3. Configuramos la sesión y el tema
    mision = Cohete(mision="Apolo 11")
    sesion = SesionZen(minutos=25, escudo=mi_escudo, tema=mision)
    
    # 4. ¡Iniciamos el motor en la terminal!
    sesion.iniciar()

🐳 Ejecución Local con Docker

Si deseas probar la interfaz completa y correr los tests automatizados en un entorno aislado sin modificar los permisos de red de tu máquina anfitriona, el proyecto incluye una configuración de Docker lista para usar.

Clona este repositorio y ejecuta:

docker compose up --build

Esto instalará la librería en modo editable, ejecutará las pruebas con pytest o levantará el panel interactivo directamente en el contenedor.


🏗️ Arquitectura y Extensión

Si deseas crear tus propios temas, simplemente hereda de la clase abstracta TemaBase:

from zen_focus.base import TemaBase

class MiTemaCustom(TemaBase):
    def evolucionar(self):
        ...
    def penalizar(self):
        ...
    def renderizar(self) -> str:
        ...

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

zen_focus-0.1.3.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

zen_focus-0.1.3-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zen_focus-0.1.3.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zen_focus-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a652b6da02a9f91ef38ed591269c46c215a1c9e9c4408903dc96abadd46612f1
MD5 cf78f057df06a45a7dc1658d59552c83
BLAKE2b-256 079250426f1ff86672ff5c724accb0d063c810577a1c28901682bb02808fe899

See more details on using hashes here.

File details

Details for the file zen_focus-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: zen_focus-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zen_focus-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 50695278fc4b5d18c864cd280d2d2f868d46205d5772908ae69c114eead13f89
MD5 af156f9cb42547074ad7bb087e2043d0
BLAKE2b-256 8e056bd08fdb7a08c024263b5f6f6963a6eb8e6fb2ae2af6571a0d308ca748ba

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