Yield (scenario, trajectory) pairs joined on ``scenario_id``.
(
scenarios: list[Scenario],
trajectories: list[PersistedTrajectory],
)
| 144 | |
| 145 | |
| 146 | def join_records( |
| 147 | scenarios: list[Scenario], |
| 148 | trajectories: list[PersistedTrajectory], |
| 149 | ) -> Iterator[tuple[Scenario, PersistedTrajectory]]: |
| 150 | """Yield (scenario, trajectory) pairs joined on ``scenario_id``.""" |
| 151 | by_id: dict[str, Scenario] = {s.id: s for s in scenarios} |
| 152 | for traj in trajectories: |
| 153 | if traj.scenario_id is None: |
| 154 | continue |
| 155 | scenario = by_id.get(traj.scenario_id) |
| 156 | if scenario is not None: |
| 157 | yield scenario, traj |