def infer_callable(node, context=None):
if len(node.args) != <NUM_LIT:1>:<EOL><INDENT>raise UseInferenceDefault<EOL><DEDENT>argument = node.args[<NUM_LIT:0>]<EOL>try:<EOL><INDENT>inferred = next(argument.infer(context=context))<EOL><DEDENT>except InferenceError:<EOL><INDENT>return util.Uninferable<EOL><DEDENT>if inferred is util.Uninferable:<EOL><INDENT>return util.Uninferable<EOL><DEDENT>return nodes.Const(inferred.callable())<EOL>
Understand callable calls

    This follows Python's semantics, where an object
    is callable if it provides an attribute __call__,
    even though that attribute is something which can't be
    called.