human
I wrote the below code

    def _append_blob(file_path, blob_name):
        if (not client.exists(destination_container_name, blob_name)):
            client.create_blob(container_name=destination_container_name, blob_name=blob_name, content_settings=content_settings, metadata=metadata, lease_id=lease_id, if_modified_since=if_modified_since, if_match=if_match, if_none_match=if_none_match, timeout=timeout)
        append_blob_args = {'container_name': destination_container_name, 'blob_name': blob_name, 'file_path': file_path, 'progress_callback': (lambda c, t: None), 'maxsize_condition': maxsize_condition, 'lease_id': lease_id, 'timeout': timeout}
        if supported_api_version(ResourceType.DATA_STORAGE, min_api='2016-05-31'):
            append_blob_args['validate_content'] = validate_content
        return client.append_blob_from_path(**append_blob_args)
    def _upload_blob(file_path, blob_name):
        create_blob_args = {'container_name': destination_container_name, 'blob_name': blob_name, 'file_path': file_path, 'progress_callback': (lambda c, t: None), 'content_settings': content_settings, 'metadata': metadata, 'max_connections': max_connections, 'lease_id': lease_id, 'if_modified_since': if_modified_since, 'if_unmodified_since': if_unmodified_since, 'if_match': if_match, 'if_none_match': if_none_match, 'timeout': timeout}
        if supported_api_version(ResourceType.DATA_STORAGE, min_api='2016-05-31'):
            create_blob_args['validate_content'] = validate_content
        return client.create_blob_from_path(**create_blob_args)
    upload_action = (_upload_blob if ((blob_type == 'block') or (blob_type == 'page')) else _append_blob)
    if dryrun:
        logger = get_az_logger(__name__)
        logger.warning('upload    action:    from    %s    to    %s', source, destination)
        logger.warning('                pattern    %s', pattern)
        logger.warning('        container    %s', destination_container_name)
        logger.warning('                            type    %s', blob_type)
        logger.warning('   ...

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

def storage_blob_upload_batch(client, source, destination, pattern=None, source_files=None, destination_container_name=None, blob_type=None, content_settings=None, metadata=None, validate_content=False, maxsize_condition=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, dryrun=False):