From: Taneli Hukkinen Date: Thu, 2 Jul 2020 15:45:00 +0000 (+0300) Subject: Improve list/dict comprehensions (#1036) X-Git-Tag: 0.14.0~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cf90395934a5f25cec69b3e7c11172df1aae40d;p=thirdparty%2Fhttpx.git Improve list/dict comprehensions (#1036) * Improve list/dict comprehensions * Dont make needless list() conversions before bytes.join() Co-authored-by: Florimond Manca --- diff --git a/httpx/_models.py b/httpx/_models.py index 67374266..8221e72f 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -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]: diff --git a/httpx/_transports/urllib3.py b/httpx/_transports/urllib3.py index 705eb715..fe8a89ba 100644 --- a/httpx/_transports/urllib3.py +++ b/httpx/_transports/urllib3.py @@ -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, diff --git a/httpx/_transports/wsgi.py b/httpx/_transports/wsgi.py index 208334fa..717270d4 100644 --- a/httpx/_transports/wsgi.py +++ b/httpx/_transports/wsgi.py @@ -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, diff --git a/tests/client/test_headers.py b/tests/client/test_headers.py index 4d087f9b..6f26b1c7 100755 --- a/tests/client/test_headers.py +++ b/tests/client/test_headers.py @@ -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 diff --git a/tests/client/test_redirects.py b/tests/client/test_redirects.py index b39e8d0e..dea1df28 100644 --- a/tests/client/test_redirects.py +++ b/tests/client/test_redirects.py @@ -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() )