Merge pull request #2454 from pypa/bugfix/2438

Switch to using pathlib2 for python<3.5
This commit is contained in:
Dan Ryan
2018-06-28 15:24:21 -04:00
committed by GitHub
10 changed files with 23 additions and 47 deletions
+1
View File
@@ -0,0 +1 @@
Pipenv will now always use ``pathlib2`` for ``Path`` based filesystem interactions by default on ``python<3.5``.
+7 -4
View File
@@ -29,10 +29,13 @@ except ImportError:
_types.add(type(arg))
return _types.pop()
try:
from pathlib import Path
except ImportError:
from pathlib2 import Path
if sys.version_info[:2] >= (3, 5):
try:
from pathlib import Path
except ImportError:
from .vendor.pathlib2 import Path
else:
from .vendor.pathlib2 import Path
try:
+1 -4
View File
@@ -14,10 +14,7 @@ import six
import toml
import json as simplejson
try:
from pathlib import Path
except ImportError:
from pathlib2 import Path
from ._compat import Path
from .cmdparse import Script
from .vendor.requirementslib import Requirement
+4 -9
View File
@@ -14,7 +14,6 @@ import warnings
from click import echo as click_echo
from first import first
try:
from weakref import finalize
except ImportError:
@@ -36,13 +35,7 @@ try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
try:
from pathlib import Path
except ImportError:
try:
from .vendor.pathlib2 import Path
except ImportError:
pass
from distutils.spawn import find_executable
from contextlib import contextmanager
from .pep508checker import lookup
@@ -609,6 +602,7 @@ def is_installable_file(path):
from .patched.notpip._internal.utils.misc import is_installable_dir
from .patched.notpip._internal.utils.packaging import specifiers
from .patched.notpip._internal.download import is_archive_file
from ._compat import Path
if hasattr(path, 'keys') and any(
key for key in path.keys() if key in ['file', 'path']
@@ -853,6 +847,7 @@ def find_windows_executable(bin_path, exe_name):
def path_to_url(path):
from ._compat import Path
return Path(normalize_drive(os.path.abspath(path))).as_uri()
@@ -1158,7 +1153,7 @@ def get_vcs_deps(
pypi_mirror=None,
):
from .patched.notpip._internal.vcs import VcsSupport
from ._compat import TemporaryDirectory
from ._compat import TemporaryDirectory, Path
section = "vcs_dev_packages" if dev else "vcs_packages"
reqs = []
+1 -7
View File
@@ -4,18 +4,12 @@ import warnings
import pytest
from pipenv._compat import TemporaryDirectory
from pipenv._compat import TemporaryDirectory, Path
from pipenv.vendor import delegator
from pipenv.vendor import requests
from pipenv.vendor import six
from pipenv.vendor import toml
try:
from pathlib import Path
except ImportError:
from pipenv.vendor.pathlib2 import Path
if six.PY2:
class ResourceWarning(Warning):
pass
+1 -5
View File
@@ -2,13 +2,9 @@ import contextlib
import os
from pipenv.utils import temp_environ
from pipenv._compat import TemporaryDirectory
from pipenv._compat import TemporaryDirectory, Path
from pipenv.vendor import delegator
from pipenv.project import Project
try:
from pathlib import Path
except ImportError:
from pipenv.vendor.pathlib2 import Path
import pytest
+2 -5
View File
@@ -1,10 +1,7 @@
import os
import shutil
from pipenv.project import Project
try:
import pathlib
except ImportError:
import pathlib2 as pathlib
from pipenv._compat import Path
from pipenv.utils import mkdir_p, temp_environ
@@ -223,7 +220,7 @@ def test_relative_paths(PipenvInstance, pypi, testsroot):
dep = p.pipfile['packages'][key]
assert 'path' in dep
assert pathlib.Path('.', artifact_dir, file_name) == pathlib.Path(dep['path'])
assert Path('.', artifact_dir, file_name) == Path(dep['path'])
assert c.return_code == 0
+1 -4
View File
@@ -2,10 +2,7 @@ import pytest
import os
from flaky import flaky
import delegator
try:
from pathlib import Path
except ImportError:
from pathlib2 import Path
from pipenv._compat import Path
@pytest.mark.vcs
+2 -6
View File
@@ -11,11 +11,7 @@ import pytest
from pipenv.core import activate_virtualenv
from pipenv.project import Project
from pipenv.vendor import delegator
try:
from pathlib import Path
except ImportError:
from pipenv.vendor.pathlib2 import Path
from pipenv._compat import Path
@pytest.mark.code
@@ -123,4 +119,4 @@ def test_directory_with_leading_dash(PipenvInstance):
assert os.path.isdir(venv_path)
# Manually clean up environment, since PipenvInstance assumes that
# the virutalenv is in the project directory.
p.pipenv('--rm')
p.pipenv('--rm')
+3 -3
View File
@@ -1,7 +1,7 @@
import os
from pipenv.project import Project
from pipenv.vendor import pathlib2 as pathlib
from pipenv._compat import Path
import pytest
@@ -33,7 +33,7 @@ def test_case_changes_windows(PipenvInstance, pypi):
@pytest.mark.files
def test_local_path_windows(PipenvInstance, pypi):
whl = (
pathlib.Path(__file__).parent.parent
Path(__file__).parent.parent
.joinpath('pypi', 'six', 'six-1.11.0-py2.py3-none-any.whl')
)
try:
@@ -48,7 +48,7 @@ def test_local_path_windows(PipenvInstance, pypi):
@pytest.mark.files
def test_local_path_windows_forward_slash(PipenvInstance, pypi):
whl = (
pathlib.Path(__file__).parent.parent
Path(__file__).parent.parent
.joinpath('pypi', 'six', 'six-1.11.0-py2.py3-none-any.whl')
)
try: