import traceback
from pycompss.api.task import task
from pycompss.api.constraint import constraint
from pycompss.api.parameter import FILE_IN, FILE_OUT
from biobb_common.tools import file_utils as fu
from biobb_md.gromacs import genrestr

@task(input_structure_path=FILE_IN, input_ndx_path=FILE_IN, input_top_zip_path=FILE_IN, output_top_zip_path=FILE_OUT, on_failure="IGNORE")
def genrestr_pc(input_structure_path, input_ndx_path, input_top_zip_path,
                output_top_zip_path, properties, **kwargs):
    try:
        genrestr.Genrestr(input_structure_path=input_structure_path, input_ndx_path=input_ndx_path,
                          input_top_zip_path=input_top_zip_path, output_top_zip_path=output_top_zip_path,
                          properties=properties, **kwargs).launch()
    except Exception:
        traceback.print_exc()
        fu.write_failed_output(output_top_zip_path)
