Skip to content

Commit 9d54557

Browse files
committed
update_query({}) should be a no-op.
1 parent cc509d1 commit 9d54557

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

yarl/_url.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -956,7 +956,7 @@ def _get_str_query(self, *args, **kwargs):
956956
raise ValueError("Either kwargs or single query parameter must be present")
957957

958958
if query is None:
959-
query = ""
959+
query = None
960960
elif isinstance(query, Mapping):
961961
quoter = self._QUERY_PART_QUOTER
962962
query = "&".join(self._query_seq_pairs(quoter, query.items()))
@@ -998,7 +998,7 @@ def with_query(self, *args, **kwargs):
998998
"""
999999
# N.B. doesn't cleanup query/fragment
10001000

1001-
new_query = self._get_str_query(*args, **kwargs)
1001+
new_query = self._get_str_query(*args, **kwargs) or ""
10021002
return URL(
10031003
self._val._replace(path=self._val.path, query=new_query), encoded=True
10041004
)
@@ -1007,12 +1007,14 @@ def update_query(self, *args, **kwargs):
10071007
"""Return a new URL with query part updated."""
10081008
s = self._get_str_query(*args, **kwargs)
10091009
query = None
1010-
if s:
1010+
if s is not None:
10111011
new_query = MultiDict(parse_qsl(s, keep_blank_values=True))
10121012
query = MultiDict(self.query)
10131013
query.update(new_query)
10141014

1015-
return URL(self._val._replace(query=self._get_str_query(query)), encoded=True)
1015+
return URL(
1016+
self._val._replace(query=self._get_str_query(query) or ""), encoded=True
1017+
)
10161018

10171019
def with_fragment(self, fragment):
10181020
"""Return a new URL with fragment replaced.

0 commit comments

Comments
 (0)