From 63f200765e679aeeb418c1a34822f8edea1abf36 Mon Sep 17 00:00:00 2001 From: Frost Ming Date: Fri, 26 Oct 2018 16:47:54 +0800 Subject: [PATCH] Proper case the path on Windows --- pipenv/project.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pipenv/project.py b/pipenv/project.py index c2dc9668..efb06f10 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -4,6 +4,7 @@ import json import os import re import sys +import glob import base64 import fnmatch import hashlib @@ -49,14 +50,18 @@ def _normalized(p): if p is None: return None loc = vistir.compat.Path(p) - if loc.is_absolute(): - return normalize_drive(str(loc)) - else: + if not loc.is_absolute(): try: loc = loc.resolve() except OSError: loc = loc.absolute() - return normalize_drive(str(loc)) + # From https://stackoverflow.com/a/35229734/5043728 + if os.name == 'nt': + matches = glob.glob(re.sub(r'([^:/\\])(?=[/\\]|$)', r'[\1]', str(loc))) + path_str = matches and matches[0] or str(loc) + else: + path_str = str(loc) + return normalize_drive(path_str) DEFAULT_NEWLINES = u"\n"