def _function_contents(func):
    """Return the signature contents of a function."""

    contents = [_code_contents(func.func_code)]

    # The function contents depends on the value of defaults arguments
    if func.func_defaults:
        contents.append(',(' + ','.join(map(_object_contents,func.func_defaults)) + ')')
    else:
        contents.append(',()')

    # The function contents depends on the closure captured cell values.
    try:
        closure = func.func_closure or []
    except AttributeError:
        # Older versions of Python do not support closures.
        closure = []

    #xxx = [_object_contents(x.cell_contents) for x in closure]
    try:
        xxx = [_object_contents(x.cell_contents) for x in closure]
    except __HOLE__:
        xxx = []
    contents.append(',(' + ','.join(xxx) + ')')

    return ''.join(contents)
dataset/ETHPy150Open kayhayen/Nuitka/nuitka/build/inline_copy/lib/scons-2.3.2/SCons/Action.py/_function_contents