diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2018-09-08 16:17:09 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2018-09-08 16:17:09 -0400 |
commit | dde0a3ef3b88eb79bff8a36943cf934452eb8c26 (patch) | |
tree | da7de4d5c688bc1b1ee5e85f9371de032d6661d4 /coverage/config.py | |
parent | f4a99853c8dc38a2feafcd0d575a99633786d22d (diff) | |
download | python-coveragepy-git-dde0a3ef3b88eb79bff8a36943cf934452eb8c26.tar.gz |
Move variable substitution to be independent
Diffstat (limited to 'coverage/config.py')
-rw-r--r-- | coverage/config.py | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/coverage/config.py b/coverage/config.py index 061fa304..69c929b4 100644 --- a/coverage/config.py +++ b/coverage/config.py @@ -10,6 +10,7 @@ import re from coverage import env from coverage.backward import configparser, iitems, string_class from coverage.misc import contract, CoverageException, isolate_module +from coverage.misc import substitute_variables os = isolate_module(os) @@ -85,23 +86,7 @@ class HandyConfigParser(configparser.RawConfigParser): raise configparser.NoOptionError v = configparser.RawConfigParser.get(self, real_section, option, *args, **kwargs) - def dollar_replace(m): - """Called for each $replacement.""" - # Only one of the groups will have matched, just get its text. - word = next(w for w in m.groups() if w is not None) # pragma: part covered - if word == "$": - return "$" - else: - return os.environ.get(word, '') - - dollar_pattern = r"""(?x) # Use extended regex syntax - \$(?: # A dollar sign, then - (?P<v1>\w+) | # a plain word, - {(?P<v2>\w+)} | # or a {-wrapped word, - (?P<char>[$]) # or a dollar sign. - ) - """ - v = re.sub(dollar_pattern, dollar_replace, v) + v = substitute_variables(v) return v def getlist(self, section, option): |