diff --git a/src/pip/_internal/cli/cmdoptions.py b/src/pip/_internal/cli/cmdoptions.py index 04b86f0b4a7..873e6798c8f 100644 --- a/src/pip/_internal/cli/cmdoptions.py +++ b/src/pip/_internal/cli/cmdoptions.py @@ -770,7 +770,7 @@ def _handle_no_cache_dir( dest="parallel_downloads", type="int", metavar="n", - default=None, + default=1, help=( "Use upto threads to download packages in parallel." " must be greater than 0" diff --git a/src/pip/_internal/cli/req_command.py b/src/pip/_internal/cli/req_command.py index fd37ba5d337..4962aab7898 100644 --- a/src/pip/_internal/cli/req_command.py +++ b/src/pip/_internal/cli/req_command.py @@ -118,10 +118,6 @@ def _build_session( ssl_context = None else: ssl_context = None - if "parallel_downloads" in options.__dict__: - parallel_downloads = options.parallel_downloads - else: - parallel_downloads = None session = PipSession( cache=os.path.join(cache_dir, "http-v2") if cache_dir else None, @@ -129,7 +125,7 @@ def _build_session( trusted_hosts=options.trusted_hosts, index_urls=self._get_index_urls(options), ssl_context=ssl_context, - parallel_downloads=parallel_downloads, + parallel_downloads=options.parallel_downloads, ) # Handle custom ca-bundles from the user diff --git a/src/pip/_internal/commands/download.py b/src/pip/_internal/commands/download.py index 1a22f6073e3..62961229b02 100644 --- a/src/pip/_internal/commands/download.py +++ b/src/pip/_internal/commands/download.py @@ -78,9 +78,7 @@ def add_options(self) -> None: @with_cleanup def run(self, options: Values, args: List[str]) -> int: - if (options.parallel_downloads is not None) and ( - options.parallel_downloads < 1 - ): + if options.parallel_downloads < 1: raise CommandError("Value of '--parallel-downloads' must be greater than 0") options.ignore_installed = True diff --git a/src/pip/_internal/network/session.py b/src/pip/_internal/network/session.py index 433cf1f1541..821bf2f5e73 100644 --- a/src/pip/_internal/network/session.py +++ b/src/pip/_internal/network/session.py @@ -326,7 +326,7 @@ def __init__( trusted_hosts: Sequence[str] = (), index_urls: Optional[List[str]] = None, ssl_context: Optional["SSLContext"] = None, - parallel_downloads: Optional[int] = None, + parallel_downloads: int = 1, **kwargs: Any, ) -> None: """ @@ -367,9 +367,7 @@ def __init__( # pip._internal.network.BatchDownloader and to set pool_connection in # the HTTPAdapter to prevent connection pool from hitting the default(10) # limit and throwing 'Connection pool is full' warnings - self.parallel_downloads = ( - parallel_downloads if (parallel_downloads is not None) else 1 - ) + self.parallel_downloads = parallel_downloads pool_maxsize = max(self.parallel_downloads, 10) # Our Insecure HTTPAdapter disables HTTPS validation. It does not # support caching so we'll use it for all http:// URLs.