]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Refactor `httpx/_utils.py` (#1943)
authorYasser Tahiri <yasserth19@gmail.com>
Wed, 9 Feb 2022 12:12:09 +0000 (13:12 +0100)
committerGitHub <noreply@github.com>
Wed, 9 Feb 2022 12:12:09 +0000 (12:12 +0000)
* Removes unnecessary call to keys() when iterating over a dictionary

* Simplify conditionals into a form like a switch statement

* Merge else clause's nested if statement into elif

* Update httpx/_utils.py

* Update httpx/_utils.py

Co-authored-by: Tom Christie <tom@tomchristie.com>
httpx/_utils.py

index 4d791b0825ec121abed00d826207b8abc83419a4..3632783b9a758cd101aef882f8af9ea35e42e064 100644 (file)
@@ -472,19 +472,18 @@ class URLPattern:
         self.port = url.port
         if not url.host or url.host == "*":
             self.host_regex: typing.Optional[typing.Pattern[str]] = None
+        elif url.host.startswith("*."):
+            # *.example.com should match "www.example.com", but not "example.com"
+            domain = re.escape(url.host[2:])
+            self.host_regex = re.compile(f"^.+\\.{domain}$")
+        elif url.host.startswith("*"):
+            # *example.com should match "www.example.com" and "example.com"
+            domain = re.escape(url.host[1:])
+            self.host_regex = re.compile(f"^(.+\\.)?{domain}$")
         else:
-            if url.host.startswith("*."):
-                # *.example.com should match "www.example.com", but not "example.com"
-                domain = re.escape(url.host[2:])
-                self.host_regex = re.compile(f"^.+\\.{domain}$")
-            elif url.host.startswith("*"):
-                # *example.com should match "www.example.com" and "example.com"
-                domain = re.escape(url.host[1:])
-                self.host_regex = re.compile(f"^(.+\\.)?{domain}$")
-            else:
-                # example.com should match "example.com" but not "www.example.com"
-                domain = re.escape(url.host)
-                self.host_regex = re.compile(f"^{domain}$")
+            # example.com should match "example.com" but not "www.example.com"
+            domain = re.escape(url.host)
+            self.host_regex = re.compile(f"^{domain}$")
 
     def matches(self, other: "URL") -> bool:
         if self.scheme and self.scheme != other.scheme: