Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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