@@ -593,12 +593,27 @@ def __init__(self, query_params: list[tuple[str, str]]) -> None:
593593 :param query_params: The list of query param tuples to append to.
594594 """
595595 self ._query_params = query_params
596- self ._delegate = CapturingSerializer ()
597596
598597 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
602617
603618
604619class HostPrefixSerializer (SpecificShapeSerializer ):
0 commit comments