parameters: (self, need_to_slice, object_names, file_names,
                              serialization_data)
docstring: Performs a parallel download of multiple objects using the fan strategy.
  
      Args:
        need_to_slice: If True, additionally apply the slice strategy to each
                       object in object_names.
        object_names: A list of object names to be downloaded. Each object must
                      already exist in the test bucket.
        file_names: A list, corresponding by index to object_names, of file names
                    for downloaded data. If None, discard downloaded data.
        serialization_data: A list, corresponding by index to object_names,
                            of serialization data for each object.
docstring_summary: Performs a parallel download of multiple objects using the fan strategy.
docstring_tokens: Performs a parallel download of multiple objects using the fan strategy .
function: def PerformFannedDownload(self, need_to_slice, object_names, file_names,
                              serialization_data):
      """Performs a parallel download of multiple objects using the fan strategy.
  
      Args:
        need_to_slice: If True, additionally apply the slice strategy to each
                       object in object_names.
        object_names: A list of object names to be downloaded. Each object must
                      already exist in the test bucket.
        file_names: A list, corresponding by index to object_names, of file names
                    for downloaded data. If None, discard downloaded data.
        serialization_data: A list, corresponding by index to object_names,
                            of serialization data for each object.
      """
      args = []
      for i in range(len(object_names)):
        file_name = file_names[i] if file_names else None
        args.append(FanDownloadTuple(
            need_to_slice, object_names[i], file_name,
            serialization_data[i]))
      self.Apply(_DownloadObject, args, _PerfdiagExceptionHandler,
                 ('total_requests', 'request_errors'),
                 arg_checker=DummyArgChecker, parallel_operations_override=True,
                 process_count=self.processes, thread_count=self.threads)
function_tokens: def PerformFannedDownload ( self , need_to_slice , object_names , file_names , serialization_data ) : args = [ ] for i in range ( len ( object_names ) ) : file_name = file_names [ i ] if file_names else None args . append ( FanDownloadTuple ( need_to_slice , object_names [ i ] , file_name , serialization_data [ i ] ) ) self . Apply ( _DownloadObject , args , _PerfdiagExceptionHandler , ( 'total_requests' , 'request_errors' ) , arg_checker = DummyArgChecker , parallel_operations_override = True , process_count = self . processes , thread_count = self . threads )