Skip to content

feat: replace argparse with cyclopts, unify CLI/YAML config paths #201

@viraatc

Description

@viraatc

Summary

Replace argparse CLI with cyclopts. config/schema.py Pydantic models become the single source of truth — CLI flags are auto-generated from schema fields.

Key Changes

  • Discriminated union: OfflineBenchmarkConfig/OnlineBenchmarkConfig subclasses in config/schema.py. Both CLI and YAML auto-select the right subclass via Pydantic TypeAdapter.
  • Dataset string format: --dataset [perf|acc:]<path>[,key=value...] with TOML-style dotted paths (e.g. parser.prompt=article, accuracy_config.eval_method=pass_at_1)
  • Sub-model validation: RuntimeConfig, LoadPattern, ColumnRemap self-validate. BenchmarkConfig only handles cross-model checks.
  • Error formatting: Consistent Required: --full.path [--alias] format, Pydantic errors cleaned up

PR

#193

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions