@@ -570,12 +570,27 @@ def __init__(self, query_params: list[tuple[str, str]]) -> None:
570
570
:param query_params: The list of query param tuples to append to.
571
571
"""
572
572
self ._query_params = query_params
573
- self ._delegate = CapturingSerializer ()
574
573
575
574
def entry (self , key : str , value_writer : Callable [[ShapeSerializer ], None ]):
576
- value_writer (self ._delegate )
577
- assert self ._delegate .result is not None # noqa: S101
578
- self ._query_params .append ((key , urlquote (self ._delegate .result , safe = "" )))
575
+ value_writer (HTTPQueryMapValueSerializer (key , self ._query_params ))
576
+
577
+
578
+ class HTTPQueryMapValueSerializer (SpecificShapeSerializer ):
579
+ def __init__ (self , key : str , query_params : list [tuple [str , str ]]) -> None :
580
+ """Initialize an HTTPQueryMapValueSerializer.
581
+
582
+ :param key: The key of the query parameter.
583
+ :param query_params: The list of query param tuples to append to.
584
+ """
585
+ self ._key = key
586
+ self ._query_params = query_params
587
+
588
+ def write_string (self , schema : Schema , value : str ) -> None :
589
+ self ._query_params .append ((self ._key , urlquote (value , safe = "" )))
590
+
591
+ @contextmanager
592
+ def begin_list (self , schema : Schema , size : int ) -> Iterator [ShapeSerializer ]:
593
+ yield self
579
594
580
595
581
596
class HostPrefixSerializer (SpecificShapeSerializer ):
0 commit comments