-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
39 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,50 +4,31 @@ | |
import locale | ||
import logging | ||
import os | ||
import warnings | ||
|
||
import sys | ||
import warnings | ||
|
||
# 2016-06-17 [email protected]: urllib3 1.14 added optional support for socks, | ||
# but if invoked (i.e. imported), it will issue a warning to stderr if socks | ||
# isn't available. requests unconditionally imports urllib3's socks contrib | ||
# module, triggering this warning. The warning breaks DEP-8 tests (because of | ||
# the stderr output) and is just plain annoying in normal usage. I don't want | ||
# to add socks as yet another dependency for pip, nor do I want to allow-stderr | ||
# in the DEP-8 tests, so just suppress the warning. pdb tells me this has to | ||
# be done before the import of pip.vcs. | ||
from pip._vendor.urllib3.exceptions import DependencyWarning | ||
warnings.filterwarnings("ignore", category=DependencyWarning) # noqa | ||
|
||
# We want to inject the use of SecureTransport as early as possible so that any | ||
# references or sessions or what have you are ensured to have it, however we | ||
# only want to do this in the case that we're running on macOS and the linked | ||
# OpenSSL is too old to handle TLSv1.2 | ||
try: | ||
import ssl | ||
except ImportError: | ||
pass | ||
else: | ||
# Checks for OpenSSL 1.0.1 on MacOS | ||
if sys.platform == "darwin" and ssl.OPENSSL_VERSION_NUMBER < 0x1000100f: | ||
try: | ||
from pip._vendor.urllib3.contrib import securetransport | ||
except (ImportError, OSError): | ||
pass | ||
else: | ||
securetransport.inject_into_urllib3() | ||
# We ignore certain warnings from urllib3, since they are not relevant to pip's | ||
# usecases. | ||
from pip._vendor.urllib3.exceptions import ( | ||
DependencyWarning, | ||
InsecureRequestWarning, | ||
) | ||
|
||
import pip._internal.utils.inject_securetransport # noqa | ||
from pip._internal.cli.autocompletion import autocomplete | ||
from pip._internal.cli.main_parser import parse_command | ||
from pip._internal.commands import create_command | ||
from pip._internal.exceptions import PipError | ||
from pip._internal.utils import deprecation | ||
from pip._vendor.urllib3.exceptions import InsecureRequestWarning | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
# Hide the InsecureRequestWarning from urllib3 | ||
# Raised when using --trusted-host. | ||
warnings.filterwarnings("ignore", category=InsecureRequestWarning) | ||
# Raised since socks support depends on PySocks, which may not be installed. | ||
# Barry Warsaw noted (on 2016-06-17) that this should be done before | ||
# importing pip.vcs, which has since moved to pip._internal.vcs. | ||
warnings.filterwarnings("ignore", category=DependencyWarning) | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
|
||
def main(args=None): | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
"""A helper module that injects SecureTransport, on import. | ||
The import should be done as early as possible, to ensure all requests and | ||
sessions (or whatever) are created after injecting SecureTransport. | ||
Note that we only do the injection on macOS, when the linked OpenSSL is too | ||
old to handle TLSv1.2. | ||
""" | ||
|
||
try: | ||
import ssl | ||
except ImportError: | ||
pass | ||
else: | ||
import sys | ||
|
||
# Checks for OpenSSL 1.0.1 on MacOS | ||
if sys.platform == "darwin" and ssl.OPENSSL_VERSION_NUMBER < 0x1000100f: | ||
try: | ||
from pip._vendor.urllib3.contrib import securetransport | ||
except (ImportError, OSError): | ||
pass | ||
else: | ||
securetransport.inject_into_urllib3() |