def METHOD_NAME(self, i):
    neighbors = [
        self.nodes_dict[j]
        for j in self.graph.successors(i).numpy()
        if self.nodes_dict[j]["mol"].GetNumAtoms() > 1
    ]
    neighbors = sorted(
        neighbors, key=lambda x: x["mol"].GetNumAtoms(), reverse=True
    )
    singletons = [
        self.nodes_dict[j]
        for j in self.graph.successors(i).numpy()
        if self.nodes_dict[j]["mol"].GetNumAtoms() == 1
    ]
    neighbors = singletons + neighbors
    cands = enum_assemble_nx(self.nodes_dict[i], neighbors)
    if len(cands) > 0:
        (
            self.nodes_dict[i]["cands"],
            self.nodes_dict[i]["cand_mols"],
            _,
        ) = list(zip(*cands))
        self.nodes_dict[i]["cands"] = list(self.nodes_dict[i]["cands"])
        self.nodes_dict[i]["cand_mols"] = list(
            self.nodes_dict[i]["cand_mols"]
        )
    else:
        self.nodes_dict[i]["cands"] = []
        self.nodes_dict[i]["cand_mols"] = []