Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/carlosgomezc7/plataforma_aprendizaje/llms.txt

Use this file to discover all available pages before exploring further.

ColaProgreso implementa una cola de tipo FIFO (First In, First Out) para almacenar en memoria los registros de actividad estudiantil conforme se van generando en tiempo real. El primer progreso encolado es siempre el primero en ser procesado y sincronizado con la base de datos. Todos los ítems viven exclusivamente en memoria durante la ejecución de la aplicación: esta clase no escribe en disco por sí misma.

Constructor

ColaProgreso()
Inicializa la cola con self.items = []. No acepta parámetros.

Métodos

encolar(progreso)

Inserta progreso al frente de self.items mediante insert(0, progreso). Los ítems más nuevos ocupan posiciones bajas del índice interno, mientras que los más antiguos se desplazan hacia el final, listos para ser extraídos por desencolar().
progreso
dict
required
Registro de progreso a encolar. Típicamente tiene la forma {"estudiante": str, "modulo": str}, aunque la clase no valida la estructura del dict.
return
None
No devuelve valor.

desencolar()

Extrae y devuelve el último elemento de self.items mediante pop(), que corresponde al ítem más antiguo de la cola (el que fue encolado primero). Si la cola está vacía, devuelve None sin lanzar ninguna excepción.
return
dict | None
El registro de progreso más antiguo de la cola, o None si la cola está vacía.

esta_vacia()

Comprueba si la cola contiene algún elemento evaluando len(self.items) == 0.
return
bool
True si la cola no tiene elementos; False en caso contrario.

Ejemplo de uso

cola = ColaProgreso()
cola.encolar({"estudiante": "Maria_Lopez", "modulo": "Módulo 2"})
cola.encolar({"estudiante": "Maria_Lopez", "modulo": "Módulo 3"})

if not cola.esta_vacia():
    item = cola.desencolar()  # Devuelve el primero encolado: Módulo 2
    print(item)  # {'estudiante': 'Maria_Lopez', 'modulo': 'Módulo 2'}
Todos los ítems encolados se almacenan únicamente en memoria. Si la aplicación se reinicia o cierra antes de que todos los ítems sean procesados con desencolar() y guardados en la base de datos mediante MotorBaseDatos.guardar_progreso(), los progresos pendientes se perderán permanentemente sin dejar rastro en db_local.json.

Build docs developers (and LLMs) love