11import uuid
2- from typing import List , Dict , Union , Any , Optional
2+ from typing import List , Dict , Union , Optional
33
44from kiota_abstractions .request_information import RequestInformation
55from kiota_abstractions .serialization import Parsable , ParseNode
@@ -19,15 +19,18 @@ def __init__(self, requests: List[Union['BatchRequestItem', 'RequestInformation'
1919 """
2020 Initializes a new instance of the BatchRequestContent class.
2121 """
22- self ._requests : List [Union [BatchRequestItem , 'RequestInformation' ]] = requests or []
22+ self ._requests : Dict [str , Union [BatchRequestItem , 'RequestInformation' ]] = {}
23+
2324 self .is_finalized = False
25+ for request in requests :
26+ self .add_request (request )
2427
2528 @property
2629 def requests (self ) -> List :
2730 """
2831 Gets the requests.
2932 """
30- return self ._requests
33+ return list ( self ._requests . values ())
3134
3235 @requests .setter
3336 def requests (self , requests : List [BatchRequestItem ]) -> None :
@@ -52,8 +55,8 @@ def add_request(self, request: BatchRequestItem) -> None:
5255 if dependent_id not in [req .id for req in self .requests ]:
5356 dependent_request = self ._request_by_id (dependent_id )
5457 if dependent_request :
55- self ._requests . append ( dependent_request )
56- self ._requests . append ( request )
58+ self ._requests [ dependent_id ] = dependent_request
59+ self ._requests [ request . id ] = request
5760
5861 def add_request_information (self , request_information : RequestInformation ) -> None :
5962 """
@@ -83,7 +86,7 @@ def remove(self, request_id: str) -> None:
8386 if request_id in request .depends_on :
8487 request .depends_on .remove (request_id )
8588 if request_to_remove :
86- self ._requests . remove ( request_to_remove )
89+ del self ._requests [ request_to_remove . id ]
8790 else :
8891 raise ValueError (f"Request ID { request_id } not found in requests." )
8992
@@ -98,7 +101,7 @@ def finalize(self):
98101 Finalizes the batch request content.
99102 """
100103 self .is_finalized = True
101- return self ._requests
104+ return list ( self ._requests . values ())
102105
103106 def _request_by_id (self , request_id : str ) -> Optional [BatchRequestItem ]:
104107 """
@@ -110,10 +113,7 @@ def _request_by_id(self, request_id: str) -> Optional[BatchRequestItem]:
110113 Returns:
111114 The request with the given ID, or None if not found.
112115 """
113- for req in self .requests :
114- if req .id == request_id :
115- return req
116- return None
116+ return self ._requests .get (request_id )
117117
118118 @staticmethod
119119 def create_from_discriminator_value (
0 commit comments