@@ -20,7 +20,7 @@ def __init__(self) -> None:
2020 BatchResponseContent is a collection of BatchResponseItem items,
2121 each with a unique request ID.
2222 """
23- self ._responses : Optional [List [ 'BatchResponseItem' ]] = []
23+ self ._responses : Optional [Dict [ str , 'BatchResponseItem' ]] = {}
2424
2525 @property
2626 def responses (self ) -> Optional [List ['BatchResponseItem' ]]:
@@ -38,10 +38,7 @@ def responses(self, responses: Optional[List['BatchResponseItem']]) -> None:
3838 :param responses: The responses to set in the collection
3939 :type responses: Optional[Dict[str, BatchResponseItem]]
4040 """
41- if isinstance (responses , dict ):
42- self ._responses = {response .id : response for response in responses .values ()}
43- else :
44- self ._responses = responses
41+ self ._responses = responses
4542
4643 def response (self , request_id : str ) -> 'BatchResponseItem' :
4744 """
@@ -53,19 +50,10 @@ def response(self, request_id: str) -> 'BatchResponseItem':
5350 """
5451 if self ._responses is None :
5552 raise ValueError ("Responses list is not initialized." )
56- for response in self ._responses :
57- if response .request_id == request_id :
58- return response
53+ if request_id in self ._responses :
54+ return self ._responses [request_id ]
5955 raise KeyError (f"Response with request ID { request_id } not found." )
6056
61- # def get_response_by_id(self, request_id: str) -> 'BatchResponseItem':
62- # if self._responses is None:
63- # raise ValueError("Responses list is not initialized.")
64- # for response in self._responses:
65- # if response.request_id == request_id:
66- # return response
67- # raise KeyError(f"Response with request ID {request_id} not found.")
68-
6957 def response_body (self , request_id : str , type : Type [T ]) -> Optional [T ]:
7058 """
7159 Get the body of a response by its request ID from the collection
@@ -114,16 +102,20 @@ def get_field_deserializers(self) -> Dict[str, Callable[[ParseNode], None]]:
114102 """
115103 return {
116104 'responses' :
117- lambda n :
118- setattr (self , 'responses' , n .get_collection_of_object_values (BatchResponseItem ))
105+ lambda n : setattr (
106+ self , 'responses' ,
107+ {item .id : item
108+ for item in n .get_collection_of_object_values (BatchResponseItem )}
109+ )
119110 }
120111
121112 def serialize (self , writer : SerializationWriter ) -> None :
122113 """
123114 Writes the objects properties to the current writer.
124115 :param writer: The writer to write to
125116 """
126- writer .write_collection_of_object_values ('responses' , self ._responses )
117+ if self ._responses :
118+ writer .write_collection_of_object_values ('responses' , list (self ._responses .values ()))
127119
128120 @staticmethod
129121 def create_from_discriminator_value (
0 commit comments