Source code for voxcity.migrate
"""Batch converter for pre-v3 VoxCity HDF5 files.
Usage::
python -m voxcity.migrate FILE [FILE ...] # writes <stem>_v3.h5 next to each
python -m voxcity.migrate FILE --out PATH # explicit destination (single input)
Thin argparse wrapper over :func:`voxcity.io.migrate_h5`.
"""
import argparse
import os
import sys
from .io import migrate_h5
[docs]
def main(argv=None):
parser = argparse.ArgumentParser(
prog="python -m voxcity.migrate",
description="Convert pre-v3 VoxCity HDF5 files to the v3 format.",
)
parser.add_argument("files", nargs="+", help="pre-v3 .h5 files to convert")
parser.add_argument(
"--out",
default=None,
help="destination path (only valid with a single input file); "
"default: <stem>_v3.h5 next to each input",
)
args = parser.parse_args(argv)
if args.out and len(args.files) > 1:
parser.error("--out is only valid with a single input file")
failures = 0
for src in args.files:
stem, ext = os.path.splitext(src)
dst = args.out or f"{stem}_v3{ext or '.h5'}"
try:
migrate_h5(src, dst)
except (OSError, ValueError) as e:
print(f"error: {src}: {e}", file=sys.stderr)
failures += 1
continue
print(f"{src} -> {dst}")
return 1 if failures else 0
if __name__ == "__main__":
sys.exit(main())