<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_function_signature(func):
 """ Return the signature string of the specified function. 'foo(name)' Traceback (most recent call last):
 TypeError: The argument must be a function object: None type is <class 'str'> """

    if func is None:
        return 'Function is None'

    try:
        func_name = func.__name__
    except AttributeError:
        func_name = 'None'

    if not inspect.isfunction(func):
        raise TypeError('The argument must be a function object: %s type is %s' % (func_name, type(func)))

    return func_name + str(inspect.signature(func))