36 lines
795 B
Python
36 lines
795 B
Python
|
"""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.
|
||
|
"""
|
||
|
|
||
|
import sys
|
||
|
|
||
|
|
||
|
def inject_securetransport() -> None:
|
||
|
# Only relevant on macOS
|
||
|
if sys.platform != "darwin":
|
||
|
return
|
||
|
|
||
|
try:
|
||
|
import ssl
|
||
|
except ImportError:
|
||
|
return
|
||
|
|
||
|
# Checks for OpenSSL 1.0.1
|
||
|
if ssl.OPENSSL_VERSION_NUMBER >= 0x1000100F:
|
||
|
return
|
||
|
|
||
|
try:
|
||
|
from pip._vendor.urllib3.contrib import securetransport
|
||
|
except (ImportError, OSError):
|
||
|
return
|
||
|
|
||
|
securetransport.inject_into_urllib3()
|
||
|
|
||
|
|
||
|
inject_securetransport()
|