This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Realizando múltiples peticiones a una API usando conexiones concurrentes. | |
Inicialmente se había usando le módulo requests y funciones async pero como | |
el módulo requests no permite llamadas asíncronas bloquea las funciones | |
asíncronas de Python y termina siendo secuencial. | |
Se remplaza el módulo resquests por aiohttp y se usa el módulo asyncio para | |
el manejo de la cola de tareas por ejecutar. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Realizando múltiples peticiones a una API usando conexiones concurrentes. | |
Inicialmente se había usando le módulo requests y funciones async pero como | |
el módulo requests no permite llamadas asíncronas bloquea las funciones | |
asíncronas de Python y termina siendo secuencual. | |
Se remplaza el módulo resquests por aiohttp y se usa el módulo asyncio para | |
el manejo de la cola de tareas por ejecutar. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Ejemplo ejecutando una función con argumentos en otro proceso | |
from time import sleep, time | |
from multiprocessing import Process, Pool | |
import pandas as pd | |
def tarea(n): | |
""" Tarea a realizar a cada elemento""" | |
sleep(0) # Con algún tiempo de espera | |
return (n*3.5)**(0.5) # Algunas operaciones |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Reto 5 | Código Facilito | |
""" | |
Listo, llegamos al reto número 5 de la semana. Nuestro programa ya | |
funciona sumamente bien. Ya podemos crear, listar y editar usarios. | |
Sin embargo, muy probablemente el código que tengamos hasta ahora pueda | |
mejorar significativamente, es por ello que, para el reto de hoy vamos a | |
definir 5 nuevas funciones; esto con la finalidad de poder separar nuestro | |
código y que este sea fácil de leer, comprender y sobre todo mantener. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Reto 4 | Código Facilito | |
""" | |
Ya nos encontramos en la recta final de nuestra semana, y lo que haremos | |
ahora, cómo ya es costumbre, será añadir más funcionalidades a nuestro | |
programa. | |
Puntualmente 4 nuevas funcionalidades. Aquí van. | |
1.- Ahora todos los valores que representan a un usuario: Nombre, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
print("-------") | |
print("REGISTRO DE USUARIOS") | |
print("-------") | |
mas_regs = True # Usamos booleanos para banderas en lugar cadenas "S" | |
# También asginamos un nombre descriptivo a la bandera | |
registers = [] # Sólo se necesita una lista para acumular todos los regs. | |
id_user = 1 # Esto indica el id del usuario en turno y también la | |
# cantidad de usuarios totales, al final claro está! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Reto 3 | Código Facilito | |
""" | |
Para este tercer reto lo que haremos será añadir 2 nuevas funcionalidades | |
a nuestro programa de registro de usuarios. | |
Estas funcionalidades son las siguientes | |
1.- Siempre que se registre un nuevo usuario de forma exitosa generaremos | |
un identificador único para este registro/usuario. Te recomiendo sea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Reto 1 | Código Facilito | |
""" | |
Para este segundo reto de la semana tu objetivo será incrementar el | |
funcionamiento del programa del día de ayer. Si recordamos, ayer | |
construimos un programa en Python capaz de registrar un nuevo usuario | |
en el sistema. Pues bien, continuando con el proyecto, el reto de hoy | |
será que podremos registrar un N cantidad de nuevos usuarios. | |
Para esto el programa deberá preguntar cuando nuevos usuarios se |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Reto 1 | Código Facilito | |
""" | |
Para este primer reto de la semana, tu objetivo será poder crear un | |
programa en Python el cual permita registrar a un usuario en el sistema. | |
El programa deberá pedir a nuestro usuario final ingrese su | |
siguiente información. | |
- Nombre(s) | |
- Apellidos |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Los cambios realizados en ésta versión están más enfocados en mostrar como | |
trabajan las tareas concurrentes usando funciones asincronas que el tema de | |
tipos. | |
Así que se modificó el código para realizar dos tareas concurrentes, una | |
durando 10 segundos que se lanza antes y una durando 3 seg que se lanza | |
después y entonces se observa como las funciones asincronas son no bloqueantes | |
(claro si fueron diseñadas de esa forma) por lo que entonces la tarea de 3 seg | |
termina antes que la lanzada de 10 seg. |
NewerOlder