@@ -593,12 +593,27 @@ def __init__(self, query_params: list[tuple[str, str]]) -> None:
593
593
:param query_params: The list of query param tuples to append to.
594
594
"""
595
595
self ._query_params = query_params
596
- self ._delegate = CapturingSerializer ()
597
596
598
597
def entry (self , key : str , value_writer : Callable [[ShapeSerializer ], None ]):
599
- value_writer (self ._delegate )
600
- assert self ._delegate .result is not None # noqa: S101
601
- self ._query_params .append ((key , urlquote (self ._delegate .result , safe = "" )))
598
+ value_writer (HTTPQueryMapValueSerializer (key , self ._query_params ))
599
+
600
+
601
+ class HTTPQueryMapValueSerializer (SpecificShapeSerializer ):
602
+ def __init__ (self , key : str , query_params : list [tuple [str , str ]]) -> None :
603
+ """Initialize an HTTPQueryMapValueSerializer.
604
+
605
+ :param key: The key of the query parameter.
606
+ :param query_params: The list of query param tuples to append to.
607
+ """
608
+ self ._key = key
609
+ self ._query_params = query_params
610
+
611
+ def write_string (self , schema : Schema , value : str ) -> None :
612
+ self ._query_params .append ((self ._key , urlquote (value , safe = "" )))
613
+
614
+ @contextmanager
615
+ def begin_list (self , schema : Schema , size : int ) -> Iterator [ShapeSerializer ]:
616
+ yield self
602
617
603
618
604
619
class HostPrefixSerializer (SpecificShapeSerializer ):
0 commit comments