T0. Herramientas
[Actualizado a 13 de octubre de 2026]
T0. Herramientas🔗
(Necesitamos introducir este RA como coordinación con el resto de módulos ya que NO podemos desarrollar este módulo sin sintaxis, por lo que impartimos parte del módulo de "Entornos y sistaxis en Python")
1. Control de versiones🔗
Emplearemos GIT.
2. Entornos virtuales🔗
Evitaremos conflictos entre las versiones de las dependencias con venv:
- Crear:
python3 -m venv my-venv - Cargar:
- Desactivar:
deactivate
Fuente: https://elpythonista.com.
3. Contenedores docker🔗
Aislamiento y distribución de aplicaciones con docker.
4. Estilos de codificación🔗
Para tener código legible en nuestro "equipo de trabajo" emplearemos Flake8.
Flake 8 es una herramienta de línea de comandos (command-line tool) que combina tres herramientas de verificación de código (code checking tools) populares en Python:
- PyFlakes: Verifica la existencia de errores lógicos en tu código, como variables no utilizadas (unused variables) o nombres que no se encuentran (undefined names).
- pycodestyle (anteriormente pep8): Asegura que tu código cumpla con las directrices de estilo del código Python, como se describe en la PEP 8 (Python Enhancement Proposal 8). Esto incluye cosas como la longitud de línea, el espaciado y la nomenclatura.
- McCabe: Mide la complejidad ciclomática (cyclomatic complexity) de tu código. Un código con alta complejidad ciclomática tiende a ser más difícil de entender y probar.
Info
Código PYTHONICO: es aquel que aprovecha el lenguaje para producir código más legible.
Ver presentación
5. require o fetch API (Postman like)🔗
import requests
resp = requests.get('http://www.mywebsite.com/user')
resp = requests.post('http://www.mywebsite.com/user')
resp = requests.put('http://www.mywebsite.com/user/put')
resp = requests.delete('http://www.mywebsite.com/user/delete')
userdata = {"firstname": "John", "lastname": "Doe", "password": "jdoe123"}
resp = requests.post('http://www.mywebsite.com/user', data=userdata)
resp.json()
resp.text
También podéis profundizar analizando el Postman casero.
6. Test unitarios🔗
Antes de comenzar con framworks de test vamos a lo más básico, la sentencia assert.
Las afirmaciones o asserts son elementos que son siempre verdaderas o arrojarán una excepción.
Podemos probarlo con las 2 siguientes líneas:
Info
Aunque podemos omitir el mensaje de error assert False, perderemos información relevante.
(pytest o unittest)
Tenemos 2 opciones excelentes:
Usaremos pytest si lo nuestro es la programación basada en funciones y unittest si nos encontramos cómodos con la POO, y en especial si ya hemos trabajado con frameworks de test como Junit para Java.
7. Jupyter Notebook🔗
- Para probarlo.
- Para algo más serio podemos montar nuestro propio
Jupyter server.
Referencias:🔗
Professional Skills🔗
En esta unidad hemos trabajado las skills profesionales:
Version Control with Git🔗
git clone,init,add,commit,push,pull- Branching, merging, and resolving conflicts
- GitHub workflow — pull requests and code reviews
- Writing useful commit messages
Docker & Deployment Basics🔗
- Qué es docker y porqué se utiliza
- Corriendo
runcontendores con docker cli - Generando recetas
compose.ymlcondocker compose - Creando imágenes con
Dockerfile - Despleguando contenedores en la nube
Clean Code Habits🔗
- PEP 8 style guide — formatting Python code correctly
- Type hints and annotations (
def greet(name: str) -> str:) - Docstrings and inline documentation
- Refactoring — turning messy code into clean code
Testing🔗
- Unit testing with
pytestandunittest - Writing test cases, mocking dependencies
- Code coverage reports
- Test-driven development (TDD) mindset