def GetCSVGeneratorFactory(kind, csv_filename, batch_size, csv_has_header, openfile=open, create_csv_reader=csv.reader):
 loader = Loader.RegisteredLoader(kind)
 loader._Loader__openfile = openfile
 loader._Loader__create_csv_reader = create_csv_reader
 record_generator = loader.generate_records(csv_filename)
 def CreateGenerator(request_manager, progress_queue, progress_generator, unused_kinds):
  'Initialize a UploadWorkItem generator.\n\n    Args:\n      request_manager: A RequestManager instance.\n      progress_queue: A ProgressQueue instance to send progress information.\n      progress_generator: A generator of progress information or None.\n      unused_kinds: The kinds being generated (ignored in this method).\n\n    Returns:\n      An UploadWorkItemGenerator instance.\n    '
  return UploadWorkItemGenerator(request_manager, progress_queue, progress_generator, record_generator, csv_has_header, batch_size)
 return CreateGenerator

def GetCSVGeneratorFactory ( kind , csv_filename , batch_size , csv_has_header , openfile = open , create_csv_reader = csv . reader ) : loader = Loader . RegisteredLoader ( kind ) loader . _Loader__openfile = openfile loader . _Loader__create_csv_reader = create_csv_reader record_generator = loader . generate_records ( csv_filename ) def CreateGenerator ( request_manager , progress_queue , progress_generator , unused_kinds ) : return UploadWorkItemGenerator ( request_manager , progress_queue , progress_generator , record_generator , csv_has_header , batch_size ) return CreateGenerator
return a factory that creates a csv-based uploadworkitem generator .