From 84f296062a48d30a6c1497e523c21ef3fd9ab534 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Fri, 26 Oct 2018 10:52:19 +1300 Subject: [PATCH 1/3] Updated inspect method --- invoke/tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/invoke/tasks.py b/invoke/tasks.py index ed838c31..18cf0afd 100644 --- a/invoke/tasks.py +++ b/invoke/tasks.py @@ -151,7 +151,7 @@ def argspec(self, body): # TODO: __call__ exhibits the 'self' arg; do we manually nix 1st result # in argspec, or is there a way to get the "really callable" spec? func = body if isinstance(body, types.FunctionType) else body.__call__ - spec = inspect.getargspec(func) + spec = inspect.getfullargspec(func) arg_names = spec.args[:] matched_args = [reversed(x) for x in [spec.args, spec.defaults or []]] spec_dict = dict(zip_longest(*matched_args, fillvalue=NO_DEFAULT)) From db6596d63c76239a91a898ee1557084456e480f7 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Fri, 26 Oct 2018 11:49:41 +1300 Subject: [PATCH 2/3] Update inspect import to be conditional based on 2.7 or 3 --- invoke/tasks.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/invoke/tasks.py b/invoke/tasks.py index 18cf0afd..cbe106b9 100644 --- a/invoke/tasks.py +++ b/invoke/tasks.py @@ -4,7 +4,6 @@ """ from copy import deepcopy -import inspect import types from .util import six @@ -14,6 +13,11 @@ else: from itertools import izip_longest as zip_longest +try: + from inspect import getfullargspec as getargspec +except AttributeError: + from inspect import getargspec + from .context import Context from .parser import Argument, translate_underscores @@ -151,7 +155,7 @@ def argspec(self, body): # TODO: __call__ exhibits the 'self' arg; do we manually nix 1st result # in argspec, or is there a way to get the "really callable" spec? func = body if isinstance(body, types.FunctionType) else body.__call__ - spec = inspect.getfullargspec(func) + spec = getargspec(func) arg_names = spec.args[:] matched_args = [reversed(x) for x in [spec.args, spec.defaults or []]] spec_dict = dict(zip_longest(*matched_args, fillvalue=NO_DEFAULT)) From de3f339f4d699c0a641074ad437802307d0050ba Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Fri, 26 Oct 2018 12:10:43 +1300 Subject: [PATCH 3/3] Ooops, checked AttributeError instead of ImportError --- invoke/tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/invoke/tasks.py b/invoke/tasks.py index cbe106b9..ad08c893 100644 --- a/invoke/tasks.py +++ b/invoke/tasks.py @@ -15,7 +15,7 @@ try: from inspect import getfullargspec as getargspec -except AttributeError: +except ImportError: from inspect import getargspec from .context import Context