]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Minor rfc3986 refactoring (#1157)
authorTom Christie <tom@tomchristie.com>
Mon, 10 Aug 2020 15:46:37 +0000 (16:46 +0100)
committerGitHub <noreply@github.com>
Mon, 10 Aug 2020 15:46:37 +0000 (16:46 +0100)
* Minor rfc3986 refactoring

* Update _models.py

httpx/_models.py

index d388ea9b7864b574251b7d9cb5d35808d801eb8c..17c6ef6ee20c05ef84dd752fc86615b76d82c2e5 100644 (file)
@@ -57,14 +57,14 @@ from ._utils import (
 class URL:
     def __init__(self, url: URLTypes = "", params: QueryParamTypes = None) -> None:
         if isinstance(url, str):
-            self._uri_reference = rfc3986.api.iri_reference(url).encode()
+            self._uri_reference = rfc3986.iri_reference(url).encode()
+            if self.is_absolute_url:
+                # We don't want to normalize relative URLs, since doing so
+                # removes any leading `../` portion.
+                self._uri_reference = self._uri_reference.normalize()
         else:
             self._uri_reference = url._uri_reference
 
-        # Normalize scheme and domain name.
-        if self.is_absolute_url:
-            self._uri_reference = self._uri_reference.normalize()
-
         # Add any query parameters, merging with any in the URL if needed.
         if params:
             if self._uri_reference.query: