From: Almaz Date: Wed, 21 Jul 2021 13:30:55 +0000 (+0300) Subject: Replace for loops with comprehensions (#1759) X-Git-Tag: 0.19.0~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b839478661beef4c3a10b4b306efc3e07d5fb78b;p=thirdparty%2Fhttpx.git Replace for loops with comprehensions (#1759) --- diff --git a/httpx/_models.py b/httpx/_models.py index 06ebb92c..e2e577b3 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -977,10 +977,11 @@ class Headers(typing.MutableMapping[str, str]): """ normalized_key = key.lower().encode(self.encoding) - items = [] - for _, header_key, header_value in self._list: - if header_key == normalized_key: - items.append(header_value.decode(self.encoding)) + items = [ + header_value.decode(self.encoding) + for _, header_key, header_value in self._list + if header_key == normalized_key + ] if items: return ", ".join(items) @@ -996,10 +997,11 @@ class Headers(typing.MutableMapping[str, str]): set_value = value.encode(self._encoding or "utf-8") lookup_key = set_key.lower() - found_indexes = [] - for idx, (_, item_key, _) in enumerate(self._list): - if item_key == lookup_key: - found_indexes.append(idx) + found_indexes = [ + idx + for idx, (_, item_key, _) in enumerate(self._list) + if item_key == lookup_key + ] for idx in reversed(found_indexes[1:]): del self._list[idx] @@ -1016,10 +1018,11 @@ class Headers(typing.MutableMapping[str, str]): """ del_key = key.lower().encode(self.encoding) - pop_indexes = [] - for idx, (_, item_key, _) in enumerate(self._list): - if item_key.lower() == del_key: - pop_indexes.append(idx) + pop_indexes = [ + idx + for idx, (_, item_key, _) in enumerate(self._list) + if item_key.lower() == del_key + ] if not pop_indexes: raise KeyError(key) @@ -1745,12 +1748,13 @@ class Cookies(MutableMapping): if domain is not None and path is not None: return self.jar.clear(domain, path, name) - remove = [] - for cookie in self.jar: - if cookie.name == name: - if domain is None or cookie.domain == domain: - if path is None or cookie.path == path: - remove.append(cookie) + remove = [ + cookie + for cookie in self.jar + if cookie.name == name + and (domain is None or cookie.domain == domain) + and (path is None or cookie.path == path) + ] for cookie in remove: self.jar.clear(cookie.domain, cookie.path, cookie.name) diff --git a/tests/conftest.py b/tests/conftest.py index 3ac7167e..e2b98018 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -144,10 +144,10 @@ async def echo_body(scope, receive, send): async def echo_headers(scope, receive, send): - body = {} - for name, value in scope.get("headers", []): - body[name.capitalize().decode()] = value.decode() - + body = { + name.capitalize().decode(): value.decode() + for name, value in scope.get("headers", []) + } await send( { "type": "http.response.start", diff --git a/tests/models/test_responses.py b/tests/models/test_responses.py index 742a15be..f1815dca 100644 --- a/tests/models/test_responses.py +++ b/tests/models/test_responses.py @@ -572,10 +572,7 @@ def test_iter_lines(): 200, content=b"Hello,\nworld!", ) - - content = [] - for line in response.iter_lines(): - content.append(line) + content = [line for line in response.iter_lines()] assert content == ["Hello,\n", "world!"]