def __init__(
        self,
        io_config: dict,
        num_samples: int,
        data_dir: str = None,
        input_list_file: str = "input_list.txt",
        append_0: bool = False,
        batch_size: int = None,
    ):
        """Initialize FileListRandomDataLoader.

        :param io_config: dictionary containing input and output names and shapes of the model.
        :param num_samples: number of random samples to generate.
        :param data_dir: directory to save random data. If None, a temporary directory is created.
        :param input_list_file: name of the input list file to save.
        :param append_0: whether to append ":0" to input names in the input list file. Might be relevant if the model is
            converted from TensorFlow.
        :param batch_size: number of inputs per chunked input list file for batch processing. If None, all inputs are in
            a single input list file.
        """
        # create temporary directory for random data
        temp_data_dir = tempfile.TemporaryDirectory("olive_tmp_")  # pylint: disable=consider-using-with

        # get data_dir
        if data_dir is None:
            data_dir = Path(temp_data_dir.name).resolve() / "data"
            data_dir.mkdir(parents=True, exist_ok=True)
        else:
            data_dir = Path(data_dir).resolve()

        # create random data
        for input_name, input_shape in zip(io_config["input_names"], io_config["input_shapes"]):
            input_dir = data_dir / input_name
            input_dir.mkdir(parents=True, exist_ok=True)
            raw_shape = np.prod(input_shape)
            name_length = len(str(num_samples))
            for i in range(num_samples):
                input_file = input_dir / (f"{i}".zfill(name_length) + ".raw")
                raw_input = np.random.uniform(-1.0, 1.0, raw_shape).astype(np.float32)
                raw_input.tofile(input_file)

        # create input_list
        input_list_utils.create_input_list(
            str(data_dir),
            io_config["input_names"],
            input_list_file=str((data_dir / input_list_file).resolve()),
            add_input_names=len(io_config["input_names"]) > 1,
            add_output_names=len(io_config["output_names"]) > 1,
            output_names=io_config["output_names"],
            append_0=append_0,
        )

        # get input list with absolute paths
        input_list = input_list_utils.get_input_list(data_dir, input_list_file, temp_data_dir.name)

        super().__init__(data_dir, input_list, None, batch_size)
        # save a reference to the temp_data_dir so that it persists with the object
        self.temp_data_dir = temp_data_dir
Initialize FileListRandomDataLoader.

        :param io_config: dictionary containing input and output names and shapes of the model.
        :param num_samples: number of random samples to generate.
        :param data_dir: directory to save random data. If None, a temporary directory is created.
        :param input_list_file: name of the input list file to save.
        :param append_0: whether to append ":0" to input names in the input list file. Might be relevant if the model is
            converted from TensorFlow.
        :param batch_size: number of inputs per chunked input list file for batch processing. If None, all inputs are in
            a single input list file.
        
olive/platform_sdk/qualcomm/utils/data_loader.py