From 0a5e5dab48400bb290bd5f9d8b6df071285ffad5 Mon Sep 17 00:00:00 2001 From: Erin O'Connell Date: Sat, 18 Nov 2017 23:18:48 -0700 Subject: [PATCH 1/3] removed unnecessary encoding --- pipenv/vendor/dotenv/main.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pipenv/vendor/dotenv/main.py b/pipenv/vendor/dotenv/main.py index ba74cb63..ba150270 100644 --- a/pipenv/vendor/dotenv/main.py +++ b/pipenv/vendor/dotenv/main.py @@ -102,13 +102,11 @@ def parse_dotenv(dotenv_path): 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().encode('unicode-escape').decode('ascii') + k, v = k.strip(), v.strip() if len(v) > 0: quoted = v[0] == v[len(v) - 1] in ['"', "'"] - if quoted: v = decode_escaped(v[1:-1]) From aac0ef92a54519bea17f1c9c8f4c6f278c4d408a Mon Sep 17 00:00:00 2001 From: Erin O'Connell Date: Sun, 19 Nov 2017 15:17:51 -0700 Subject: [PATCH 2/3] moved dotenv from vendor to patched --- pipenv/{vendor => patched}/dotenv/__init__.py | 0 pipenv/{vendor => patched}/dotenv/cli.py | 0 pipenv/{vendor => patched}/dotenv/ipython.py | 0 pipenv/{vendor => patched}/dotenv/main.py | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename pipenv/{vendor => patched}/dotenv/__init__.py (100%) rename pipenv/{vendor => patched}/dotenv/cli.py (100%) rename pipenv/{vendor => patched}/dotenv/ipython.py (100%) rename pipenv/{vendor => patched}/dotenv/main.py (100%) diff --git a/pipenv/vendor/dotenv/__init__.py b/pipenv/patched/dotenv/__init__.py similarity index 100% rename from pipenv/vendor/dotenv/__init__.py rename to pipenv/patched/dotenv/__init__.py diff --git a/pipenv/vendor/dotenv/cli.py b/pipenv/patched/dotenv/cli.py similarity index 100% rename from pipenv/vendor/dotenv/cli.py rename to pipenv/patched/dotenv/cli.py diff --git a/pipenv/vendor/dotenv/ipython.py b/pipenv/patched/dotenv/ipython.py similarity index 100% rename from pipenv/vendor/dotenv/ipython.py rename to pipenv/patched/dotenv/ipython.py diff --git a/pipenv/vendor/dotenv/main.py b/pipenv/patched/dotenv/main.py similarity index 100% rename from pipenv/vendor/dotenv/main.py rename to pipenv/patched/dotenv/main.py From ddde2b227eaca079ef4ba0b0b667fd81972d0db9 Mon Sep 17 00:00:00 2001 From: Erin O'Connell Date: Sun, 19 Nov 2017 15:50:05 -0700 Subject: [PATCH 3/3] merging a PR from the official dotenv repo that addresses the newline issue --- pipenv/patched/dotenv/main.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) 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])