feat: Add CLI Commands for Browsing and Searching OpenML Runs
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- cli, machine-learning
Línea de trabajo
Start with the runs_list(), runs_info(), and runs_download() entry points in openml/cli.py, then review the existing CLI patterns for configure, models, datasets, and tasks. Run the CLI tests in tests/test_openml/test_cli.py; done means the three commands support the documented filters, details, downloads, formatting, and mocked API behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Metadata
New Tests Added: Yes
Documentation Updated: No (CLI help text serves as documentation)
Change Log Entry: "Add CLI commands for browsing and searching OpenML runs: openml runs list, openml runs info, and openml runs download"
Details
What does this PR implement/fix?
This PR adds three new CLI subcommands under openml runs to improve the user experience of the run catalogue:
openml runs list - List runs with optional filtering (task_id, flow_id, uploader, tag, pagination, output format)
openml runs info <run_id> - Display detailed information about a specific run including task, flow, evaluations, and parameter settings
openml runs download <run_id> - Download a run and save predictions to local cache
Why is this change necessary? What is the problem it solves?
Currently, users must write Python code to browse or search OpenML runs, even for simple tasks like listing runs for a specific task or downloading run results. This creates a barrier to entry and makes the run catalogue less accessible. Adding CLI commands allows users to interact with the run catalogue directly from the command line without writing code.
This directly addresses the ESoC 2025 goal of "Improving user experience of the run catalogue in AIoD and OpenML".
How can I reproduce the issue this PR is solving and its solution?
Before (requires Python code):
import openml
runs = openml.runs.list_runs(task=[1], size=10)
for rid, run_dict in runs.items():
print(f"{rid}: Task {run_dict['task_id']}")
After (CLI commands):
# List first 10 runs for a specific task
openml runs list --task 1 --size 10
# List runs by a specific uploader
openml runs list --uploader "John Doe"
# Get detailed info about a run
openml runs info 12345
# Download a run and cache predictions
openml runs download 12345
# List runs for a specific flow, formatted as table
openml runs list --flow 42 --format table --verbose
# Filter by both task and flow
openml runs list --task 1 --flow 42
Implementation Details:
Added three new functions in openml/cli.py: runs_list(), runs_info(), and runs_download()
Integrated into main CLI parser with proper argument handling
Added comprehensive test suite in tests/test_openml/test_cli.py
Uses existing openml.runs.list_runs() and openml.runs.get_run() functions - no changes to core API
Follows existing CLI patterns (similar to configure, models, datasets, and tasks commands)
All tests use mocked API calls to avoid requiring server connections
Any other comments?
All pre-commit hooks pass (ruff, mypy, formatting)
No breaking changes
Follows project code style and patterns
Ready for review
- Lenguaje dominante
- Python
- Estrellas
- 362
- Forks
- 304
- Merge medio
- 2 d 20 h
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de openml/openml-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
openml/openml-python#1753 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[ENH] list_estimation_procedures() should include the procedure IDsPosiblemente ocupada @Jayant-kernel la tomó hace 7 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
openml/openml-python#1750 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
openml/openml-python#1749 ·
Los mantenedores suelen responder en 1 día
-
Documentation Good First Issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
openml/openml-python#1708 · 8 comentarios ·
Los mantenedores suelen responder en 1 día
-
Good First Issue module:Run testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
openml/openml-python#1646 · 9 comentarios · 3 reacciones ·
Los mantenedores suelen responder en 1 día
Todos los issues de openml/openml-python
Issues similares
-
#bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
apache/superset#44923 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
lawndoc/stack-back#123 ·
-
Add: EntuneAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
AbdelStark/awesome-typesafe-jev#187 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
repowise-dev/repowise#2966 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días