aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/utils/decorators.py
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2021-04-16 17:54:02 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-04-16 17:54:02 +0000
commitef2f29d2b3cf25a46be203d6b12ad0eceaf270b2 (patch)
treeb9a6b60023b853553ae095370bf251a2f1f7640e /catapult/devil/devil/utils/decorators.py
parent7765787e58b7e3c43ec63e5764e7c4e1223fa0af (diff)
parent19f3aab438b0ede9adb9b1a382d44e143de5bd1e (diff)
downloadchromium-trace-ef2f29d2b3cf25a46be203d6b12ad0eceaf270b2.tar.gz
Merge changes I195c394b,Iff693cf6 am: b101eec5e1 am: d5085cc096 am: 19f3aab438
Original change: https://android-review.googlesource.com/c/platform/external/chromium-trace/+/1677030 Change-Id: Ic028cdd0d1a6d9d99b303ebb29760375db515bcb
Diffstat (limited to 'catapult/devil/devil/utils/decorators.py')
-rw-r--r--catapult/devil/devil/utils/decorators.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/catapult/devil/devil/utils/decorators.py b/catapult/devil/devil/utils/decorators.py
new file mode 100644
index 00000000..5d286107
--- /dev/null
+++ b/catapult/devil/devil/utils/decorators.py
@@ -0,0 +1,17 @@
+# 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