diff options
author | Hongbin Lu <hongbin.lu@huawei.com> | 2018-03-13 18:14:49 +0000 |
---|---|---|
committer | Hongbin Lu <hongbin.lu@huawei.com> | 2018-03-14 21:30:22 +0000 |
commit | b071b6b2163b19e93544d977ab4d3f0bd368949e (patch) | |
tree | da8768b2602a224bf2ffec328919b6264c60eaa5 | |
parent | fa5303f058cdd1bc90a86d2dc2fff70a9cbd5de1 (diff) | |
download | cliff-b071b6b2163b19e93544d977ab4d3f0bd368949e.tar.gz |
Remove the warning of getargspec removal
The method getargspec is deprecated and will be removed [1].
This produces a lot of deprecation warning in the logs which is
noisy. This patch proposes to use getfullargspec if it is available.
For python 2 compatibility, we need to fall back to getargspec.
[1] https://docs.python.org/3/library/inspect.html#inspect.getargspec
Change-Id: Ide7d9ca99e0edf23261b5d47f35766aaaac9059b
-rw-r--r-- | cliff/app.py | 3 | ||||
-rw-r--r-- | cliff/commandmanager.py | 5 | ||||
-rw-r--r-- | cliff/help.py | 5 | ||||
-rw-r--r-- | cliff/utils.py | 7 |
4 files changed, 14 insertions, 6 deletions
diff --git a/cliff/app.py b/cliff/app.py index 62f822e..b6392ed 100644 --- a/cliff/app.py +++ b/cliff/app.py @@ -14,7 +14,6 @@ """ import codecs -import inspect import locale import logging import logging.handlers @@ -384,7 +383,7 @@ class App(object): return 2 cmd_factory, cmd_name, sub_argv = subcommand kwargs = {} - if 'cmd_name' in inspect.getargspec(cmd_factory.__init__).args: + if 'cmd_name' in utils.getargspec(cmd_factory.__init__).args: kwargs['cmd_name'] = cmd_name cmd = cmd_factory(self, self.options, **kwargs) err = None diff --git a/cliff/commandmanager.py b/cliff/commandmanager.py index a0a9bb3..20cf17f 100644 --- a/cliff/commandmanager.py +++ b/cliff/commandmanager.py @@ -13,11 +13,12 @@ """Discover and lookup command plugins. """ -import inspect import logging import pkg_resources +from . import utils + LOG = logging.getLogger(__name__) @@ -103,7 +104,7 @@ class CommandManager(object): else: # NOTE(dhellmann): Some fake classes don't take # require as an argument. Yay? - arg_spec = inspect.getargspec(cmd_ep.load) + arg_spec = utils.getargspec(cmd_ep.load) if 'require' in arg_spec[0]: cmd_factory = cmd_ep.load(require=False) else: diff --git a/cliff/help.py b/cliff/help.py index 971e9ad..92e4c2f 100644 --- a/cliff/help.py +++ b/cliff/help.py @@ -16,6 +16,7 @@ import sys import traceback from . import command +from . import utils class HelpAction(argparse.Action): @@ -47,7 +48,7 @@ class HelpAction(argparse.Action): continue try: kwargs = {} - if 'cmd_name' in inspect.getargspec(factory.__init__).args: + if 'cmd_name' in utils.getargspec(factory.__init__).args: kwargs['cmd_name'] = name cmd = factory(app, None, **kwargs) if cmd.deprecated: @@ -100,7 +101,7 @@ class HelpCommand(command.Command): return self.app_args.cmd = search_args kwargs = {} - if 'cmd_name' in inspect.getargspec(cmd_factory.__init__).args: + if 'cmd_name' in utils.getargspec(cmd_factory.__init__).args: kwargs['cmd_name'] = cmd_name cmd = cmd_factory(self.app, self.app_args, **kwargs) full_name = (cmd_name diff --git a/cliff/utils.py b/cliff/utils.py index a9ee975..0da9b42 100644 --- a/cliff/utils.py +++ b/cliff/utils.py @@ -13,6 +13,7 @@ import codecs import ctypes +import inspect import os import struct import sys @@ -28,6 +29,12 @@ import six COST = {'w': 0, 's': 2, 'a': 1, 'd': 3} +if hasattr(inspect, 'getfullargspec'): + getargspec = inspect.getfullargspec +else: + getargspec = inspect.getargspec + + def damerau_levenshtein(s1, s2, cost): """Calculates the Damerau-Levenshtein distance between two strings. |