… create a DataStore

from r2x_core import DataStore
from pathlib import Path

# With specific folder
store = DataStore(folder="/path/to/data")

# Use current directory
store = DataStore()

… add files to a DataStore

from r2x_core import DataFile

# Single file
data_file = DataFile(name="generators", fpath="gen.csv")
store.add_data_file(data_file)

# Multiple files
files = [
    DataFile(name="generators", fpath="gen.csv"),
    DataFile(name="loads", fpath="load.csv")
]
store.add_data_files(files)

… read data from a DataStore

# Load specific file
data = store.read_data_file("generators")

# Load without cache
data = store.read_data_file("generators", use_cache=False)

… manage DataStore contents

# List all files
file_names = store.list_data_files()

# Check if file exists
if "generators" in store:
    print("File exists")

# Get file configuration
config = store.get_data_file_by_name("generators")

# Remove files
store.remove_data_file("generators")
store.remove_data_files(["loads", "transmission"])

… save and load DataStore configurations

# Save store configuration
store.to_json("config.json")

# Load from configuration
store = DataStore.from_json("config.json", folder="/path/to/data")