human
Here's a good function header given the following:
I wrote the below code

    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

What's a good function header?
assistant
#Here's a good function header.

def GetCSVGeneratorFactory(kind, csv_filename, batch_size, csv_has_header, openfile=open, create_csv_reader=csv.reader):