@@ -50,7 +50,7 @@ def add_request(self, request: BatchRequestItem) -> None:
5050 if hasattr (request , 'depends_on' ) and request .depends_on :
5151 for dependent_id in request .depends_on :
5252 if dependent_id not in [req .id for req in self .requests ]:
53- dependent_request = self .requests . request (dependent_id )
53+ dependent_request = self ._request_by_id (dependent_id )
5454 if dependent_request :
5555 self ._requests .append (dependent_request )
5656 self ._requests .append (request )
@@ -72,12 +72,20 @@ def add_urllib_request(self, request) -> None:
7272 def remove (self , request_id : str ) -> None :
7373 """
7474 Removes a request from the batch request content.
75+ Also removes the request from the depends_on list of
76+ other requests.
7577 """
78+ request_to_remove = None
7679 for request in self .requests :
7780 if request .id == request_id :
78- self .requests .remove (request )
79- return
80- raise ValueError (f"Request ID { request_id } not found in requests." )
81+ request_to_remove = request
82+ if hasattr (request , 'depends_on' ) and request .depends_on :
83+ if request_id in request .depends_on :
84+ request .depends_on .remove (request_id )
85+ if request_to_remove :
86+ self ._requests .remove (request_to_remove )
87+ else :
88+ raise ValueError (f"Request ID { request_id } not found in requests." )
8189
8290 def remove_batch_request_item (self , item : BatchRequestItem ) -> None :
8391 """
@@ -92,6 +100,21 @@ def finalize(self):
92100 self .is_finalized = True
93101 return self ._requests
94102
103+ def _request_by_id (self , request_id : str ) -> Optional [BatchRequestItem ]:
104+ """
105+ Finds a request by its ID.
106+
107+ Args:
108+ request_id (str): The ID of the request to find.
109+
110+ Returns:
111+ The request with the given ID, or None if not found.
112+ """
113+ for req in self .requests :
114+ if req .id == request_id :
115+ return req
116+ return None
117+
95118 @staticmethod
96119 def create_from_discriminator_value (
97120 parse_node : Optional [ParseNode ] = None
0 commit comments