pypas
Si damos por buena aquella frase de «A programar se aprende programando», sería muy útil disponer de «problemas» a los que encontrar una solución mediante código. Pues este proyecto viene a dar respuesta a este escenario.
pypas
te ofrece cientos de ejercicios con los que podrás practicar tu lenguaje de programación favorito Python.
¡Recuerda!
Aprende Python ... comiendo pipas!
Este paquete proporciona una herramienta en línea de comandos llamada pypas
mediante la cual podrás interactuar con los ejercicios.
Instalación
Hay varias formas de instalar el paquete pypas-cli
:
uv
Requisitos
Necesitas instalar uv que es un gestor (rápido y eficiente) de paquetería para Python.
Una vez que tengas uv
instalado, abre una terminal y ejecuta el siguiente comando:
uv tool install -n -p 3.13 pypas-cli
PATH
Para que puedas usar correctamente el ejecutable pypas
debes añadir a tu PATH
la ruta $HOME/.local/bin
(en Linux/MacOS) o %HOMEPATH%\.local\bin
(en Windows).
pip
Requisitos
Necesitas instalar Python >= 3.10.
Una vez que tengas python
instalado, abre una terminal y ejecuta el siguiente comando:
python -m pip install pypas-cli
pipx
Requisitos
Necesitas instalar pipx que es una herramienta para instalar aplicaciones Python en entornos aislados.
Una vez que tengas pipx
instalado, abre una terminal y ejecuta el siguiente comando:
pipx install pypas-cli
Actualización
Es fundamental que tengas instalada la última versión disponible de pypas-cli
, para evitar fallos y disponer de las mejoras implementadas.
Para actualizar a la última versión de pypas-cli
puedes usar la propia herramienta (self-upgrading):
pypas upgrade
Actualización «manual»
Si tienes algún problema con el comando de actualización pypas upgrade
, también puedes actualizar manualmente el paquete pypas-cli
. Este proceso dependerá del gestor de paquetes que hayas utilizado:
- uv →
uv tool upgrade --no-cache pypas-cli
- pip →
python -m pip install --no-cache -U pypas-cli
- pipx →
pipx upgrade pypas-cli
ÚLTIMA VERSIÓN
La última versión disponible de pypas-cli es la 0.1.16
Listar los ejercicios
Para listar todos los ejercicios «públicos» basta con ejecutar el siguiente comando:
pypas list
Filtros
Es posible aplicar distintos filtros para refinar el listado de ejercicios:
-
Filtrar por tema principal (primary topic):
pip list -p <topic>
-
Filtrar por tema secundario (secondary topic):
pip list -s <topic>
-
Filtrar por frame (secondary topic):
pip list -f <topic>
Combinando filtros
Es posible combinar los filtros anteriores para obtener un mejor resultado.
Obtener un ejercicio
Cada ejercicio dispone de un slug que lo identifica (nombre único).
Supongamos que queremos trabajar en el ejercicio add
. Para obtenerlo escribimos el siguiente comando:
pypas get add
El comando anterior creará una carpeta add
con los siguientes directorios y ficheros:
.
├── docs
│ └── README.pdf
├── main.py
├── tests
│ ├── __init__.py
│ └── test_main.py
└── vendor.py
Es posible que esta estructura cambie ligeramente, en función de las características del ejercicio.
Enunciado de un ejercicio
Una vez dentro de la carpeta del ejercicio, podemos visualizar el enunciado del ejercicio mediante el siguiente comando:
pypas doc
Previsiblemente se abrirá un documento .pdf
con la explicación del ejercicio.
Dentro de la carpeta
Este ejercicio requiere estar dentro de la carpeta del ejercicio → cd <ejercicio>
Probar un ejercicio
El punto de entrada de la mayoría de los ejercicios es main.py
. Será el fichero que debes cumplimentar buscando la etiqueta # TODO
.
Para probar (testear) un ejercicio puedes usar:
pypas test
pytest
En realidad pypas test
es un simple «wrapper» para pytest. Aprovecha todo el potencial de pytest
usando las opciones en línea de comandos que ofrece.
Los tests que se ejecutan son aquellos que viven en la carpeta tests
de cada ejercicio. Por lo tanto también puedes probar el ejercicio con:
pytest
Dentro de la carpeta
Este ejercicio requiere estar dentro de la carpeta del ejercicio → cd <ejercicio>
Ejecutar un ejercicio
Eventualmente podrías querer ejecutar tu código en vez de lanzar las pruebas.
Para explicar cómo, vamos a partir del ejercicio add
. Este sería su main.py
una vez terminado:
def run(a: int, b: int) -> int:
result = x + y
return result
# DO NOT TOUCH THE CODE BELOW
# ...
Tendrás que crear un fichero args.py
dentro de la carpeta del ejercicio con los valores que quieras dar a los parámetros de la función principal:
a = 3
b = 7
Ahora podrás ejecutar tu programa con:
pypas run
Puedes utilizar esta estrategia para depurar los errores o mejorar tu código.
python
En realidad pypas run
es un simple «wrapper» para python main.py
. Por tanto puedes usar este comando directamente o las variaciones que creas correspondiente.
Dentro de la carpeta
Este ejercicio requiere estar dentro de la carpeta del ejercicio → cd <ejercicio>
Actualizar un ejercicio
Es posible que, debido a la corrección de errores o mejoras introducidas, haya actualizaciones de los ejercicios.
En ese caso, puedes actualizar el ejercicio con:
pypas update
Se hará automáticamente una copia de seguridad (local) de aquellos ficheros (propios) que puedan ser sobreescritos.
Dentro de la carpeta
Este ejercicio requiere estar dentro de la carpeta del ejercicio → cd <ejercicio>
Comprimir un ejercicio
Si quisieras comprimir todo el contenido del ejercicio para enviarlo o almacenarlo, lo puedes hacer con:
pypas zip
El comando anterior genera un fichero <ejercicio>.zip
dentro de la propia carpeta del ejercicio con todos los ficheros (exluyendo ciertos ficheros «temporales» o «auxiliares»).
Dentro de la carpeta
Este ejercicio requiere estar dentro de la carpeta del ejercicio → cd <ejercicio>
Autenticarse como usuario
Para poder autenticarte como usuario debes recibir un token por parte del administrador. Una vez que dispongas de este «token» debes ejecutar el siguiente comando:
$ pypas auth <pon-aqui-tu-token-quitando-los-angulitos>
Si la autenticación ha sido satisfactoria, se creará un fichero .pypas.toml
en el HOME
del usuario con la configuración correspondiente.
Desautenticarse
Es posible eliminar el «token» de autenticación ejecutando el comando:
pypas unauth
Entregar un ejercicio
Para entregar (subir) un ejercicio a pypas.es debes ejecutar el siguiente comando:
pypas put
Requiere autenticación
Este comando necesita estar previamente autenticado/a.
Dentro de la carpeta
Este ejercicio requiere estar dentro de la carpeta del ejercicio → cd <ejercicio>
El comando anterior comprime todos los archivos de tu ejercicio y los sube a pypas.es.
Seguir tu actividad
Para seguir tu actividad puedes lanzar el siguiente comando:
pypas log
Con el comando anterior podrás obtener la información de tus entregas, separadas por frames. Un frame es un "bloque de ejercicios" que suele tener asociada una fecha de comienzo y una fecha de finalización.
Dentro de cada «frame» verás la siguiente información:
- Uploaded: número de ejercicios entregados sobre el total de ejercicios del frame.
- Passed: número de ejercicios que han pasado todos los tests.
- Failed: número de ejercicios que no han pasado todos los tests.
- Waiting: número de ejercicios que están pendientes de testearse.
- Score: nota (puntuación). Ejercicios satisfactorios («passed») entre el total disponible.
Puedes obtener información más detallada sobre cada ejercicio entregado utilizando lo siguiente:
pypas log -v
Puedes obtener información de un determinado «frame» utilizando lo siguiente:
pypas log -f <frame>
Requiere autenticación
Este comando necesita estar previamente autenticado/a.
Miscelánea
pypas --version
te proporciona la versión actual instalada del paquetepypas-cli
.pypas --help
te proporciona ayuda sobre el modo de uso del programa. Puedes aplicar--help
sobre cualquier comando.
Si quieres informar de cualquier error o propuesta de mejora, lo puedes hacer en GitHub o escribiendo un correo (ver «footer»).