def METHOD_NAME(self, data, **kwargs):
    script_id = data.pop("script_id", None)
    params_script = data["params"].pop("script", None)
    if not data.get("script"):
        if params_script:
            script = ExecutionScript.Schema().load(params_script)
        elif script_id:
            script = _get_job_script(script_id)
            if script is None:
                log(f"Failed to get script by id for {script_id}")
                script = get_job_local_script(data["script_name"])
            else:
                log(f"Failed to get script by id for {script_id}")
                script = ExecutionScript(
                    script_id, run_mode=AlgorithmRunMode.NOT_APPLICABLE
                )
        else:
            script = ExecutionScript(
                "Unknown script", run_mode=AlgorithmRunMode.NOT_APPLICABLE
            )
        data["script"] = ExecutionScript.Schema().dump(script)
    script_name_regex = re.compile("([0-9a-zA-Z -]*)(?: *)([0-9]+(_[0-9]+)+)")
    matches = script_name_regex.search(data["script"].get("name"))
    if matches:
        data["script"]["name"] = matches.group(1).rstrip()
        data["script"]["version"] = matches.group(2).replace("_", ".")
    return data