diff --git a/pipenv/patched/dotenv/main.py b/pipenv/patched/dotenv/main.py index ba150270..59f05174 100644 --- a/pipenv/patched/dotenv/main.py +++ b/pipenv/patched/dotenv/main.py @@ -97,16 +97,10 @@ def dotenv_values(dotenv_path): def parse_dotenv(dotenv_path): with open(dotenv_path) as f: - for line in f: - line = line.strip() - if not line or line.startswith('#') or '=' not in line: - continue - k, v = line.split('=', 1) - # Remove any leading and trailing spaces in key, value - k, v = k.strip(), v.strip() - + for k, v in re.findall('^\s*(\w*)\s*=\s*("[^"]*"|[^\s]*)\s*$', f.read(), flags=re.MULTILINE): if len(v) > 0: quoted = v[0] == v[len(v) - 1] in ['"', "'"] + if quoted: v = decode_escaped(v[1:-1])