summaryrefslogtreecommitdiff
path: root/gr-utils/python/modtool/modtool_info.py
diff options
context:
space:
mode:
authorMarcus Müller <marcus@hostalia.de>2018-08-31 23:02:22 +0200
committerMarcus Müller <marcus@hostalia.de>2018-08-31 23:02:22 +0200
commit254fe5e89403d4de1fa6663d09efdf946996aff3 (patch)
tree62877d7ac7fdedf6c397c51e22ac6f97eba97ddf /gr-utils/python/modtool/modtool_info.py
parent896d1c9da31963ecf5b0d90942c2af51ca998a69 (diff)
parent5ad935c3a3dd46ce2860b13e2b774e4841784616 (diff)
Merge remote-tracking branch 'origin/next' into merge_next
Diffstat (limited to 'gr-utils/python/modtool/modtool_info.py')
-rw-r--r--gr-utils/python/modtool/modtool_info.py57
1 files changed, 29 insertions, 28 deletions
diff --git a/gr-utils/python/modtool/modtool_info.py b/gr-utils/python/modtool/modtool_info.py
index 3380760725..bae6df36ed 100644
--- a/gr-utils/python/modtool/modtool_info.py
+++ b/gr-utils/python/modtool/modtool_info.py
@@ -1,4 +1,3 @@
-#
# Copyright 2013 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
@@ -20,17 +19,20 @@
#
""" Returns information about a module """
+from __future__ import print_function
+from __future__ import absolute_import
+from __future__ import unicode_literals
+
import os
-from optparse import OptionGroup
-from modtool_base import ModTool, ModToolException
-from util_functions import get_modname
+from .modtool_base import ModTool, ModToolException
+from .util_functions import get_modname
class ModToolInfo(ModTool):
""" Return information about a given module """
name = 'info'
- aliases = ('getinfo', 'inf')
+ description = 'Return informations about module.'
def __init__(self):
ModTool.__init__(self)
@@ -38,26 +40,25 @@ class ModToolInfo(ModTool):
self._python_readable = False
self._suggested_dirs = None
- def setup_parser(self):
+ @staticmethod
+ def setup_parser(parser):
""" Initialise the option parser for 'gr_modtool info' """
- parser = ModTool.setup_parser(self)
- parser.usage = '%prog info [options]. \n Call %prog without any options to run it interactively.'
- ogroup = OptionGroup(parser, "Info options")
- ogroup.add_option("--python-readable", action="store_true", default=None,
- help="Return the output in a format that's easier to read for Python scripts.")
- ogroup.add_option("--suggested-dirs", default=None, type="string",
- help="Suggest typical include dirs if nothing better can be detected.")
- parser.add_option_group(ogroup)
+ #args_group = parser.add_argument_group(title="Info options")
+ parser.add_argument("--python-readable", action="store_true",
+ help="Return the output in a format that's easier to read for Python scripts.")
+ parser.add_argument("--suggested-dirs",
+ help="Suggest typical include dirs if nothing better can be detected.")
return parser
- def setup(self, options, args):
+ def setup(self, options):
# Won't call parent's setup(), because that's too chatty
self._directory = options.directory
self._python_readable = options.python_readable
self._suggested_dirs = options.suggested_dirs
- def run(self):
+ def run(self, options):
""" Go, go, go! """
+ self.setup(options)
mod_info = dict()
mod_info['base_dir'] = self._get_base_dir(self._directory)
if mod_info['base_dir'] is None:
@@ -72,7 +73,7 @@ class ModToolInfo(ModTool):
):
self._info['version'] = '37'
mod_info['version'] = self._info['version']
- if 'is_component' in self._info.keys() and self._info['is_component']:
+ if 'is_component' in list(self._info.keys()) and self._info['is_component']:
mod_info['is_component'] = True
mod_info['incdirs'] = []
mod_incl_dir = os.path.join(mod_info['base_dir'], 'include')
@@ -85,7 +86,7 @@ class ModToolInfo(ModTool):
mod_info['build_dir'] = build_dir
mod_info['incdirs'] += self._get_include_dirs(mod_info)
if self._python_readable:
- print str(mod_info)
+ print(str(mod_info))
else:
self._pretty_print(mod_info)
@@ -108,7 +109,7 @@ class ModToolInfo(ModTool):
If that hasn't happened, the build dir cannot be detected, unless it's
called 'build', which is then assumed to be the build dir. """
base_build_dir = mod_info['base_dir']
- if 'is_component' in mod_info.keys():
+ if 'is_component' in list(mod_info.keys()):
(base_build_dir, rest_dir) = os.path.split(base_build_dir)
has_build_dir = os.path.isdir(os.path.join(base_build_dir, 'build'))
if (has_build_dir and os.path.isfile(os.path.join(base_build_dir, 'CMakeCache.txt'))):
@@ -125,7 +126,7 @@ class ModToolInfo(ModTool):
""" Figure out include dirs for the make process. """
inc_dirs = []
path_or_internal = {True: 'INTERNAL',
- False: 'PATH'}['is_component' in mod_info.keys()]
+ False: 'PATH'}['is_component' in list(mod_info.keys())]
try:
cmakecache_fid = open(os.path.join(mod_info['build_dir'], 'CMakeCache.txt'))
for line in cmakecache_fid:
@@ -138,19 +139,19 @@ class ModToolInfo(ModTool):
inc_dirs = [os.path.normpath(path) for path in self._suggested_dirs.split(':') if os.path.isdir(path)]
return inc_dirs
- def _pretty_print(self, mod_info):
+ def _pretty_print(elf, mod_info):
""" Output the module info in human-readable format """
index_names = {'base_dir': 'Base directory',
'modname': 'Module name',
'is_component': 'Is GR component',
'build_dir': 'Build directory',
'incdirs': 'Include directories'}
- for key in mod_info.keys():
+ for key in list(mod_info.keys()):
if key == 'version':
- print " API version: %s" % {
- '36': 'pre-3.7',
- '37': 'post-3.7',
- 'autofoo': 'Autotools (pre-3.5)'
- }[mod_info['version']]
+ print(" API version: %s" % {
+ '36': 'pre-3.7',
+ '37': 'post-3.7',
+ 'autofoo': 'Autotools (pre-3.5)'
+ }[mod_info['version']])
else:
- print '%19s: %s' % (index_names[key], mod_info[key])
+ print('%19s: %s' % (index_names[key], mod_info[key]))