Skip to content

Use dataclasses.replace in _finalize_summary #18

Description

@davidkfoss

Problem

_finalize_summary (episode.py:374-396) re-lists every field of EpisodeSummary by hand just to attach 5 reward-related fields. Any new field added to EpisodeSummary must also be added here, or it gets silently dropped on round-trip.

Proposal

Use dataclasses.replace:

return dataclasses.replace(
    summary,
    reward=reward,
    reward_base=reward_base,
    ...,
)

Removes the manual field list and the implicit "add it in two places" coupling.

Acceptance criteria

  • _finalize_summary uses dataclasses.replace.
  • No behavior change; existing tests pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions