diff options
Diffstat (limited to 'argparse.py')
-rw-r--r-- | argparse.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/argparse.py b/argparse.py index 9ebf845..c1459fb 100644 --- a/argparse.py +++ b/argparse.py @@ -95,6 +95,7 @@ import re as _re import sys as _sys import textwrap as _textwrap import inspect as _inspect +import types as _types from gettext import gettext as _ @@ -2414,6 +2415,14 @@ def _getfunctionspec(function): else: arg_names, varargs, varkw, defaults = _inspect.getargspec(function) kwonlyargs, kwonlydefaults, annotations = [], {}, {} + + # A fix for class-methods and instance-methods is to remove the first + # argument name (which is self or cls). + # In case of (*args, **kwargs) we don't intervene. + if isinstance(function, _types.MethodType): + if len(arg_names) > 0: + arg_names.pop(0) + return (arg_names, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotations) |