Examples
scitex-io ships with example scripts in the examples/ directory.
Run them all at once:
cd examples/
./00_run_all.sh
Example 1: Basic Save/Load
Save and load common scientific data formats.
from scitex_io import save, load
import numpy as np
# NumPy array
arr = np.arange(12).reshape(3, 4)
save(arr, "array.npy")
loaded = load("array.npy")
assert (loaded == arr).all()
# Dictionary as JSON
config = {"learning_rate": 0.001, "epochs": 100, "model": "resnet"}
save(config, "config.json")
assert load("config.json")["learning_rate"] == 0.001
# Dictionary as YAML
save(config, "config.yaml")
# CSV via pandas
import pandas as pd
df = pd.DataFrame({"x": [1, 2, 3], "y": [4, 5, 6]})
save(df, "data.csv")
Output saved to examples/01_basic_save_load_out/:
File |
Content |
|---|---|
|
3x4 NumPy array |
|
Training configuration |
|
Same config in YAML format |
|
Simple DataFrame |
Example 2: Custom Format
Register and use a custom format handler.
from scitex_io import register_saver, register_loader, save, load
@register_saver(".tsv3")
def save_tsv3(obj, path, **kwargs):
with open(path, "w") as f:
for row in obj:
f.write(" ".join(str(v) for v in row) + "\n")
@register_loader(".tsv3")
def load_tsv3(path, **kwargs):
with open(path) as f:
return [line.strip().split(" ") for line in f]
data = [["Alice", "30"], ["Bob", "25"]]
save(data, "custom.tsv3")
assert load("custom.tsv3") == data
Output saved to examples/02_custom_format_out/custom.tsv3.
Part of SciTeX
When used inside the SciTeX framework, I/O is automatically tracked for reproducibility:
import scitex
@scitex.session
def main(CONFIG=scitex.INJECTED):
data = scitex.io.load("input.csv") # auto-tracked by clew
result = process(data)
scitex.io.save(result, "output.csv") # auto-tracked by clew
return 0
scitex.io delegates to scitex_io — they share the same API and registry.