Various utilities for handling loops, recursions, etc.
Let's say you wrote a recursive function and you want to limit number of recursions, just to be infinite loop free, or for any other reason.
from enveloop import limit_recursion_to
# let's limit the number of recursion to 100
@limit_recursion_to(100)
def my_func(arg):
...
my_func(arg)
...
# let's limit the number of recursion and after
# the 10th recursion run a callback function.
# callback function takes exactly the same arguments
# as the recursion function.
@limit_recursion_to(10, lambda arg: ...)
def my_func(arg):
...
my_func(arg)
...
- limit_recursion_to()