@@ -93,53 +93,39 @@ def post_request(self, endpoint_url, headers, payload, run_state: Optional[RunSt
9393 f"Connection error: Unable to reach the Codeplain API at { self .api_url } . Please try again or contact support."
9494 )
9595
96- def get_plain_source_tree (self , plain_source , loaded_templates , run_state : RunState ):
97- """
98- Builds plain source tree from the given plain text source in Markdown format.
99-
100- Args:
101- plain_source (str): A string containing the plain text source to be parsed.
102- loaded_templates (dict): A dictionary containing the loaded templates.
103-
104- Returns:
105- dict: A plain source tree.
106-
107- Raises:
108- Exception: If parsing of plain_source fails.
109- """
110- endpoint_url = f"{ self .api_url } /plain_source_tree"
111- headers = {"X-API-Key" : self .api_key , "Content-Type" : "application/json" }
112-
113- payload = {"plain_source" : plain_source , "loaded_templates" : loaded_templates }
114-
115- return self .post_request (endpoint_url , headers , payload , run_state )
116-
11796 def render_functional_requirement (
11897 self ,
119- frid ,
120- plain_source_tree ,
121- linked_resources ,
122- existing_files_content ,
98+ frid : str ,
99+ plain_source_tree : dict ,
100+ linked_resources : dict ,
101+ existing_files_content : dict ,
102+ module_name : str ,
103+ required_modules : dict ,
123104 run_state : RunState ,
124- ):
105+ ) -> dict [ str , str ] :
125106 """
126107 Renders the content of a functional requirement based on the provided ID,
127- plain source tree , and existing files' content.
108+ corresponding sections from a Plain document , and existing files' content.
128109
129110 Args:
130111 frid (str): The unique identifier for the functional requirement to be rendered.
131112 plain_source_tree (dict): A dictionary containing the plain source tree.
132- linked_resources (dict): A dictionary where the keys represent resource names
133- and the values are the content of those resources.
134- existing_files_content (dict): A dictionary where the keys represent code base
135- filenames and the values are the content of those files.
136-
113+ linked_resources (dict): A dictionary where the keys represent filenames of linked
114+ resources and the values are dictionaries containing
115+ the content of the linked resources and the sections
116+ they are linked to.
117+ existing_files_content (dict): A dictionary where the keys represent filenames
118+ and the values are the content of those files.
119+ module_name (str): The name of the module to render the functional requirement for.
120+ required_modules (dict): A dictionary where the keys represent module names
121+ and the values are lists of functionalities implemented in those modules.
122+ run_state (RunState): The current state of the rendering process.
137123 Returns:
138- str: A string containing the rendered functional requirement, formatted
139- appropriately based on the inputs .
124+ dict[ str, str] : A dictionary where the keys are filenames and the values
125+ are the rendered code for those files .
140126
141127 Raises:
142- ValueError: If the frid is invalid or the necessary plain source tree is not valid .
128+ ValueError: If the frid is invalid or the necessary sections cannot be found .
143129 """
144130 endpoint_url = f"{ self .api_url } /render_functional_requirement"
145131 headers = {"X-API-Key" : self .api_key , "Content-Type" : "application/json" }
@@ -149,6 +135,8 @@ def render_functional_requirement(
149135 "plain_source_tree" : plain_source_tree ,
150136 "linked_resources" : linked_resources ,
151137 "existing_files_content" : existing_files_content ,
138+ "module_name" : module_name ,
139+ "required_modules" : required_modules ,
152140 }
153141
154142 return self .post_request (endpoint_url , headers , payload , run_state )
@@ -159,6 +147,8 @@ def fix_unittests_issue(
159147 plain_source_tree ,
160148 linked_resources ,
161149 existing_files_content ,
150+ module_name : str ,
151+ required_modules ,
162152 unittests_issue ,
163153 run_state : RunState ,
164154 ):
@@ -170,6 +160,8 @@ def fix_unittests_issue(
170160 "plain_source_tree" : plain_source_tree ,
171161 "linked_resources" : linked_resources ,
172162 "existing_files_content" : existing_files_content ,
163+ "module_name" : module_name ,
164+ "required_modules" : required_modules ,
173165 "unittests_issue" : unittests_issue ,
174166 "unittest_batch_id" : run_state .unittest_batch_id ,
175167 }
@@ -195,6 +187,8 @@ def render_conformance_tests(
195187 plain_source_tree ,
196188 linked_resources ,
197189 existing_files_content ,
190+ module_name : str ,
191+ required_modules ,
198192 conformance_tests_folder_name ,
199193 conformance_tests_json ,
200194 all_acceptance_tests ,
@@ -209,6 +203,8 @@ def render_conformance_tests(
209203 "plain_source_tree" : plain_source_tree ,
210204 "linked_resources" : linked_resources ,
211205 "existing_files_content" : existing_files_content ,
206+ "module_name" : module_name ,
207+ "required_modules" : required_modules ,
212208 "conformance_tests_folder_name" : conformance_tests_folder_name ,
213209 "conformance_tests_json" : conformance_tests_json ,
214210 "all_acceptance_tests" : all_acceptance_tests ,
@@ -242,6 +238,9 @@ def fix_conformance_tests_issue(
242238 plain_source_tree ,
243239 linked_resources ,
244240 existing_files_content ,
241+ module_name : str ,
242+ conformance_tests_module_name : str ,
243+ required_modules ,
245244 code_diff ,
246245 conformance_tests_files ,
247246 acceptance_tests ,
@@ -260,6 +259,9 @@ def fix_conformance_tests_issue(
260259 "plain_source_tree" : plain_source_tree ,
261260 "linked_resources" : linked_resources ,
262261 "existing_files_content" : existing_files_content ,
262+ "module_name" : module_name ,
263+ "conformance_tests_module_name" : conformance_tests_module_name ,
264+ "required_modules" : required_modules ,
263265 "code_diff" : code_diff ,
264266 "conformance_tests_files" : conformance_tests_files ,
265267 "conformance_tests_issue" : conformance_tests_issue ,
@@ -280,6 +282,8 @@ def render_acceptance_tests(
280282 linked_resources ,
281283 existing_files_content ,
282284 conformance_tests_files ,
285+ module_name : str ,
286+ required_modules ,
283287 acceptance_test ,
284288 run_state : RunState ,
285289 ):
@@ -294,6 +298,8 @@ def render_acceptance_tests(
294298 existing_files_content (dict): A dictionary where the keys represent code base
295299 filenames and the values are the content of those files.
296300 conformance_tests_files (dict): A dictionary containing conformance test files.
301+ required_modules (dict): A dictionary where the keys represent module names
302+ and the values are lists of functionalities implemented in those modules.
297303 acceptance_test (dict): A dictionary containing acceptance test information.
298304
299305 Returns:
@@ -311,6 +317,8 @@ def render_acceptance_tests(
311317 "linked_resources" : linked_resources ,
312318 "existing_files_content" : existing_files_content ,
313319 "conformance_tests_files" : conformance_tests_files ,
320+ "module_name" : module_name ,
321+ "required_modules" : required_modules ,
314322 "acceptance_test" : acceptance_test ,
315323 }
316324
@@ -322,6 +330,8 @@ def analyze_rendering(
322330 plain_source_tree ,
323331 linked_resources ,
324332 existing_files_content ,
333+ module_name : str ,
334+ required_modules ,
325335 implementation_code_diff ,
326336 fixed_implementation_code_diff ,
327337 run_state : RunState ,
@@ -334,6 +344,8 @@ def analyze_rendering(
334344 "plain_source_tree" : plain_source_tree ,
335345 "linked_resources" : linked_resources ,
336346 "existing_files_content" : existing_files_content ,
347+ "module_name" : module_name ,
348+ "required_modules" : required_modules ,
337349 "implementation_code_diff" : implementation_code_diff ,
338350 "fixed_implementation_code_diff" : fixed_implementation_code_diff ,
339351 }
@@ -350,12 +362,24 @@ def finish_functional_requirement(self, frid, run_state: RunState):
350362
351363 return self .post_request (endpoint_url , headers , payload , run_state )
352364
365+ def fail_functional_requirement (self , frid , run_state : RunState ):
366+ endpoint_url = f"{ self .api_url } /fail_functional_requirement"
367+ headers = {"X-API-Key" : self .api_key , "Content-Type" : "application/json" }
368+
369+ payload = {
370+ "frid" : frid ,
371+ }
372+
373+ return self .post_request (endpoint_url , headers , payload , run_state )
374+
353375 def summarize_finished_conformance_tests (
354376 self ,
355377 frid ,
356378 plain_source_tree ,
357379 linked_resources ,
358380 conformance_test_files_content ,
381+ module_name : str ,
382+ required_modules ,
359383 run_state : RunState ,
360384 ):
361385 endpoint_url = f"{ self .api_url } /summarize_finished_conformance_tests"
@@ -365,6 +389,8 @@ def summarize_finished_conformance_tests(
365389 "plain_source_tree" : plain_source_tree ,
366390 "linked_resources" : linked_resources ,
367391 "conformance_test_files_content" : conformance_test_files_content ,
392+ "module_name" : module_name ,
393+ "required_modules" : required_modules ,
368394 }
369395
370396 return self .post_request (endpoint_url , headers , payload , run_state )
0 commit comments