Viewing file: __init__.py (1.7 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from __future__ import annotations
from importlib.metadata import version
__all__ = [ "inject_into_urllib3", "extract_from_urllib3", ]
import typing
orig_HTTPSConnection: typing.Any = None
def inject_into_urllib3() -> None: # First check if h2 version is valid h2_version = version("h2") if not h2_version.startswith("4."): raise ImportError( "urllib3 v2 supports h2 version 4.x.x, currently " f"the 'h2' module is compiled with {h2_version!r}. " "See: https://github.com/urllib3/urllib3/issues/3290" )
# Import here to avoid circular dependencies. from .. import connection as urllib3_connection from .. import util as urllib3_util from ..connectionpool import HTTPSConnectionPool from ..util import ssl_ as urllib3_util_ssl from .connection import HTTP2Connection
global orig_HTTPSConnection orig_HTTPSConnection = urllib3_connection.HTTPSConnection
HTTPSConnectionPool.ConnectionCls = HTTP2Connection urllib3_connection.HTTPSConnection = HTTP2Connection # type: ignore[misc]
# TODO: Offer 'http/1.1' as well, but for testing purposes this is handy. urllib3_util.ALPN_PROTOCOLS = ["h2"] urllib3_util_ssl.ALPN_PROTOCOLS = ["h2"]
def extract_from_urllib3() -> None: from .. import connection as urllib3_connection from .. import util as urllib3_util from ..connectionpool import HTTPSConnectionPool from ..util import ssl_ as urllib3_util_ssl
HTTPSConnectionPool.ConnectionCls = orig_HTTPSConnection urllib3_connection.HTTPSConnection = orig_HTTPSConnection # type: ignore[misc]
urllib3_util.ALPN_PROTOCOLS = ["http/1.1"] urllib3_util_ssl.ALPN_PROTOCOLS = ["http/1.1"]
|