diff options
author | Alexis Lee <lxsli@hpe.com> | 2016-11-22 13:25:19 +0000 |
---|---|---|
committer | Alexis Lee <lxsli@hpe.com> | 2016-11-30 10:35:00 +0000 |
commit | c4ced953ce350fc5dce981c906500901eedf62c2 (patch) | |
tree | f6f83adbd18c47586f16021c18aadb02405f054e | |
parent | f24b04ea87f8dfa772eef231dccef96e34371698 (diff) | |
download | oslo-config-c4ced953ce350fc5dce981c906500901eedf62c2.tar.gz |
List comprehensions
Replace some unnecessarily iterative/functional idioms with more
Pythonic ones.
Also eliminate duplication between find_config_dirs and
find_config_files.
Change-Id: I678a7b072d195be9a4271dc5b2a9b5c300098cb0
-rw-r--r-- | oslo_config/cfg.py | 45 |
1 files changed, 16 insertions, 29 deletions
diff --git a/oslo_config/cfg.py b/oslo_config/cfg.py index 8b13823..bf0c637 100644 --- a/oslo_config/cfg.py +++ b/oslo_config/cfg.py @@ -457,7 +457,6 @@ import sys import debtcollector from debtcollector import removals import six -from six import moves from oslo_config._i18n import _LI, _LW from oslo_config import iniparser @@ -625,7 +624,7 @@ def _get_config_dirs(project=None): os.path.join('/etc', project) if project else None, '/etc' ] - return list(moves.filter(bool, cfg_dirs)) + return [x for x in cfg_dirs if x] def _search_dirs(dirs, basename, extension=""): @@ -645,6 +644,19 @@ def _search_dirs(dirs, basename, extension=""): return path +def _find_config_files(project, prog, extension): + if prog is None: + prog = os.path.basename(sys.argv[0]) + if prog.endswith(".py"): + prog = prog[:-3] + + cfg_dirs = _get_config_dirs(project) + config_files = (_search_dirs(cfg_dirs, p, extension) + for p in [project, prog] if p) + + return [x for x in config_files if x] + + def find_config_files(project=None, prog=None, extension='.conf'): """Return a list of default configuration files. @@ -671,19 +683,7 @@ def find_config_files(project=None, prog=None, extension='.conf'): If no project name is supplied, we only look for ${prog.conf}. """ - if prog is None: - prog = os.path.basename(sys.argv[0]) - if prog.endswith(".py"): - prog = prog[:-3] - - cfg_dirs = _get_config_dirs(project) - - config_files = [] - if project: - config_files.append(_search_dirs(cfg_dirs, project, extension)) - config_files.append(_search_dirs(cfg_dirs, prog, extension)) - - return list(moves.filter(bool, config_files)) + return _find_config_files(project, prog, extension) def find_config_dirs(project=None, prog=None, extension='.conf.d'): @@ -711,20 +711,7 @@ def find_config_dirs(project=None, prog=None, extension='.conf.d'): /etc/bar.conf.d/ and ~/.foo/bar.conf.d/ all exist, then we return ['/etc/foo/foo.conf.d/', '~/.foo/bar.conf.d/'] """ - if prog is None: - prog = os.path.basename(sys.argv[0]) - if prog.endswith(".py"): - prog = prog[:-3] - - # the base config directories - cfg_base_dirs = _get_config_dirs(project) - - config_dirs = [] - if project: - config_dirs.append(_search_dirs(cfg_base_dirs, project, extension)) - config_dirs.append(_search_dirs(cfg_base_dirs, prog, extension)) - - return list(moves.filter(bool, config_dirs)) + return _find_config_files(project, prog, extension) def _is_opt_registered(opts, opt): |