summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Lee <lxsli@hpe.com>2016-11-22 13:25:19 +0000
committerAlexis Lee <lxsli@hpe.com>2016-11-30 10:35:00 +0000
commitc4ced953ce350fc5dce981c906500901eedf62c2 (patch)
treef6f83adbd18c47586f16021c18aadb02405f054e
parentf24b04ea87f8dfa772eef231dccef96e34371698 (diff)
downloadoslo-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.py45
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):