@@ -52,7 +52,9 @@ def write_struct(self, schema: "Schema", struct: "SerializeableStruct") -> None:
5252 with self .begin_struct (schema = schema ) as struct_serializer :
5353 struct .serialize_members (struct_serializer )
5454
55- def begin_list (self , schema : "Schema" ) -> AbstractContextManager ["ShapeSerializer" ]:
55+ def begin_list (
56+ self , schema : "Schema" , size : int
57+ ) -> AbstractContextManager ["ShapeSerializer" ]:
5658 """Open a list for writing.
5759
5860 The returned context manager is responsible for closing the list when the caller
@@ -62,11 +64,14 @@ def begin_list(self, schema: "Schema") -> AbstractContextManager["ShapeSerialize
6264 inserting any data needed between elements.
6365
6466 :param schema: The schema of the list.
67+ :param size: The size of the list.
6568 :returns: A context manager containing an element serializer.
6669 """
6770 ...
6871
69- def begin_map (self , schema : "Schema" ) -> AbstractContextManager ["MapSerializer" ]:
72+ def begin_map (
73+ self , schema : "Schema" , size : int
74+ ) -> AbstractContextManager ["MapSerializer" ]:
7075 """Open a map for writing.
7176
7277 The returned context manager is responsible for closing the map when the caller
@@ -77,6 +82,7 @@ def begin_map(self, schema: "Schema") -> AbstractContextManager["MapSerializer"]
7782 data needed between entries.
7883
7984 :param schema: The schema of the map.
85+ :param size: The size of the map.
8086 :returns: A context manager containing a map serializer.
8187 """
8288 ...
@@ -239,23 +245,23 @@ def begin_struct(self, schema: "Schema") -> Iterator[ShapeSerializer]:
239245 self .after (schema )
240246
241247 @contextmanager
242- def begin_list (self , schema : "Schema" ) -> Iterator [ShapeSerializer ]:
248+ def begin_list (self , schema : "Schema" , size : int ) -> Iterator [ShapeSerializer ]:
243249 delegate = self .before (schema )
244250
245251 try :
246- with delegate .begin_list (schema ) as s :
252+ with delegate .begin_list (schema , size ) as s :
247253 yield s
248254 except Exception :
249255 raise
250256 else :
251257 self .after (schema )
252258
253259 @contextmanager
254- def begin_map (self , schema : "Schema" ) -> Iterator [MapSerializer ]:
260+ def begin_map (self , schema : "Schema" , size : int ) -> Iterator [MapSerializer ]:
255261 delegate = self .before (schema )
256262
257263 try :
258- with delegate .begin_map (schema ) as s :
264+ with delegate .begin_map (schema , size ) as s :
259265 yield s
260266 except Exception :
261267 raise
@@ -335,10 +341,14 @@ def begin_struct(
335341 ) -> AbstractContextManager ["ShapeSerializer" ]:
336342 self ._invalid_state (schema )
337343
338- def begin_list (self , schema : "Schema" ) -> AbstractContextManager ["ShapeSerializer" ]:
344+ def begin_list (
345+ self , schema : "Schema" , size : int
346+ ) -> AbstractContextManager ["ShapeSerializer" ]:
339347 self ._invalid_state (schema )
340348
341- def begin_map (self , schema : "Schema" ) -> AbstractContextManager ["MapSerializer" ]:
349+ def begin_map (
350+ self , schema : "Schema" , size : int
351+ ) -> AbstractContextManager ["MapSerializer" ]:
342352 self ._invalid_state (schema )
343353
344354 def write_null (self , schema : "Schema" ) -> None :
0 commit comments