def anygoal(s): anygoal.goals, local_goals = it.tee(anygoal.goals) def f(goals): for goal in goals: try: yield goaleval(reify(goal, s))(s) except EarlyGoalError: pass return unique(interleave(f(local_goals), [EarlyGoalError]), key=dicthash)
def allgoal(s): for i, g in enumerate(goals): try: goal = goaleval(reify(g, s)) except EarlyGoalError: continue other_goals = tuple(goals[:i] + goals[i+1:]) return unique(interleave(goaleval( reify((lallfirst,) + other_goals, ss))(ss) for ss in goal(s)), key=dicthash) else: raise EarlyGoalError()
def allgoal(s): g = goaleval(reify(goals[0], s)) return unique(interleave( goaleval(reify((lall,) + tuple(goals[1:]), ss))(ss) for ss in g(s)), key=dicthash)
def test_interleave(): assert ''.join(interleave(('ABC', '123'))) == 'A1B2C3' assert ''.join(interleave(('ABC', '1'))) == 'A1BC'