Location: Blood volume control model @ 36c5b4b1c6eb / create_omex_files.py

Author:
GitHub <noreply@github.com>
Date:
2025-10-02 23:19:51+13:00
Desc:
Merge pull request #3 from dbrnz/svg-margins Add margins to the map's SVG.
Permanent Source URI:
https://staging.physiomeproject.org/workspace/c99/rawfile/36c5b4b1c6eb116cee52bc669cae9f78b470cac5/create_omex_files.py

import zipfile
from pathlib import Path


def create_zip(output_zip, files_to_add):
    """
    Create a zip file from a list of files.

    Parameters
    ----------
    output_zip : str or Path
        Path for the output ZIP file.
    files_to_add : list of tuple
        List of (source_path, archive_name) tuples.
        If archive_name is None, the original filename is used.
    """
    output_zip = Path(output_zip)

    with zipfile.ZipFile(output_zip, 'w', compression=zipfile.ZIP_DEFLATED) as zipf:
        for src, arcname in files_to_add:
            src_path = Path(src)
            if not src_path.is_file():
                print(f"Skipping missing file: {src_path}")
                continue
            if arcname is None:
                arcname = src_path.name
            zipf.write(src_path, arcname)
            print(f"Added {src_path} as {arcname}")


if __name__ == "__main__":

    baseline_protocol_files = [
        ("BloodVolumeControl.cellml", None),
        ("BloodVolumeControl.sedml", None),
        ("manifest.xml", None),
        ("simulation.json", None)
    ]

    eat_drink_protocol_files = [
        ("BloodVolumeControl.cellml", None),
        ("EatDrink.sedml", None),
        ("manifest-EatDrink.xml", "manifest.xml"),
        ("simulation-EatDrink.json", "simulation.json")
    ]

    create_zip("baseline-simulation.omex", baseline_protocol_files)
    print("ZIP file created: baseline-simulation.omex")

    create_zip("eat-drink-simulation.omex", eat_drink_protocol_files)
    print("ZIP file created: eat-drink-simulation.omex")