move getargspec import into pyramid.compat
| | |
| | | def is_bound_method(ob): |
| | | return inspect.ismethod(ob) and getattr(ob, im_self, None) is not None |
| | | |
| | | # support annotations and keyword-only arguments in PY3 |
| | | if PY3: |
| | | from inspect import getfullargspec as getargspec |
| | | else: |
| | | from inspect import getargspec |
| | |
| | | |
| | | from pyramid.compat import ( |
| | | bytes_, |
| | | getargspec, |
| | | is_nonstr_iter, |
| | | ) |
| | | |
| | |
| | | |
| | | MAX_ORDER = 1 << 30 |
| | | DEFAULT_PHASH = md5().hexdigest() |
| | | |
| | | # support annotations and keyword-only arguments in PY3 |
| | | try: |
| | | getargspec = inspect.getfullargspec |
| | | except AttributeError: |
| | | getargspec = inspect.getargspec |
| | | |
| | | def as_sorted_tuple(val): |
| | | if not is_nonstr_iter(val): |