]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Drop Protocol str enum class in favor of plain old strings
authorTom Christie <tom@tomchristie.com>
Tue, 20 Aug 2019 13:17:26 +0000 (14:17 +0100)
committerTom Christie <tom@tomchristie.com>
Tue, 20 Aug 2019 13:17:26 +0000 (14:17 +0100)
httpx/__init__.py
httpx/concurrency/asyncio.py
httpx/dispatch/connection.py
httpx/interfaces.py
tests/dispatch/utils.py

index c2925d5c81fedfc9962623e81c7f2335eacbc7b4..da49244056bcc6beb808bf6a6393f87d03f007bb 100644 (file)
@@ -38,7 +38,6 @@ from .interfaces import (
     BaseWriter,
     ConcurrencyBackend,
     Dispatcher,
-    Protocol,
 )
 from .models import (
     URL,
@@ -109,7 +108,6 @@ __all__ = [
     "BaseWriter",
     "ConcurrencyBackend",
     "Dispatcher",
-    "Protocol",
     "URL",
     "URLTypes",
     "StatusCode",
index 6c5dc0c481284d8e80a57a3822620c19fca68129..d8421f7185df964b823b6e327da6642141e2f3f9 100644 (file)
@@ -22,7 +22,6 @@ from ..interfaces import (
     BaseReader,
     BaseWriter,
     ConcurrencyBackend,
-    Protocol,
 )
 
 SSL_MONKEY_PATCH_APPLIED = False
@@ -202,7 +201,7 @@ class AsyncioBackend(ConcurrencyBackend):
         port: int,
         ssl_context: typing.Optional[ssl.SSLContext],
         timeout: TimeoutConfig,
-    ) -> typing.Tuple[BaseReader, BaseWriter, Protocol]:
+    ) -> typing.Tuple[BaseReader, BaseWriter, str]:
         try:
             stream_reader, stream_writer = await asyncio.wait_for(  # type: ignore
                 asyncio.open_connection(hostname, port, ssl=ssl_context),
@@ -221,9 +220,9 @@ class AsyncioBackend(ConcurrencyBackend):
 
         reader = Reader(stream_reader=stream_reader, timeout=timeout)
         writer = Writer(stream_writer=stream_writer, timeout=timeout)
-        protocol = Protocol.HTTP_2 if ident == "h2" else Protocol.HTTP_11
+        http_version = "HTTP/2" if ident == "h2" else "HTTP/1.1"
 
-        return reader, writer, protocol
+        return reader, writer, http_version
 
     async def run_in_threadpool(
         self, func: typing.Callable, *args: typing.Any, **kwargs: typing.Any
index 9dda06d0317831591880dea1d112304c42cdb452..d7417c9513a57f8e48a124b0735642baae998685 100644 (file)
@@ -10,7 +10,7 @@ from ..config import (
     TimeoutTypes,
     VerifyTypes,
 )
-from ..interfaces import AsyncDispatcher, ConcurrencyBackend, Protocol
+from ..interfaces import AsyncDispatcher, ConcurrencyBackend
 from ..models import AsyncRequest, AsyncResponse, Origin
 from .http2 import HTTP2Connection
 from .http11 import HTTP11Connection
@@ -78,14 +78,15 @@ class HTTPConnection(AsyncDispatcher):
         else:
             on_release = functools.partial(self.release_func, self)
 
-        reader, writer, protocol = await self.backend.connect(
+        reader, writer, http_version = await self.backend.connect(
             host, port, ssl_context, timeout
         )
-        if protocol == Protocol.HTTP_2:
+        if http_version == "HTTP/2":
             self.h2_connection = HTTP2Connection(
                 reader, writer, self.backend, on_release=on_release
             )
         else:
+            assert http_version == "HTTP/1.1"
             self.h11_connection = HTTP11Connection(
                 reader, writer, self.backend, on_release=on_release
             )
index 2b4edf4d3cbda1452ea42932e0a87efc44f3100e..ae5b8e01a265b1968a17212c723953cd2a9980a9 100644 (file)
@@ -17,11 +17,6 @@ from .models import (
 )
 
 
-class Protocol(str, enum.Enum):
-    HTTP_11 = "HTTP/1.1"
-    HTTP_2 = "HTTP/2"
-
-
 class AsyncDispatcher:
     """
     Base class for async dispatcher classes, that handle sending the request.
@@ -172,7 +167,7 @@ class ConcurrencyBackend:
         port: int,
         ssl_context: typing.Optional[ssl.SSLContext],
         timeout: TimeoutConfig,
-    ) -> typing.Tuple[BaseReader, BaseWriter, Protocol]:
+    ) -> typing.Tuple[BaseReader, BaseWriter, str]:
         raise NotImplementedError()  # pragma: no cover
 
     def get_semaphore(self, limits: PoolLimits) -> BasePoolSemaphore:
index c92fa7a310b32bdd3039364be03fdc07251f55d7..b5aac850378292812d1fba508ec8ba371cbe2cc5 100644 (file)
@@ -6,14 +6,7 @@ import h2.config
 import h2.connection
 import h2.events
 
-from httpx import (
-    AsyncioBackend,
-    BaseReader,
-    BaseWriter,
-    Protocol,
-    Request,
-    TimeoutConfig,
-)
+from httpx import AsyncioBackend, BaseReader, BaseWriter, Request, TimeoutConfig
 
 
 class MockHTTP2Backend(AsyncioBackend):
@@ -27,9 +20,9 @@ class MockHTTP2Backend(AsyncioBackend):
         port: int,
         ssl_context: typing.Optional[ssl.SSLContext],
         timeout: TimeoutConfig,
-    ) -> typing.Tuple[BaseReader, BaseWriter, Protocol]:
+    ) -> typing.Tuple[BaseReader, BaseWriter, str]:
         self.server = MockHTTP2Server(self.app)
-        return self.server, self.server, Protocol.HTTP_2
+        return self.server, self.server, "HTTP/2"
 
 
 class MockHTTP2Server(BaseReader, BaseWriter):