human
I wrote the below code

    from azure.cli.command_modules.sf.config import SfConfigParser
    abspath = validate_app_path(path)
    basename = os.path.basename(abspath)
    sf_config = SfConfigParser()
    endpoint = sf_config.connection_endpoint()
    cert = sf_config.cert_info()
    ca_cert = False
    if (cert is not None):
        if (sf_config.no_verify_setting is False):
            ca_cert = sf_config.ca_cert_info()
    total_files_count = 0
    current_files_count = 0
    total_files_size = 0
    current_files_size = {'size': 0}
    for (root, _, files) in os.walk(abspath):
        total_files_count += (len(files) + 1)
        for f in files:
            t = os.stat(os.path.join(root, f))
            total_files_size += t.st_size
    def print_progress(size, rel_file_path):
        current_files_size['size'] += size
        if show_progress:
            print('[{}/{}]    files,    [{}/{}]    bytes,    {}'.format(current_files_count, total_files_count, current_files_size['size'], total_files_size, rel_file_path), file=sys.stderr)
    for (root, _, files) in os.walk(abspath):
        rel_path = os.path.normpath(os.path.relpath(root, abspath))
        for f in files:
            url_path = os.path.normpath(os.path.join('ImageStore', basename, rel_path, f)).replace('\\', '/')
            fp = os.path.normpath(os.path.join(root, f))
            with open(fp, 'rb') as file_opened:
                url_parsed = list(urlparse(endpoint))
                url_parsed[2] = url_path
                url_parsed[4] = urlencode({'api-version': '3.0-preview'})
                url = urlunparse(url_parsed)
                def file_chunk(target_file, rel_path, print_progress):
                    chunk = True
                    while chunk:
                        chunk = target_file.read(100000)
                        print_progress(len(chunk), rel_path)
                        (yield chunk)
                fc = file_chunk(file_opened, os.path.normpath(os.path.join(rel_path, f)), print_progress)
                requests.put(url, data=fc,...

What's a good function header?

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

def sf_upload_app(path, show_progress=False):