feat: Add CLI Commands for Browsing and Searching OpenML Tasks
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 68/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- python
- Lĩnh vực
- cli, machine-learning
Hướng nghiên cứu
Start in openml/cli.py, following the existing configure and models command patterns and the tasks_list(), tasks_info(), and tasks_search() entry points. Then read tests/test_openml/test_cli.py and the existing openml.tasks.list_tasks() and get_task() APIs. Done means the three tasks subcommands support the described arguments and mocked tests pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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 tasks: openml tasks list, openml tasks info, and openml tasks search"
Details
What does this PR implement/fix?
This PR adds three new CLI subcommands under openml tasks to improve the user experience of the task catalogue:
openml tasks list - List tasks with optional filtering (tag, task_type, size, pagination, output format)
openml tasks info <task_id> - Display detailed information about a specific task including dataset, task type, target feature, and evaluation measure
openml tasks search - Search tasks by associated dataset name with case-insensitive matching
Why is this change necessary? What is the problem it solves?
Currently, users must write Python code to browse or search OpenML tasks, even for simple tasks like listing available tasks or finding tasks for a specific dataset. This creates a barrier to entry and makes the task catalogue less accessible. Adding CLI commands allows users to interact with the task catalogue directly from the command line without writing code.
This directly addresses the ESoC 2025 goal of "Improving user experience of the task catalogue in AIoD and OpenML".
How can I reproduce the issue this PR is solving and its solution?
Before (requires Python code):
import openml
tasks = openml.tasks.list_tasks(size=10)
for tid in tasks:
task = openml.tasks.get_task(tid)
print(f"{tid}: {task.task_type}")
After (CLI commands):
# List first 10 tasks
openml tasks list --size 10
# Search for tasks related to iris dataset
openml tasks search iris
# Get detailed info about a task
openml tasks info 1
# List classification tasks with a specific tag
openml tasks list --task-type "Supervised Classification" --tag study_14 --format table
# List tasks with pagination
openml tasks list --offset 20 --size 10
Implementation Details:
Added three new functions in openml/cli.py: tasks_list(), tasks_info(), and tasks_search()
Integrated into main CLI parser with proper argument handling
Added comprehensive test suite in tests/test_openml/test_cli.py
Uses existing openml.tasks.list_tasks() and openml.tasks.get_task() functions - no changes to core API
Follows existing CLI patterns (similar to configure and models 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
- Ngôn ngữ chính
- Python
- Star
- 361
- Fork
- 296
- Merge trung bình
- 2 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của openml/openml-python
-
[ENH] list_estimation_procedures() should include the procedure IDsCó thể đã có người làm @Jayant-kernel đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
openml/openml-python#1750 · 3 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
openml/openml-python#1749 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Documentation Good First Issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
openml/openml-python#1708 · 8 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Good First Issue module:Run testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
openml/openml-python#1646 · 8 bình luận · 2 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Good First Issue module:Data testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
openml/openml-python#1644 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của openml/openml-python
Issue tương tự
-
bug status/needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
prowler-cloud/prowler#12887 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: desktop platform: macos priority: p3 status: ready type: enhancement
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
use-agent-os/agent-os#3484 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
open-telemetry/opentelemetry-python-contrib#5113 · 2 bình luận · 2 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
external
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
langchain-ai/docs#6255 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày