def get_help(func):
help_text = "<STR_LIT>"<EOL>if isinstance(func, dict):<EOL><INDENT>name = context_name(func)<EOL>help_text = "<STR_LIT:\n>" + name + "<STR_LIT>"<EOL>doc = inspect.getdoc(func)<EOL>if doc is not None:<EOL><INDENT>doc = inspect.cleandoc(doc)<EOL>help_text += doc + '<STR_LIT:\n>'<EOL><DEDENT>return help_text<EOL><DEDENT>sig = func.metadata.signature()<EOL>doc = inspect.getdoc(func)<EOL>if doc is not None:<EOL><INDENT>doc = inspect.cleandoc(doc)<EOL><DEDENT>help_text += "<STR_LIT:\n>" + sig + "<STR_LIT>"<EOL>if doc is not None:<EOL><INDENT>help_text += doc + '<STR_LIT:\n>'<EOL><DEDENT>if inspect.isclass(func):<EOL><INDENT>func = func.__init__<EOL><DEDENT>if func.metadata.load_from_doc:<EOL><INDENT>return help_text<EOL><DEDENT>help_text += "<STR_LIT>"<EOL>for key, info in func.metadata.annotated_params.items():<EOL><INDENT>type_name = info.type_name<EOL>desc = "<STR_LIT>"<EOL>if info.desc is not None:<EOL><INDENT>desc = info.desc<EOL><DEDENT>help_text += "<STR_LIT>" % (key, type_name, desc)<EOL><DEDENT>return help_text<EOL>
Return usage information about a context or function.

    For contexts, just return the context name and its docstring
    For functions, return the function signature as well as its
    argument types.

    Args:
        func (callable): An annotated callable function

    Returns:
        str: The formatted help text