def memoize(func):
    saved = {}
    def call(*args):
        try:
            return saved[args]
        except KeyError:
            res = func(*args)
            saved[args] = res
            return res
        except __HOLE__:
            # Unhashable argument
            return func(*args)
    call.__name__ = func.__name__
    return call

# -----------------------------------------------
dataset/ETHPy150Open amrdraz/kodr/app/brython/www/src/Lib/test/test_decorators.py/memoize