feat: Add CLI Commands for Browsing and Searching OpenML Runs
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 技术栈
- python
- 领域
- cli, machine-learning
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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
- 主要语言
- Python
- 星标
- 366
- 派生
- 306
- 平均合并
- 2 天 20 小时
- 30 天内合并 PR
- 2
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
openml/openml-python 的其他 Issue
-
[BUG] create_task() hardcodes task_type="None" instead of inferring type string from TaskType可能已有人在做 @shellyco-code 于 2 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 80/100
openml/openml-python#1766 ·
维护者通常 2 天内回复
-
Enhancement: Add missing **kwargs support to list_setups and list_evaluations可能已有人在做 @shellyco-code 于 9 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 84/100
openml/openml-python#1753 · 1 条评论 ·
维护者通常 2 天内回复
-
[ENH] list_estimation_procedures() should include the procedure IDs可能已有人在做 @Jayant-kernel 于 13 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
openml/openml-python#1750 · 3 条评论 · 已指派 1 人 ·
维护者通常 2 天内回复
-
[DOC] Update documentation for running tests with local services可能已有人在做 @nishtha-agarwal-211 于 212 天前认领。 未关闭Documentation Good First Issue
难度 2/5 1-3 小时 新手友好度 74/100
openml/openml-python#1708 · 8 条评论 ·
维护者通常 2 天内回复
-
[MNT] Add Missing Assertions to Run Function Tests可能已有人在做 @Akarshkushwaha 于 231 天前认领。 未关闭Good First Issue module:Run testing
难度 2/5 1-3 小时 新手友好度 82/100
openml/openml-python#1646 · 9 条评论 · 3 个 reaction ·
维护者通常 2 天内回复
查看 openml/openml-python 的全部 Issue
相似的 Issue
-
[Bug]: `graphify export svg` writes a graph.svg that is not well-formed XML when a label contains a control character可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
Graphify-Labs/graphify#4241 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 72/100
-
DeviceTracker未关闭
难度 2/5 1-3 小时 新手友好度 63/100
XiaoMi/ha_xiaomi_home#1821 ·
维护者通常 1 天内回复
-
Maven path-index: "Ambiguous or noncanonical artifact path" error does not report the offending path未关闭
难度 2/5 1-3 小时 新手友好度 76/100
pulp/pulp_maven#524 ·
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复