# Calidad del código Python, en cada carga. # # Existe por una razón concreta: ruff estaba configurado en pyproject.toml desde # el primer commit y nunca se había ejecutado. Cuando por fin se corrió tenía 15 # hallazgos, uno de ellos real —`zip()` sin `strict=` trunca en silencio al más # corto, así que un test que compara dos listas de distinto largo pasaría sin # comparar todo— y otro que delataba un backend sin ninguna prueba. # # Una regla que no se ejecuta no es una regla. name: Python on: push: pull_request: jobs: calidad: runs-on: ubuntu-latest steps: - name: Descargar el repositorio uses: actions/checkout@v4 - name: Preparar Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Instalar ruff run: python -m pip install --upgrade pip "ruff>=0.6" - name: Estilo y errores # Las reglas viven en pyproject.toml, no acá: un solo lugar donde # cambiarlas, y el mismo resultado corriendo `ruff check .` en local. run: ruff check --output-format=github . - name: Formato consistente run: ruff format --check --diff . tests: runs-on: ubuntu-latest steps: - name: Descargar el repositorio uses: actions/checkout@v4 - name: Preparar Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Instalar dependencias # torch de CPU explícitamente: la variante con CUDA pesa unos 2,5 GB y # acá no hay placa. La suite entera corre en CPU a propósito. run: | python -m pip install --upgrade pip python -m pip install torch --index-url https://download.pytorch.org/whl/cpu python -m pip install -e ".[dev]" - name: Suite de tests # Se desactiva la carga automática de plugins: en entornos con otros # paquetes instalados (ROS, por ejemplo) pytest intenta cargar sus # plugins y falla al recolectar por motivos ajenos al proyecto. env: PYTEST_DISABLE_PLUGIN_AUTOLOAD: "1" run: pytest -q