def Us(self, elements): elements = list(elements) if do_extra_checks(): for e in elements: self.belongs(e) # XXX n^2 from mcdp_posets import check_minimal check_minimal(elements, poset=self) from mcdp_posets import UpperSet return UpperSet(elements, self)
def __init__(self, minimals, P): self.minimals = frozenset(minimals) self.P = P if do_extra_checks(): # XXX problems = [] for m in minimals: try: self.P.belongs(m) except NotBelongs as e: problems.append(e) if problems: msg = "Cannot create upper set:\n" msg += "\n".join(str(p) for p in problems) raise NotBelongs(msg) from mcdp_posets import check_minimal check_minimal(self.minimals, P)