def libra2dgl_build_dict(
    a,
    b,
    indices,
    ldt_key,
    gdt_key,
    gdt_value,
    node_map,
    offset,
    nc,
    c,
    fsize,
    dataset,
):
    """
    This function invokes C/C++ code for pre-processing Libra output.
    After graph partitioning using Libra, during conversion from Libra output to DGL/DistGNN input,
    this function creates dictionaries to assign local node ids to the partitioned nodes
    and also to create a database of the split nodes.
    Parameter details are present in dgl/src/array/libra_partition.cc
    """
    ret = _CAPI_DGLLibra2dglBuildDict(
        to_dgl_nd_for_write(a),
        to_dgl_nd_for_write(b),
        to_dgl_nd_for_write(indices),
        to_dgl_nd_for_write(ldt_key),
        to_dgl_nd_for_write(gdt_key),
        to_dgl_nd_for_write(gdt_value),
        to_dgl_nd_for_write(node_map),
        to_dgl_nd_for_write(offset),
        nc,
        c,
        fsize,
        dataset,
    )
    return ret

    This function invokes C/C++ code for pre-processing Libra output.
    After graph partitioning using Libra, during conversion from Libra output to DGL/DistGNN input,
    this function creates dictionaries to assign local node ids to the partitioned nodes
    and also to create a database of the split nodes.
    Parameter details are present in dgl/src/array/libra_partition.cc
    
python/dgl/_sparse_ops.py