Mercurial > p > roundup > code
view roundup/anypy/findargspec.py @ 6813:6b636fb29740
Refactor client.py session cookie code. Remove session db access.
The original code did a session_db.exists test followed by a
session_db.getall.
Refactor does a getall and if a KeyError is thrown, handles the
error. Most likely the session key will be found so exception handling
won't be triggered.
Added test case to test the exception code path and minor
rearrangement of setup code.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 03 Aug 2022 17:34:58 -0400 |
| parents | c588e64718fc |
| children |
line wrap: on
line source
''' Wrapper for getargspec to support other callables and python 3 support In python 3 just uses getfullargspec which handles regular functions and classes with __call__ methods. ''' try: # Python 3+ from inspect import getfullargspec as getargspec findargspec = getargspec except ImportError: # Python 2.5-2.7 modified from https://bugs.python.org/issue20828 import inspect def findargspec(fn): if inspect.isfunction(fn) or inspect.ismethod(fn): inspectable = fn elif inspect.isclass(fn): inspectable = fn.__init__ elif callable(fn): inspectable = fn.__call__ else: inspectable = fn try: return inspect.getargspec(inspectable) except TypeError: raise
