From 577e3df17fd51d779088124d660cf365d6d75e76 Mon Sep 17 00:00:00 2001 From: facetoe Date: Sun, 14 Feb 2016 14:49:55 +0800 Subject: [PATCH] Fix bugs in setting_util.py. An exception was thrown while loading classes and the -l paramater wasn't working correctly. --- i3pystatus/tools/setting_util.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/i3pystatus/tools/setting_util.py b/i3pystatus/tools/setting_util.py index 60bed5d..3263552 100755 --- a/i3pystatus/tools/setting_util.py +++ b/i3pystatus/tools/setting_util.py @@ -13,6 +13,7 @@ import keyring import i3pystatus from i3pystatus import Module, SettingsBase from i3pystatus.core import ClassFinder +from i3pystatus.core.exceptions import ConfigInvalidModuleError def signal_handler(signal, frame): @@ -58,11 +59,12 @@ def get_credential_modules(): for module_name in get_modules(): try: module = class_finder.get_module(module_name) - except ImportError: + clazz = class_finder.get_class(module) + except (ImportError, ConfigInvalidModuleError): if verbose: print("ImportError while importing", module_name) continue - clazz = class_finder.get_class(module) + members = [m[0] for m in inspect.getmembers(clazz) if not m[0].startswith('_')] if any([hasattr(clazz, setting) for setting in protected_settings]): credential_modules[clazz.__name__]['credentials'] = list(set(protected_settings) & set(members)) @@ -97,11 +99,11 @@ Options: if "-l" in sys.argv: for name, module in credential_modules.items(): print(name) - for credential in enumerate_choices(module["credentials"]): - if keyring.get_password("%s.%s" % (module["key"], credential), getpass.getuser()): + for credential in module['credentials']: + if keyring.get_password("%s.%s" % (module['key'], credential), getpass.getuser()): print(" - %s: set" % credential) - else: - print(" (none stored)") + else: + print(" - %s: unset" % credential) return choices = list(credential_modules.keys())