def associate_predecessors(graph, node=""):
    """
    Returns a dictionary with outer key 'predecessors' securing a value
    list of dictionaries associating the source, target and
    edge_attribute with the corresponding Vertex.name strings for each
    predecessor to the passed node.
    """
    return {
        "predecessors": [
            {
                "source": pred,
                "target": node,
                "edge_attribute": graph.pred[node][pred]["edge_attribute"],
            }
            for pred in graph.pred[node]
        ]
    }