#!/usr/bin/env python
"""
Convert CrystFEL stream file to an mtz for processing in careless
"""
import argparse
import reciprocalspaceship as rs

parser = argparse.ArgumentParser(
    formatter_class=argparse.RawTextHelpFormatter, description=__doc__
)

parser.add_argument(
    "stream", help="File in CrystFEL stream format. Must end with .stream"
)
parser.add_argument(
    "-o",
    "--out",
    type=str,
    help="Output filename. If nothing specified, will use <streamname>.mtz",
    default=None,
)
parser.add_argument(
    "-g",
    "--spacegroup",
    type=int,
    required=True,
    help="Space group number for the output mtz",
)
parser.add_argument(
    "-c",
    "--cell",
    nargs=6,
    metavar=("a", "b", "c", "alpha", "beta", "gamma"),
    type=float,
    required=True,
    help="Cell parameters for the output mtz",
)

parser = parser.parse_args()

stream = parser.stream
out = parser.out

if out is None:
    out = f"{stream.removesuffix('.stream')}.mtz"  # replace file sufix

dataset = rs.read_crystfel(stream, spacegroup=parser.spacegroup)
dataset.cell = parser.cell
dataset.write_mtz(out)
