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

    newcols = (newcols or [])
    ignorecols = (ignorecols or [])
    swapcols = (swapcols or {})
    ignorecons = (ignorecons or [])
    cols = [c.copy() for c in parent.columns if (c.name not in ignorecols) if (c.name not in swapcols)]
    cols.extend(swapcols.values())
    cols.extend(newcols)
    new_table = sqlalchemy.Table(name, meta, *cols)
    def _is_ignorable(cons):
        if hasattr(cons, 'columns'):
            for col in ignorecols:
                if (col in cons.columns):
                    return True
        return False
    constraints = [c.copy() for c in parent.constraints if (c.name not in ignorecons) if (not _is_ignorable(c))]
    for c in constraints:
        new_table.append_constraint(c)
    new_table.create()
    return new_table

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

def clone_table(name, parent, meta, newcols=None, ignorecols=None, swapcols=None, ignorecons=None):