1234567891011121314151617181920212223242526272829303132333435 |
- """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()
|