OGR Slip2D es un paquete de Python, ogr-slip2d. Mientras no haya instaladores firmados, se instala desde el código fuente público en un entorno virtual.
1.1.1Requisitos#
- Python 3.11 o posterior. La integración continua ejecuta la batería de tests con las versiones 3.11, 3.12 y 3.13.
- Git, para clonar el repositorio (o descargarlo como ZIP desde GitHub).
Todo lo demás lo instala pip a partir de los metadatos del paquete: NumPy, SciPy, Shapely, pyclipper, ezdxf, h5py, Matplotlib, PySide6, QtAwesome, Typer, Rich, Pydantic y ReportLab.
1.1.2Instalación desde el código fuente#
Clona el repositorio, crea dentro un entorno virtual, actívalo e instala el paquete en modo editable:
git clone https://github.com/samuelsl27/OGR-Slip2D.git
cd OGR-Slip2D
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # macOS and Linux
pip install -e .La instalación editable (-e) enlaza el paquete con la carpeta clonada, de modo que basta con git pull para actualizar el código. En macOS y en algunas distribuciones de Linux el intérprete se llama python3.
1.1.3Los tres comandos#
| Comando | Equivalente | Qué arranca |
|---|---|---|
ogr-slip2d | python -m ogr_gui | El programa de escritorio |
ogr-slip2d-cli | python -m ogr_cli | La interfaz de línea de comandos (Sección 5.2) |
ogr-slip2d-mcp | python -m ogr_mcp | El servidor MCP para agentes de IA (Sección 5.1); requiere el extra [mcp] |
Al arrancar, el programa abre un proyecto vacío. La opción File → Load Demo Slope carga un modelo de ejemplo pequeño (un talud 1V:1H de 10 m de altura, en arcilla limosa y con nivel freático), útil para comprobar rápidamente que el análisis funciona. En la Sección 1.2 se construye un modelo desde cero.
1.1.4Extras opcionales#
pip install -e ".[name]".| Extra | Añade | Necesario para |
|---|---|---|
mcp | El SDK oficial de MCP para Python (mcp>=2.1,<3, licencia MIT) | El servidor MCP |
dev | pytest, pytest-qt, black, ruff, mypy | Herramientas de desarrollo |
docs | Sphinx y su tema | Generar la documentación en local |
Se pueden combinar varios extras, por ejemplo pip install -e ".[mcp,dev]". Para conectar un agente de IA, la página de IA y MCP explica los pasos uno a uno.
1.1.5Ejecución de la batería de tests#
El proyecto trae su propio ejecutor de tests, tests/_runner.py, así que no hace falta pytest; además, los módulos de tests no se pueden importar fuera del ejecutor. Los tests gráficos crean widgets de Qt, por lo que necesitan la plataforma «offscreen» de Qt (sin pantalla):
# Windows (PowerShell)
$env:QT_QPA_PLATFORM = "offscreen"; python tests/_runner.py
# macOS and Linux
QT_QPA_PLATFORM=offscreen python tests/_runner.pyLa batería completa (5 265 tests en la versión 0.1.235) tarda en torno a media hora; el tiempo varía entre ejecuciones idénticas, así que es solo una referencia aproximada. Para trabajar en un área concreta, ejecuta solo una parte:
python tests/_runner.py transient # files whose name contains it
python tests/_runner.py -k erfc # tests whose name contains it
python tests/_runner.py --list transient # show the selection, run nothingSi el patrón no coincide con nada, la ejecución termina con el código 2 en lugar de dar por correcta una ejecución vacía. Una ejecución filtrada imprime un aviso FILTERED RUN junto a los totales, porque solo la batería completa puede respaldar la publicación de una versión.
1.1.6Actualización y desinstalación#
Desde la carpeta del repositorio y con el entorno activado, ejecuta git pull y, a continuación, pip install -e . otra vez para incorporar las dependencias nuevas, si las hay. Para desinstalar, borra la carpeta clonada: el entorno virtual está dentro de ella.
1.1.7Idioma de la interfaz#
La interfaz está disponible en inglés y en español (File → Preferences… → Language). El programa arranca en inglés y, en la versión 0.1.235, no guarda el idioma elegido de una sesión a otra. Las capturas de esta documentación muestran la interfaz en inglés.