Blob Blame History Raw
diff --git a/pipenv/__init__.py b/pipenv/__init__.py
index 4d137e7..1e5230b 100644
--- a/pipenv/__init__.py
+++ b/pipenv/__init__.py
@@ -18,7 +18,7 @@ sys.path.insert(0, PIPENV_VENDOR)
 # Inject patched directory into system path.
 sys.path.insert(0, PIPENV_PATCHED)
 
-from pipenv.vendor.urllib3.exceptions import DependencyWarning
+from urllib3.exceptions import DependencyWarning
 from pipenv.vendor.vistir.compat import ResourceWarning, fs_str
 warnings.filterwarnings("ignore", category=DependencyWarning)
 warnings.filterwarnings("ignore", category=ResourceWarning)
diff --git a/pipenv/core.py b/pipenv/core.py
index b9abe27..cccdb0e 100644
--- a/pipenv/core.py
+++ b/pipenv/core.py
@@ -1070,7 +1070,7 @@ def do_lock(
 
     # Support for --keep-outdatedā€¦
     if keep_outdated:
-        from pipenv.vendor.packaging.utils import canonicalize_name
+        from packaging.utils import canonicalize_name
         for section_name, section in (
             ("default", project.packages),
             ("develop", project.dev_packages),
@@ -1281,7 +1281,7 @@ def pip_install(
 ):
     from pipenv.patched.notpip._internal import logger as piplogger
     from .utils import Mapping
-    from .vendor.urllib3.util import parse_url
+    from urllib3.util import parse_url
 
     src = []
     write_to_tmpfile = False
@@ -1640,7 +1640,7 @@ def do_py(system=False):
 def do_outdated(pypi_mirror=None):
     # TODO: Allow --skip-lock here?
     from .vendor.requirementslib.models.requirements import Requirement
-    from .vendor.packaging.utils import canonicalize_name
+    from packaging.utils import canonicalize_name
     from collections import namedtuple
 
     packages = {}
@@ -2009,7 +2009,7 @@ def do_uninstall(
 ):
     from .environments import PIPENV_USE_SYSTEM
     from .vendor.requirementslib.models.requirements import Requirement
-    from .vendor.packaging.utils import canonicalize_name
+    from packaging.utils import canonicalize_name
 
     # Automatically use an activated virtualenv.
     if PIPENV_USE_SYSTEM:
diff --git a/pipenv/exceptions.py b/pipenv/exceptions.py
index 62e25d5..00da817 100644
--- a/pipenv/exceptions.py
+++ b/pipenv/exceptions.py
@@ -11,9 +11,9 @@ import six
 from ._compat import fix_utf8
 from .patched import crayons
 from . import environments
-from .vendor.click.utils import echo as click_echo
-from .vendor.click._compat import get_text_stderr
-from .vendor.click.exceptions import (
+from click.utils import echo as click_echo
+from click._compat import get_text_stderr
+from click.exceptions import (
     Abort,
     BadOptionUsage,
     BadParameter,
@@ -23,7 +23,7 @@ from .vendor.click.exceptions import (
     MissingParameter,
     UsageError,
 )
-from .vendor.click.types import Path
+from click.types import Path
 
 
 def handle_exception(exc_type, exception, traceback, hook=sys.excepthook):
diff --git a/pipenv/patched/piptools/_compat/pip_compat.py b/pipenv/patched/piptools/_compat/pip_compat.py
index c466ef0..e2782f2 100644
--- a/pipenv/patched/piptools/_compat/pip_compat.py
+++ b/pipenv/patched/piptools/_compat/pip_compat.py
@@ -24,7 +24,7 @@ __all__ = [
     "user_cache_dir"
 ]
 
-from pipenv.vendor.appdirs import user_cache_dir
+from appdirs import user_cache_dir
 from pip_shims.shims import (
     InstallRequirement,
     parse_requirements,
diff --git a/pipenv/resolver.py b/pipenv/resolver.py
index e87f324..cc42918 100644
--- a/pipenv/resolver.py
+++ b/pipenv/resolver.py
@@ -121,6 +121,6 @@ def main():
 
 if __name__ == "__main__":
     _patch_path()
-    from pipenv.vendor import colorama
+    import colorama
     colorama.init()
     main()
diff --git a/pipenv/shells.py b/pipenv/shells.py
index 352c01f..78bced8 100644
--- a/pipenv/shells.py
+++ b/pipenv/shells.py
@@ -8,7 +8,7 @@ import sys
 from .environments import PIPENV_SHELL_EXPLICIT, PIPENV_SHELL, PIPENV_EMULATOR
 from .vendor.vistir.compat import get_terminal_size, Path
 from .vendor.vistir.contextmanagers import temp_environ
-from .vendor import shellingham
+import shellingham
 
 
 ShellDetectionFailure = shellingham.ShellDetectionFailure
@@ -97,7 +97,7 @@ class Shell(object):
             _handover(self.cmd, self.args + list(args))
 
     def fork_compat(self, venv, cwd, args):
-        from .vendor import pexpect
+        import pexpect
 
         # Grab current terminal dimensions to replace the hardcoded default
         # dimensions of pexpect.
diff --git a/pipenv/utils.py b/pipenv/utils.py
index 2dd5615..ba94166 100644
--- a/pipenv/utils.py
+++ b/pipenv/utils.py
@@ -377,7 +377,7 @@ class Resolver(object):
 
     def resolve(self):
         from pipenv.vendor.pip_shims.shims import DistributionNotFound
-        from pipenv.vendor.requests.exceptions import HTTPError
+        from requests.exceptions import HTTPError
         from pipenv.patched.piptools.exceptions import NoCandidateFound
         from pipenv.patched.piptools.cache import CorruptCacheError
         from .exceptions import CacheError, ResolutionFailure
@@ -504,7 +504,7 @@ def create_spinner(text, nospin=None, spinner_name=None):
 def resolve(cmd, sp):
     from .vendor import delegator
     from .cmdparse import Script
-    from .vendor.pexpect.exceptions import EOF, TIMEOUT
+    from pexpect.exceptions import EOF, TIMEOUT
     from .vendor.vistir.compat import to_native_string
     EOF.__module__ = "pexpect.exceptions"
     from ._compat import decode_output
@@ -696,7 +696,7 @@ def resolve_deps(
     """Given a list of dependencies, return a resolved list of dependencies,
     using pip-tools -- and their hashes, using the warehouse API / pip.
     """
-    from .vendor.requests.exceptions import ConnectionError
+    from requests.exceptions import ConnectionError
     from .vendor.requirementslib.models.requirements import Requirement
 
     index_lookup = {}
@@ -1076,7 +1076,7 @@ def get_url_name(url):
 
 def get_canonical_names(packages):
     """Canonicalize a list of packages and return a set of canonical names"""
-    from .vendor.packaging.utils import canonicalize_name
+    from packaging.utils import canonicalize_name
 
     if not isinstance(packages, Sequence):
         if not isinstance(packages, six.string_types):
@@ -1331,8 +1331,8 @@ def translate_markers(pipfile_entry):
     """
     if not isinstance(pipfile_entry, Mapping):
         raise TypeError("Entry is not a pipfile formatted mapping.")
-    from .vendor.distlib.markers import DEFAULT_CONTEXT as marker_context
-    from .vendor.packaging.markers import Marker
+    from distlib.markers import DEFAULT_CONTEXT as marker_context
+    from packaging.markers import Marker
     from .vendor.vistir.misc import dedup
 
     allowed_marker_keys = ["markers"] + [k for k in marker_context.keys()]
diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py
index 822617a..768ef55 100644
--- a/tests/integration/conftest.py
+++ b/tests/integration/conftest.py
@@ -1,6 +1,8 @@
 import json
 import os
+import requests
 import sys
+import toml
 import warnings
 
 import pytest
@@ -9,10 +11,9 @@ from pipenv._compat import TemporaryDirectory, Path
 from pipenv.exceptions import VirtualenvActivationException
 from pipenv.utils import temp_environ
 from pipenv.vendor import delegator
-from pipenv.vendor import requests
-from pipenv.vendor import toml
 from pipenv.vendor import tomlkit
 from pytest_pypi.app import prepare_packages as prepare_pypi_packages, prepare_fixtures
+from pytest_pypi.plugin import pypi, pypi_secure
 from vistir.compat import ResourceWarning, fs_str
 from vistir.path import mkdir_p