@@ -273,30 +273,13 @@ def main(generate_input, generate_output):
273
273
result = {}
274
274
python_tag = data .get ("python_tag" )
275
275
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" )
296
279
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 )
300
283
del_outdated_files (relative_path_readme )
301
284
config = generate (
302
285
CONFIG_FILE ,
@@ -307,14 +290,14 @@ def main(generate_input, generate_output):
307
290
force_generation = True ,
308
291
python_tag = python_tag ,
309
292
)
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 ))
312
295
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" ])
315
298
package_names = get_package_names (sdk_folder )
316
299
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 )} " )
318
301
for hint_message in [
319
302
"======================================= Whant Can I do ========================================================================" ,
320
303
"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):
324
307
]:
325
308
_LOGGER .error (hint_message )
326
309
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 )} )]" )
328
311
329
312
# folder_name: "sdk/containerservice"; package_name: "azure-mgmt-containerservice"
313
+ spec_word = "readmeMd" if "readme.md" in readme_or_tsp else "typespecProject"
330
314
for folder_name , package_name in package_names :
331
315
if package_name in package_total :
332
316
continue
@@ -337,14 +321,14 @@ def main(generate_input, generate_output):
337
321
package_entry = {}
338
322
package_entry ["packageName" ] = package_name
339
323
package_entry ["path" ] = [folder_name ]
340
- package_entry [spec_word ] = [input_readme ]
324
+ package_entry [spec_word ] = [readme_or_tsp ]
341
325
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 ))
343
327
package_entry ["isMultiapi" ] = is_multiapi_package (readme_python_content )
344
328
result [package_name ] = package_entry
345
329
else :
346
330
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 )
348
332
349
333
# Generate some necessary file for new service
350
334
init_new_service (package_name , folder_name )
@@ -359,7 +343,7 @@ def main(generate_input, generate_output):
359
343
folder_name ,
360
344
package_name ,
361
345
spec_folder ,
362
- input_readme ,
346
+ readme_or_tsp ,
363
347
)
364
348
except Exception as e :
365
349
_LOGGER .error (f"fail to update meta: { str (e )} " )
@@ -386,7 +370,10 @@ def main(generate_input, generate_output):
386
370
# remove duplicates
387
371
for value in result .values ():
388
372
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" ]))
390
377
391
378
with open (generate_output , "w" ) as writer :
392
379
json .dump (result , writer )
0 commit comments