Allow memoize_cleanup to work with dicts or objects
diff --git a/Allura/allura/lib/decorators.py b/Allura/allura/lib/decorators.py
index 7197748..406be72 100644
--- a/Allura/allura/lib/decorators.py
+++ b/Allura/allura/lib/decorators.py
@@ -176,11 +176,15 @@
def memoize_cleanup(obj):
"""
- Remove any _memoize_dic_* keys (if obj is a dict/obj hybrid) that were created by @memoize on methods
+ Remove any _memoize_dic_* keys that were created by @memoize on methods
"""
- for k in list(obj.keys()):
+ attrs = obj.keys() if hasattr(obj, 'keys') else obj.__dir__()
+ for k in list(attrs):
if k.startswith('_memoize_dic'):
- del obj[k]
+ try:
+ del obj[k]
+ except TypeError:
+ delattr(obj, k)
def memorable_forget():