Problem๏ƒ

Problem: the complete, self-describing benchmark bundle.

load_problem("heftcom2024:forecasting") returns one of these. It carries everything an Experiment needs โ€” dataset, environment factory, objective, schedule, splits โ€” plus the published reference scores that let a result be ranked against the historical field.

class emflow.problems.problem.Splits(train_end: Timestamp, validation: Tuple[Timestamp, Timestamp], holdout: Tuple[Timestamp, Timestamp])[source]๏ƒ

Bases: object

Temporal splits, in target time.

train_end

Training data is everything strictly before this timestamp.

validation

Half-open [start, end) period whose origins are for model iteration โ€” what agents hillclimb on.

holdout

Half-open [start, end) period scored once by the Verifier. Never iterate against it.

train_end: Timestamp๏ƒ
validation: Tuple[Timestamp, Timestamp]๏ƒ
holdout: Tuple[Timestamp, Timestamp]๏ƒ
period(split: str) Tuple[Timestamp, Timestamp][source]๏ƒ
class emflow.problems.problem.RefScore(rank: int, team: str, score: float)[source]๏ƒ

Bases: object

One row of a competitionโ€™s published final leaderboard.

rank: int๏ƒ
team: str๏ƒ
score: float๏ƒ
class emflow.problems.problem.Problem(name: str, dataset: t.Union[Dataset, str, t.Callable[[], Dataset]], make_env: t.Callable[['Problem', str], 'gym.Env'], objective: Objective, schedule: IssueSchedule, splits: Splits, description: t.Optional[str] = None, reference_scores: t.List[RefScore] = <factory>, _dataset_cache: t.Optional[Dataset] = None)[source]๏ƒ

Bases: object

A benchmark problem. Environments are created fresh per run via env() โ€” never share a live env between runs.

name: str๏ƒ
dataset: t.Union[Dataset, str, t.Callable[[], Dataset]]๏ƒ
make_env: t.Callable[['Problem', str], 'gym.Env']๏ƒ
objective: Objective๏ƒ
schedule: IssueSchedule๏ƒ
splits: Splits๏ƒ
description: t.Optional[str] = None๏ƒ
reference_scores: t.List[RefScore]๏ƒ
load_dataset() Dataset[source]๏ƒ

Resolve the dataset (lazily, cached): a Dataset instance, an rb:// manifest reference, or a zero-arg loader callable.

env(split: str = 'validation') gym.Env[source]๏ƒ

Build a fresh environment over the given splitโ€™s origins.

origins(split: str = 'validation')[source]๏ƒ
rank_of(score: float) int | None[source]๏ƒ

1-based position score would have taken on the published leaderboard (None if no reference scores).