From 7edfe64da67f5cffbcbb6ce7d697689af7866044 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 10 Aug 2020 16:46:37 +0100 Subject: [PATCH] Minor rfc3986 refactoring (#1157) * Minor rfc3986 refactoring * Update _models.py --- httpx/_models.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/httpx/_models.py b/httpx/_models.py index d388ea9b..17c6ef6e 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -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: -- 2.47.3