@@ -273,30 +273,13 @@ def main(generate_input, generate_output):
273273 result = {}
274274 python_tag = data .get ("python_tag" )
275275 package_total = set ()
276- spec_word = "readmeMd"
277- if "relatedReadmeMdFiles" in data :
278- readme_files = data ["relatedReadmeMdFiles" ]
279- elif "relatedReadmeMdFile" in data :
280- input_readme = data ["relatedReadmeMdFile" ]
281- if "specification" in spec_folder :
282- spec_folder = str (Path (spec_folder .split ("specification" )[0 ]))
283- if "specification" not in input_readme :
284- input_readme = str (Path ("specification" ) / input_readme )
285- readme_files = [input_readme ]
286- else :
287- # ["specification/confidentialledger/ConfientialLedger"]
288- if isinstance (data ["relatedTypeSpecProjectFolder" ], str ):
289- readme_files = [data ["relatedTypeSpecProjectFolder" ]]
290- else :
291- readme_files = data ["relatedTypeSpecProjectFolder" ]
292- spec_word = "typespecProject"
293-
294- for input_readme in readme_files :
295- _LOGGER .info (f"[CODEGEN]({ input_readme } )codegen begin" )
276+ readme_and_tsp = data .get ("relatedReadmeMdFiles" , []) + data .get ("relatedTypeSpecProjectFolder" , [])
277+ for readme_or_tsp in readme_and_tsp :
278+ _LOGGER .info (f"[CODEGEN]({ readme_or_tsp } )codegen begin" )
296279 try :
297- if "resource-manager" in input_readme :
298- relative_path_readme = str (Path (spec_folder , input_readme ))
299- update_metadata_for_multiapi_package (spec_folder , input_readme )
280+ if "resource-manager" in readme_or_tsp :
281+ relative_path_readme = str (Path (spec_folder , readme_or_tsp ))
282+ update_metadata_for_multiapi_package (spec_folder , readme_or_tsp )
300283 del_outdated_files (relative_path_readme )
301284 config = generate (
302285 CONFIG_FILE ,
@@ -307,14 +290,14 @@ def main(generate_input, generate_output):
307290 force_generation = True ,
308291 python_tag = python_tag ,
309292 )
310- elif "data-plane" in input_readme :
311- config = gen_dpg (input_readme , data .get ("autorestConfig" , "" ), dpg_relative_folder (spec_folder ))
293+ elif "data-plane" in readme_or_tsp :
294+ config = gen_dpg (readme_or_tsp , data .get ("autorestConfig" , "" ), dpg_relative_folder (spec_folder ))
312295 else :
313- del_outdated_generated_files (str (Path (spec_folder , input_readme )))
314- config = gen_typespec (input_readme , spec_folder , data ["headSha" ], data ["repoHttpsUrl" ])
296+ del_outdated_generated_files (str (Path (spec_folder , readme_or_tsp )))
297+ config = gen_typespec (readme_or_tsp , spec_folder , data ["headSha" ], data ["repoHttpsUrl" ])
315298 package_names = get_package_names (sdk_folder )
316299 except Exception as e :
317- _LOGGER .error (f"fail to generate sdk for { input_readme } : { str (e )} " )
300+ _LOGGER .error (f"fail to generate sdk for { readme_or_tsp } : { str (e )} " )
318301 for hint_message in [
319302 "======================================= Whant Can I do ========================================================================" ,
320303 "If you are from service team, please first check if the failure happens only to Python automation, or for all SDK automations. " ,
@@ -324,9 +307,10 @@ def main(generate_input, generate_output):
324307 ]:
325308 _LOGGER .error (hint_message )
326309 raise e
327- _LOGGER .info (f"[CODEGEN]({ input_readme } )codegen end. [(packages:{ str (package_names )} )]" )
310+ _LOGGER .info (f"[CODEGEN]({ readme_or_tsp } )codegen end. [(packages:{ str (package_names )} )]" )
328311
329312 # folder_name: "sdk/containerservice"; package_name: "azure-mgmt-containerservice"
313+ spec_word = "readmeMd" if "readme.md" in readme_or_tsp else "typespecProject"
330314 for folder_name , package_name in package_names :
331315 if package_name in package_total :
332316 continue
@@ -337,14 +321,14 @@ def main(generate_input, generate_output):
337321 package_entry = {}
338322 package_entry ["packageName" ] = package_name
339323 package_entry ["path" ] = [folder_name ]
340- package_entry [spec_word ] = [input_readme ]
324+ package_entry [spec_word ] = [readme_or_tsp ]
341325 package_entry ["tagIsStable" ] = not judge_tag_preview (sdk_code_path )
342- readme_python_content = get_readme_python_content (str (Path (spec_folder ) / input_readme ))
326+ readme_python_content = get_readme_python_content (str (Path (spec_folder ) / readme_or_tsp ))
343327 package_entry ["isMultiapi" ] = is_multiapi_package (readme_python_content )
344328 result [package_name ] = package_entry
345329 else :
346330 result [package_name ]["path" ].append (folder_name )
347- result [package_name ][spec_word ].append (input_readme )
331+ result [package_name ][spec_word ].append (readme_or_tsp )
348332
349333 # Generate some necessary file for new service
350334 init_new_service (package_name , folder_name )
@@ -359,7 +343,7 @@ def main(generate_input, generate_output):
359343 folder_name ,
360344 package_name ,
361345 spec_folder ,
362- input_readme ,
346+ readme_or_tsp ,
363347 )
364348 except Exception as e :
365349 _LOGGER .error (f"fail to update meta: { str (e )} " )
@@ -386,7 +370,10 @@ def main(generate_input, generate_output):
386370 # remove duplicates
387371 for value in result .values ():
388372 value ["path" ] = list (set (value ["path" ]))
389- value [spec_word ] = list (set (value [spec_word ]))
373+ if value .get ("typespecProject" ):
374+ value ["typespecProject" ] = list (set (value ["typespecProject" ]))
375+ if value .get ("readmeMd" ):
376+ value ["readmeMd" ] = list (set (value ["readmeMd" ]))
390377
391378 with open (generate_output , "w" ) as writer :
392379 json .dump (result , writer )
0 commit comments