@@ -351,7 +351,7 @@ def __init__(
351
351
:py:class:`HTTPHeaderTrait` will be checked instead. Required when
352
352
collecting list entries.
353
353
:param headers: An optional list of header tuples to append to. If not
354
- set, one will be created.
354
+ set, one will be created. Values appended will not be escaped.
355
355
"""
356
356
self .headers : list [tuple [str , str ]] = headers if headers is not None else []
357
357
self ._key = key
@@ -509,7 +509,7 @@ def write_big_decimal(self, schema: Schema, value: Decimal) -> None:
509
509
510
510
def write_string (self , schema : Schema , value : str ) -> None :
511
511
key = self ._key or schema .expect_trait (HTTPQueryTrait ).key
512
- self .query_params .append ((key , urlquote ( value , safe = "" ) ))
512
+ self .query_params .append ((key , value ))
513
513
514
514
def write_timestamp (self , schema : Schema , value : datetime ) -> None :
515
515
key = self ._key or schema .expect_trait (HTTPQueryTrait ).key
@@ -599,7 +599,7 @@ def entry(self, key: str, value_writer: Callable[[ShapeSerializer], None]):
599
599
600
600
601
601
class HTTPQueryMapValueSerializer (SpecificShapeSerializer ):
602
- def __init__ (self , key : str , query_params : list [tuple [str , str ]]) -> None :
602
+ def __init__ (self , key : str , query_params : list [tuple [str , str ]]) -> None :
603
603
"""Initialize an HTTPQueryMapValueSerializer.
604
604
605
605
:param key: The key of the query parameter.
@@ -609,7 +609,8 @@ def __init__(self, key: str, query_params: list[tuple[str, str]]) -> None:
609
609
self ._query_params = query_params
610
610
611
611
def write_string (self , schema : Schema , value : str ) -> None :
612
- self ._query_params .append ((self ._key , urlquote (value , safe = "" )))
612
+ # Note: values are escaped when query params are joined
613
+ self ._query_params .append ((self ._key , value ))
613
614
614
615
@contextmanager
615
616
def begin_list (self , schema : Schema , size : int ) -> Iterator [ShapeSerializer ]:
0 commit comments