@@ -328,7 +328,7 @@ def __init__(
328
328
:py:class:`HTTPHeaderTrait` will be checked instead. Required when
329
329
collecting list entries.
330
330
:param headers: An optional list of header tuples to append to. If not
331
- set, one will be created.
331
+ set, one will be created. Values appended will not be escaped.
332
332
"""
333
333
self .headers : list [tuple [str , str ]] = headers if headers is not None else []
334
334
self ._key = key
@@ -486,7 +486,7 @@ def write_big_decimal(self, schema: Schema, value: Decimal) -> None:
486
486
487
487
def write_string (self , schema : Schema , value : str ) -> None :
488
488
key = self ._key or schema .expect_trait (HTTPQueryTrait ).key
489
- self .query_params .append ((key , urlquote ( value , safe = "" ) ))
489
+ self .query_params .append ((key , value ))
490
490
491
491
def write_timestamp (self , schema : Schema , value : datetime ) -> None :
492
492
key = self ._key or schema .expect_trait (HTTPQueryTrait ).key
@@ -576,7 +576,7 @@ def entry(self, key: str, value_writer: Callable[[ShapeSerializer], None]):
576
576
577
577
578
578
class HTTPQueryMapValueSerializer (SpecificShapeSerializer ):
579
- def __init__ (self , key : str , query_params : list [tuple [str , str ]]) -> None :
579
+ def __init__ (self , key : str , query_params : list [tuple [str , str ]]) -> None :
580
580
"""Initialize an HTTPQueryMapValueSerializer.
581
581
582
582
:param key: The key of the query parameter.
@@ -586,7 +586,8 @@ def __init__(self, key: str, query_params: list[tuple[str, str]]) -> None:
586
586
self ._query_params = query_params
587
587
588
588
def write_string (self , schema : Schema , value : str ) -> None :
589
- self ._query_params .append ((self ._key , urlquote (value , safe = "" )))
589
+ # Note: values are escaped when query params are joined
590
+ self ._query_params .append ((self ._key , value ))
590
591
591
592
@contextmanager
592
593
def begin_list (self , schema : Schema , size : int ) -> Iterator [ShapeSerializer ]:
0 commit comments