Exemplo n.º 1
0
def test_signals_creates_correct_states_for_looped():
    with pytest.raises(Exception) as exc:
        raise LOOP("signal")
    assert isinstance(exc.value, LOOP)
    assert type(exc.value.state) is Looped
    assert exc.value.state.result == repr(exc.value)
    assert exc.value.state.message == "signal"
Exemplo n.º 2
0
 def looper():
     if (prefect.context.get("task_loop_count") == 2
             and prefect.context.get("task_run_count", 1) == 1):
         raise ValueError("Stop")
     if prefect.context.get("task_loop_count", 1) < 3:
         raise LOOP(result=prefect.context.get("task_loop_result", 0) + 10)
     return prefect.context.get("task_loop_result")
def open_csv(filename: str):
    print(filename)
    with open(filename) as read_obj:
        csv_reader = reader(read_obj)
        # Get all rows of csv from csv_reader object as list of tuples
        return list(map(tuple, csv_reader))
    raise LOOP(message)
Exemplo n.º 4
0
def loop_test():
    loop_payload = prefect.context.get("task_loop_result", {})

    n = loop_payload.get("n", 1)
    print(n)

    if n > 5:
        return n

    raise LOOP(f'Iteration {n}', result=dict(n=n+1))
Exemplo n.º 5
0
def fizz_buzz(N):
    loop_payload = context.get("task_loop_result", {})

    n = loop_payload.get("n", N)

    out = requests.get(
        f"http://fibuzzapi.herokuapp.com/api/numbers?offset={n}&limit=1").json(
        )["numbers"][0]["value"]

    if n == 1:
        return out

    raise LOOP(message=f"{n}={out}", result=dict(n=n - 1))
Exemplo n.º 6
0
def compute_large_fibonacci(M):
    # we extract the accumulated task loop result from context
    loop_payload = prefect.context.get("task_loop_result", {})

    n = loop_payload.get("n", 1)
    fib = loop_payload.get("fib", 1)

    next_fib = requests.post("https://nemo.api.stdlib.com/[email protected]/",
                             data={
                                 "nth": n
                             }).json()

    if next_fib > M:
        return fib  # return statements end the loop

    raise LOOP(message=f"Fib {n}={next_fib}",
               result=dict(n=n + 1, fib=next_fib))
Exemplo n.º 7
0
 def looper(x):
     if prefect.context.get("task_loop_count", 1) < 20:
         raise LOOP(result=prefect.context.get("task_loop_result", 0) + x)
     return prefect.context.get("task_loop_result", 0) + x
Exemplo n.º 8
0
 def looper():
     if prefect.context.get("task_loop_count", 1) < 3:
         raise LOOP()
     return 42