- Author:
- David Brooks <d.brooks@auckland.ac.nz>
- Date:
- 2025-08-25 21:34:13+12:00
- Desc:
- First version of a legend.
- Permanent Source URI:
- https://staging.physiomeproject.org/workspace/c99/rawfile/659ffc8a6abb36383bd560a4245800dc9a6b2dd9/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")