Source code for physiomotion4d.cli.download_data

#!/usr/bin/env python
"""Command-line interface for downloading PhysioMotion4D example data."""

from __future__ import annotations

import argparse
import sys
from pathlib import Path
from typing import Optional

from ..data_download_tools import DataDownloadTools

SLICER_HEART_CT = "Slicer-Heart-CT"


[docs] def main(argv: Optional[list[str]] = None) -> int: """Download a supported PhysioMotion4D example dataset.""" parser = argparse.ArgumentParser( description="Download PhysioMotion4D example data", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=f""" Examples: %(prog)s %(prog)s {SLICER_HEART_CT} --directory data/Slicer-Heart-CT """, ) parser.add_argument( "data_name", nargs="?", choices=[SLICER_HEART_CT], default=SLICER_HEART_CT, help=f"Dataset to download (default: {SLICER_HEART_CT})", ) parser.add_argument( "--directory", default=f"data/{SLICER_HEART_CT}", help=f"Directory where data will be stored (default: data/{SLICER_HEART_CT})", ) args = parser.parse_args(argv) output_dir = Path(args.directory) if args.data_name == SLICER_HEART_CT: data_file = DataDownloadTools.DownloadSlicerHeartCTData(output_dir) print(f"Downloaded {SLICER_HEART_CT} to: {data_file}") return 0 parser.error(f"Unsupported dataset: {args.data_name}")
if __name__ == "__main__": sys.exit(main())