# Copyright 2021 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import functools def Memoize(f): """Decorator to cache return values of function.""" memoize_dict = {} @functools.wraps(f) def wrapper(*args, **kwargs): key = repr((args, kwargs)) if key not in memoize_dict: memoize_dict[key] = f(*args, **kwargs) return memoize_dict[key] return wrapper