def _filter_solutions(self, reslist, constraints, comp_eps): filtered = [] hasnone = False tol_res = [] for res in reslist: if None in res.values(): if not hasnone: filtered.append(res) hasnone = True else: res_ = Solution({var: float(val) for var, val in res.items()}) # res_ = res res_int = [int(round(r/comp_eps)) for r in res_.values()] if res_int not in tol_res: tol_res.append(res_int) if len(constraints) > 0: satisfy = True for constr in constraints: # c = const.subs(res_dict) c = constr.subs(res_) satisfy = satisfy & c if satisfy: filtered.append(res_) else: filtered.append(res_) return filtered