diff options
Diffstat (limited to 'pecan/decorators.py')
-rw-r--r-- | pecan/decorators.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pecan/decorators.py b/pecan/decorators.py index be27df8..2938fc1 100644 --- a/pecan/decorators.py +++ b/pecan/decorators.py @@ -1,5 +1,8 @@ -from inspect import getargspec, getmembers, isclass, ismethod -from util import _cfg +from inspect import getargspec, getmembers, isclass, ismethod, isfunction + +import six + +from .util import _cfg __all__ = [ 'expose', 'transactional', 'accept_noncanonical', 'after_commit', @@ -74,7 +77,10 @@ def transactional(ignore_redirects=True): def deco(f): if isclass(f): - for meth in [m[1] for m in getmembers(f) if ismethod(m[1])]: + for meth in [ + m[1] for m in getmembers(f) + if (isfunction if six.PY3 else ismethod)(m[1]) + ]: if getattr(meth, 'exposed', False): _cfg(meth)['transactional'] = True _cfg(meth)['transactional_ignore_redirects'] = _cfg( |