Threaded page downloads was causing issues with the requests
pool being closed. It also makes this area of code harder to debug
and quite often the pool has a size of 1.
Further more the pool only affects the scaning of the index which
should not have as great of a need for parallezation now that there
is only a single request per download by default.
2) have `create_main_parser` mark the parser as the 'main' parser.
3) remove an extraneus block that's never called. thanks @netspyer.
4) move 'create_main_parser` to __init__ to avoid circular or embedded imports.
This patch removes the error prone step of merging the baseparsers'
options (the 'Generic Options') with those of the subparser. In fact,
commands are already capable of parsing all options present in the
'Generic Options' option group. The option parsing logic is as follows:
Given a command line such as:
'--timeout 5 install --user pkg'
pip.parseopt() returns command 'install' with arguments:
'--timeout 5 --user pkg'
pip.main() executes the above as:
commands['install'](parser).main('--timeout 5 --user pkg', options)
Previously, we used `convert_value' in all cases, which seems
to try to detect lists based on the value of nargs, but that fails
with lists of one item. This "worked" for 'str' options, because
the values don't get checked, but was failing for choice types
(see Issue #772), and would fail for other types like int.
The `pip` executable was returning a successful status code (`0`) when
trying to install new packages with existing previous build directories.
Conflicts:
tests/functional/test_install_cleanup.py
tests/functional/test_wheel.py
* PEP381 Mirroring support was never fully implemented leaving
users of it trivially exploitable to a MITM or malicious mirror
operator.
* 2 out of 6 of the mirrors have been removed from the pool and
will never resolve.
* The remaining mirrors often fall behind
* The mirrors will likely never be available under HTTPS
* People who wish to use a mirror of PyPI can still do so by
manually specifying a mirror url for --index-url or
--extra-index-url which is more flexible, allowing for
mirrors to be hosted under any domain.