Don't check for new versions of pip.

--- pip-10.0.1/src/pip/_internal/basecommand.py
+++ pip-10.0.1/src/pip/_internal/basecommand.py
@@ -255,14 +255,6 @@
 
             return UNKNOWN_ERROR
         finally:
-            # Check if we're using the latest version of pip available
-            if (not options.disable_pip_version_check and not
-                    getattr(options, "no_index", False)):
-                with self._build_session(
-                        options,
-                        retries=0,
-                        timeout=min(5, options.timeout)) as session:
-                    pip_version_check(session, options)
             # Avoid leaking loggers
             for handler in set(logging.root.handlers) - original_root_handlers:
                 # this method benefit from the Logger class internal lock
