#!/usr/bin/env python
import argparse
import sys

from resdata.summary import Summary
from resdata.util.util import CTime, TimeVector

parser = argparse.ArgumentParser()
parser.add_argument("input_case", metavar="input_case", type=str)
parser.add_argument("output_case", metavar="output_case", type=str)
parser.add_argument("--num-timestep", type=int, default=50)
parser.add_argument("--refcase", metavar="refcase", type=str)
parser.add_argument("--extrapolation", action="store_true")
args = parser.parse_args()

input_case = Summary(args.input_case)
if args.refcase:
    refcase = Summary(args.refcase)
    report_only = False
    time_points = refcase.alloc_time_vector(report_only)
else:
    start_time = input_case.get_data_start_time()
    end_time = input_case.get_end_time()
    time_points = TimeVector.create_linear(
        CTime(start_time), CTime(end_time), args.num_timestep
    )

output_case = input_case.resample(
    args.output_case,
    time_points,
    lower_extrapolation=args.extrapolation,
    upper_extrapolation=args.extrapolation,
)
output_case.fwrite()
