def gen_function_call(func_attrs: Dict[str, Any], backend_spec, indent="  ") -> str:
    """Generates function call.

    Parameters
    ----------
    func_attrs : Dict[str, Any]
        Stores the operation attributes.
    backend_spec : class
        Specifies the backend configurations.
    indent : str, optional
        Indent for template, by default "  ".

    Returns
    -------
    str
        Rendered function call.
    """
    assert len(func_attrs["outputs"]) == 1
    assert len(func_attrs["inputs"]) == 1

    input_name = func_attrs["inputs"][0]._attrs["name"]

    output_node = func_attrs["outputs"][0]
    output_name = output_node._attrs["name"]
    shape = ["1"]
    for dim in output_node._attrs["shape"]:
        if isinstance(dim, IntImm):
            shape.append(str(dim._attrs["values"][0]))
        else:
            shape.append(dim._attrs["name"])
    shape = "*".join(shape)
    size = f"{shape} * {get_dtype_size(output_node._attrs['dtype'])}"

    return FUNC_CALL_TEMPLATE.render(
        func_name=func_attrs["name"],
        output=output_name,
        input=input_name,
        size=size,
        indent=indent,
    )
Generates function call.

Parameters
----------
func_attrs : Dict[str, Any]
Stores the operation attributes.
backend_spec : class
Specifies the backend configurations.
indent : str, optional
Indent for template, by default "  ".

Returns
-------
str
Rendered function call.
python/aitemplate/backend/common/tensor/identity_common.py