def METHOD_NAME(
    cls, vertices: Union[int, Iterable], edge_probs: Mapping[int, float]
) -> 'UndirectedHypergraph':
    """A random hypergraph.
    Every possible edge is included with probability edge_prob[len(edge)].
    All edges are labelled with None.
    Args:
        vertices: The vertex set. If an integer i, the vertex set is
            {0, ..., i - 1}.
        edge_probs: The probabilities of edges of given sizes. Non-positive
            values mean the edge is never included and values at least 1
            mean that it is always included.
    """
    if isinstance(vertices, int):
        vertices = range(vertices)
    edges = []
    for edge_size, edge_prob in edge_probs.items():
        for potential_edge in itertools.combinations(vertices, edge_size):
            if METHOD_NAME.METHOD_NAME() < edge_prob:
                edges.append(potential_edge)
    labelled_edges: Dict[Iterable[Hashable], Any] = {edge: None for edge in edges}
    return cls(vertices=vertices, labelled_edges=labelled_edges)