def resolve_input_list(
    data_dir: str,
    input_list_file: str,
    dest_dir: str,
    input_path_parent: str = None,
    resolved_filename: str = "input_list.txt",
) -> str:
    """Resolve the paths in an input list file to absolute paths.

    data_dir: The directory to make the resolved paths children of.
    input_list_file: The input list file to resolve. Unless input_path_parent is specified, the paths in the input
        list file are assumed to be relative to data_dir.
    dest_dir: The directory to write the resolved input list file to.
    input_path_parent: The directory paths in the input list file, if absolute, are children of.
        This is used for android targets where the input list file is already resolved to absolute paths and we need
        create a new input list file for the target data directory.
    resolved_filename: The name of the resolved input list file.
    """
    resolved_input_list_file = (Path(dest_dir) / resolved_filename).resolve()

    with Path(input_list_file).open() as input_list, resolved_input_list_file.open("w") as resolved_input_list:
        for line in input_list:
            # skip output lines
            if line.startswith(("#", "%")):
                resolved_input_list.write(line)
                continue

            # split the line into inputs
            inputs = line.strip().split(" ")
            if len(inputs) > 1 and not all(":=" in x for x in inputs):
                raise ValueError(
                    "Invalid input list. For multiple inputs, input lines must be of the form:"
                    " <input_layer_name>:=<input_layer_path>[<space><input_layer_name>:=<input_layer_path>]"
                )
            # line to write to the resolved input list
            inputs_line = ""
            for input_item in inputs:
                if ":=" in input_item:
                    # multiple inputs on the same line
                    input_name, input_path = input_item.split(":=")
                    if input_path_parent is not None:
                        input_path = Path(input_path).relative_to(Path(input_path_parent))
                    input_path = (Path(data_dir) / input_path).as_posix()
                    inputs_line += f"{input_name}:={input_path} "
                else:
                    input_path = input_item
                    if input_path_parent is not None:
                        input_path = Path(input_path).relative_to(Path(input_path_parent))
                    input_path = (Path(data_dir) / input_path).as_posix()
                    inputs_line += f"{input_path} "
            resolved_input_list.write(inputs_line.strip() + "\n")

    return str(resolved_input_list_file)
Resolve the paths in an input list file to absolute paths.

    data_dir: The directory to make the resolved paths children of.
    input_list_file: The input list file to resolve. Unless input_path_parent is specified, the paths in the input
        list file are assumed to be relative to data_dir.
    dest_dir: The directory to write the resolved input list file to.
    input_path_parent: The directory paths in the input list file, if absolute, are children of.
        This is used for android targets where the input list file is already resolved to absolute paths and we need
        create a new input list file for the target data directory.
    resolved_filename: The name of the resolved input list file.
    
olive/platform_sdk/qualcomm/utils/input_list.py