]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Improve list/dict comprehensions (#1036)
authorTaneli Hukkinen <hukkinj1@users.noreply.github.com>
Thu, 2 Jul 2020 15:45:00 +0000 (18:45 +0300)
committerGitHub <noreply@github.com>
Thu, 2 Jul 2020 15:45:00 +0000 (17:45 +0200)
* Improve list/dict comprehensions

* Dont make needless list() conversions before bytes.join()

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
httpx/_models.py
httpx/_transports/urllib3.py
httpx/_transports/wsgi.py
tests/client/test_headers.py
tests/client/test_redirects.py

index 67374266442c2c5adc5545108ccde597e689eca8..8221e72f11013a453e183f8b8042fa4685b9acbd 100644 (file)
@@ -651,7 +651,7 @@ class Request:
         Read and return the request content.
         """
         if not hasattr(self, "_content"):
-            self._content = b"".join([part for part in self.stream])
+            self._content = b"".join(self.stream)
             # If a streaming request has been read entirely into memory, then
             # we can replace the stream with a raw bytes implementation,
             # to ensure that any non-replayable streams can still be used.
@@ -895,7 +895,7 @@ class Response:
         Read and return the response content.
         """
         if not hasattr(self, "_content"):
-            self._content = b"".join([part for part in self.iter_bytes()])
+            self._content = b"".join(self.iter_bytes())
         return self._content
 
     def iter_bytes(self) -> typing.Iterator[bytes]:
index 705eb71503643e8d5f71e96b75d41b6844833c8c..fe8a89ba85daacdbb95e8eccb3451bab1bffeae7 100644 (file)
@@ -88,12 +88,9 @@ class URLLib3Transport(httpcore.SyncHTTPTransport):
             conn = self.pool.urlopen(
                 method=method.decode(),
                 url=url_str,
-                headers=dict(
-                    [
-                        (key.decode("ascii"), value.decode("ascii"))
-                        for key, value in headers
-                    ]
-                ),
+                headers={
+                    key.decode("ascii"): value.decode("ascii") for key, value in headers
+                },
                 body=body,
                 redirect=False,
                 assert_same_host=False,
index 208334fafd6b00418e03d5976e6b6e4815c631d2..717270d40dd54dc891fdeec74ae8e58697d049f5 100644 (file)
@@ -83,7 +83,7 @@ class WSGITransport(httpcore.SyncHTTPTransport):
         environ = {
             "wsgi.version": (1, 0),
             "wsgi.url_scheme": scheme.decode("ascii"),
-            "wsgi.input": io.BytesIO(b"".join([chunk for chunk in stream])),
+            "wsgi.input": io.BytesIO(b"".join(stream)),
             "wsgi.errors": io.BytesIO(),
             "wsgi.multithread": True,
             "wsgi.multiprocess": False,
index 4d087f9bc1eaae7d194f18e2f98f362881c5e215..6f26b1c7b34a10b07d81223db24b22bc1113d61c 100755 (executable)
@@ -20,9 +20,9 @@ class MockTransport(httpcore.AsyncHTTPTransport):
     ) -> typing.Tuple[
         bytes, int, bytes, typing.List[typing.Tuple[bytes, bytes]], ContentStream
     ]:
-        headers_dict = dict(
-            [(key.decode("ascii"), value.decode("ascii")) for key, value in headers]
-        )
+        headers_dict = {
+            key.decode("ascii"): value.decode("ascii") for key, value in headers
+        }
         body = JSONStream({"headers": headers_dict})
         return b"HTTP/1.1", 200, b"OK", [], body
 
index b39e8d0e9e02e058835ffda156dc3afcdf387705..dea1df284d07ebc7af835dc1bd396d0e689d618b 100644 (file)
@@ -100,9 +100,9 @@ class MockTransport:
             return b"HTTP/1.1", code, b"See Other", headers, ByteStream(b"")
 
         elif path == b"/cross_domain_target":
-            headers_dict = dict(
-                [(key.decode("ascii"), value.decode("ascii")) for key, value in headers]
-            )
+            headers_dict = {
+                key.decode("ascii"): value.decode("ascii") for key, value in headers
+            }
             content = ByteStream(json.dumps({"headers": headers_dict}).encode())
             return b"HTTP/1.1", 200, b"OK", [], content
 
@@ -118,9 +118,9 @@ class MockTransport:
 
         elif path == b"/redirect_body_target":
             content = b"".join(stream)
-            headers_dict = dict(
-                [(key.decode("ascii"), value.decode("ascii")) for key, value in headers]
-            )
+            headers_dict = {
+                key.decode("ascii"): value.decode("ascii") for key, value in headers
+            }
             body = ByteStream(
                 json.dumps({"body": content.decode(), "headers": headers_dict}).encode()
             )