Skip to content

Implement IO module wrapping JLD2.jl + JSON3.jl #31

@jc-macdonald

Description

@jc-macdonald

Summary

Port io.py for saving and loading study results.

Functions to Implement

Function Description Julia dep
save_results(path, results::ResultsTable) Serialize results JLD2.jl (arrays) + JSON3.jl (metadata)
load_results(path) -> ResultsTable Deserialize results JLD2.jl + JSON3.jl

Design Notes

  • Python version uses .npz + .json sidecar. Julia equivalent: .jld2 (HDF5-based, handles arbitrary Julia types) + .json metadata.
  • Round-trip fidelity is critical: save then load must produce identical ResultsTable.
  • Consider also supporting Arrow/Parquet via Arrow.jl for interop with Python/R if the ResultsTable uses Tables.jl interface.

Dependencies

[deps]
JLD2 = "..."
JSON3 = "..."

[compat]
JLD2 = "0.5"
JSON3 = "1"

Acceptance Criteria

  • Round-trip test: save_resultsload_results produces identical data
  • Handles mixed numeric + string metadata
  • File format documented

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions