Skip to content

Commit 747df82

Browse files
committed
#25 - Python
1 parent a8f787f commit 747df82

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import logging
2+
import time
3+
"""
4+
* EJERCICIO:
5+
* Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra
6+
* un ejemplo con cada nivel de "severidad" disponible.
7+
8+
"""
9+
10+
11+
# CONFIGURACIÓN
12+
logging.basicConfig(level=logging.DEBUG,
13+
format = "%(asctime)s - %(levelname)s - %(message)s")
14+
15+
# NIVELES DE SEVERIDAD
16+
logging.debug("Este es un mensaje de debug")
17+
logging.info("Este es un mensaje de info")
18+
logging.warning("Este es un mensaje de warning")
19+
logging.error("Este es un mensaje de error")
20+
logging.critical("Este es un mensaje critical")
21+
22+
23+
"""
24+
DIFICULTAD EXTRA (opcional):
25+
* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar
26+
* y listar dichas tareas.
27+
* - Añadir: recibe nombre y descripción.
28+
* - Eliminar: por nombre de la tarea.
29+
* Implementa diferentes mensajes de log que muestren información según la
30+
* tarea ejecutada (a tu elección).
31+
* Utiliza el log para visualizar el tiempo de ejecución de cada tarea.
32+
*/
33+
34+
"""
35+
36+
37+
class TaskManager:
38+
39+
def __init__(self) -> None:
40+
self.task = {}
41+
42+
def _print_time_(function):
43+
def count_time(*args):
44+
start_time = time.time()
45+
result = function(*args)
46+
end_time = time.time()
47+
logging.debug(f"Tiempo de ejecución {end_time-start_time:.6f} segundos.")
48+
return result
49+
return count_time
50+
51+
@_print_time_
52+
def add_task(self, name, description):
53+
if name in self.task.keys():
54+
logging.error(f"Se ha intentado agregar la tarea {name} que ya existía")
55+
else:
56+
self.task[name] = description
57+
logging.info(f"La tarea {name} se ha añadido exitosamente")
58+
logging.info(f"Hay {len(self.task)} tareas almacenadas")
59+
end_time = time.time()
60+
61+
@_print_time_
62+
def show_task(self):
63+
if not self.task:
64+
logging.warning("No había tareas para mostrar")
65+
else:
66+
for key, value in self.task.items():
67+
print(f"Task: {key} - Description: {value}")
68+
logging.info(f"Se han mostrado correctamente {len(self.task)} tareas")
69+
70+
@_print_time_
71+
def delete_task(self, name):
72+
if name in self.task.keys():
73+
del self.task[name]
74+
logging.info(f"La tarea {name} se ha eliminado exitosamente")
75+
else:
76+
logging.error("Se ha intentado eliminar una tarea que no existe")
77+
logging.info(f"Hay {len(self.task)} tareas almacenadas")
78+
79+
80+
81+
82+
83+
manager = TaskManager()
84+
manager.add_task("programacion", "ejercicios")
85+
manager.add_task("programacion", "ejercicios")
86+
manager.add_task("Machine learning", "ejercicios")
87+
manager.add_task("Python", "ejercicios")
88+
manager.add_task("estadistica", "ejercicios")
89+
manager.show_task()
90+
manager.delete_task("maths")
91+
manager.delete_task("estadistica")
92+
manager.delete_task("programacion")
93+
manager.show_task()

0 commit comments

Comments
 (0)