File tree Expand file tree Collapse file tree 2 files changed +13
-3
lines changed Expand file tree Collapse file tree 2 files changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -1560,7 +1560,7 @@ def get(self, name):
1560
1560
"""
1561
1561
return [value for (key , value ) in self .query if name == key ]
1562
1562
1563
- def remove (self , name ):
1563
+ def remove (self , name , value = _UNSET ):
1564
1564
"""Make a new :class:`URL` instance with all occurrences of the query
1565
1565
parameter *name* removed. No exception is raised if the
1566
1566
parameter is not already set.
@@ -1572,8 +1572,11 @@ def remove(self, name):
1572
1572
URL: A new :class:`URL` instance with the parameter removed.
1573
1573
1574
1574
"""
1575
- return self .replace (query = ((k , v ) for (k , v ) in self .query
1576
- if k != name ))
1575
+ if value is _UNSET :
1576
+ nq = [(k , v ) for (k , v ) in self .query if k != name ]
1577
+ else :
1578
+ nq = [(k , v ) for (k , v ) in self .query if not (k == name and v == value )]
1579
+ return self .replace (query = nq )
1577
1580
1578
1581
1579
1582
EncodedURL = URL # An alias better describing what the URL really is
Original file line number Diff line number Diff line change @@ -535,6 +535,13 @@ def test_queryRemove(self):
535
535
URL .from_text (u"https://example.com/a/b/?bar=2" )
536
536
)
537
537
538
+ self .assertEqual (
539
+ url .remove (name = u"foo" , value = u"1" ),
540
+ URL .from_text (u"https://example.com/a/b/?bar=2&foo=3" )
541
+ )
542
+
543
+
544
+
538
545
def test_parseEqualSignInParamValue (self ):
539
546
"""
540
547
Every C{=}-sign after the first in a query parameter is simply included
You can’t perform that action at this time.
0 commit comments