31 lines
595 B
Python
31 lines
595 B
Python
import sys
|
|
|
|
|
|
def memodict(f):
|
|
""" Memoization decorator for a function taking a single argument """
|
|
class memodict(dict):
|
|
def __missing__(self, key):
|
|
ret = self[key] = f(key)
|
|
return ret
|
|
return memodict().__getitem__
|
|
|
|
|
|
@memodict
|
|
def iscontroller(obj):
|
|
return getattr(obj, 'exposed', False)
|
|
|
|
|
|
@memodict
|
|
def _cfg(f):
|
|
if not hasattr(f, '_pecan'):
|
|
f._pecan = {}
|
|
return f._pecan
|
|
|
|
|
|
if sys.version_info >= (2, 6, 5):
|
|
def encode_if_needed(s):
|
|
return s
|
|
else:
|
|
def encode_if_needed(s): # noqa
|
|
return s.encode('utf-8')
|