From 9b8bac52417696589f9372002726583f9affc4cb Mon Sep 17 00:00:00 2001 From: Manuel Gunther <siebenkopf@googlemail.com> Date: Mon, 11 Jul 2016 09:53:51 -0600 Subject: [PATCH] Implemented #25 by adding a '--packages' option to ./bin/resources.py --- bob/bio/base/script/resources.py | 4 +++- bob/bio/base/test/test_scripts.py | 2 +- bob/bio/base/utils/resources.py | 9 ++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/bob/bio/base/script/resources.py b/bob/bio/base/script/resources.py index 854dd80b..ffeaedac 100644 --- a/bob/bio/base/script/resources.py +++ b/bob/bio/base/script/resources.py @@ -15,12 +15,14 @@ def resources(command_line_parameters = None): parser.add_argument("--details", '-d', action='store_true', help = "Prints the complete configuration for all resources") + parser.add_argument("--packages", '-p', nargs='+', help = "If given, shows only resources defined in the given package(s)") + parser.add_argument("--no-strip-dummy", '-s', action = 'store_true', help = "If given, the dummy elements (usually used for testing purposes only) are **not** removed from the list.") args = parser.parse_args(command_line_parameters) - kwargs = {'verbose' : args.details} + kwargs = {'verbose' : args.details, "packages" : args.packages} if args.no_strip_dummy: kwargs['strip'] = [] diff --git a/bob/bio/base/test/test_scripts.py b/bob/bio/base/test/test_scripts.py index 92280814..57e10b90 100644 --- a/bob/bio/base/test/test_scripts.py +++ b/bob/bio/base/test/test_scripts.py @@ -369,7 +369,7 @@ def test_resources(): # simply test that the collect_results script works from bob.bio.base.script.resources import resources, databases with utils.Quiet(): - resources(['--types', 'database', 'preprocessor', 'extractor', 'algorithm', 'grid', '--details']) + resources(['--types', 'database', 'preprocessor', 'extractor', 'algorithm', 'grid', '--details', '--packages', 'bob.bio.base']) databases([]) diff --git a/bob/bio/base/utils/resources.py b/bob/bio/base/utils/resources.py index f9106f40..7a2b7292 100644 --- a/bob/bio/base/utils/resources.py +++ b/bob/bio/base/utils/resources.py @@ -194,7 +194,7 @@ def resource_keys(keyword, exclude_packages=[], package_prefix='bob.bio.', strip if entry_point.dist.project_name not in exclude_packages]) -def list_resources(keyword, strip=['dummy'], package_prefix='bob.bio.', verbose=False): +def list_resources(keyword, strip=['dummy'], package_prefix='bob.bio.', verbose=False, packages=None): """Returns a string containing a detailed list of resources that are registered with the given keyword.""" if keyword not in valid_keywords: raise ValueError("The given keyword '%s' is not valid. Please use one of %s!" % (str(keyword), str(valid_keywords))) @@ -204,7 +204,10 @@ def list_resources(keyword, strip=['dummy'], package_prefix='bob.bio.', verbose= retval = "" length = max(len(entry_point.name) for entry_point in entry_points) if entry_points else 1 - for entry_point in sorted(entry_points, key=lambda p: p.dist.project_name): + if packages is not None: + entry_points = [entry_point for entry_point in entry_points if entry_point.dist.project_name in packages] + + for entry_point in sorted(entry_points, key=lambda p: (p.dist.project_name, p.name)): if last_dist != str(entry_point.dist): retval += "\n- %s @ %s: \n" % (str(entry_point.dist), str(entry_point.dist.location)) last_dist = str(entry_point.dist) @@ -224,7 +227,7 @@ def database_directories(strip=['dummy'], replacements = None, package_prefix='b entry_points = _get_entry_points('database', strip, package_prefix=package_prefix) dirs = {} - for entry_point in sorted(entry_points, key=lambda entry_point: entry_point.name): + for entry_point in sorted(entry_points, key=lambda entry_point: entry_point.name): try: db = load_resource(entry_point.name, 'database') db.replace_directories(replacements) -- GitLab