@@ -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