import sys


class RecursionLimit:
    """
    Recursion Limit

    Parameters
    ----------
    limit : int

    """

    def __init__(self, limit):
        self.limit = limit
        self.old_limit = sys.getrecursionlimit()

    def __enter__(self):
        sys.setrecursionlimit(self.limit)

    def __exit__(self, type, value, tb):
        sys.setrecursionlimit(self.old_limit)
