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

    import zipfile
    mkpath(os.path.dirname(zip_filename), dry_run=dry_run)
    log.info("creating    '%s'    and    adding    '%s'    to    it", zip_filename, base_dir)
    def visit(z, dirname, names):
        for name in names:
            path = os.path.normpath(os.path.join(dirname, name))
            if os.path.isfile(path):
                p = path[(len(base_dir) + 1):]
                if (not dry_run):
                    z.write(path, p)
                log.debug(("adding    '%s'" % p))
    if (compress is None):
        compress = (sys.version >= '2.4')
    compression = [zipfile.ZIP_STORED, zipfile.ZIP_DEFLATED][bool(compress)]
    if (not dry_run):
        z = zipfile.ZipFile(zip_filename, mode, compression=compression)
        for (dirname, dirs, files) in os.walk(base_dir):
            visit(z, dirname, files)
        z.close()
    else:
        for (dirname, dirs, files) in os.walk(base_dir):
            visit(None, dirname, files)
    return zip_filename

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

def make_zipfile(zip_filename, base_dir, verbose=0, dry_run=0, compress=None, mode='w'):