importargparseimportsysfromoffice365.sharepoint.client_contextimportClientContextfromoffice365.sharepoint.sitedesigns.metadataimportSiteDesignMetadatafromoffice365.sharepoint.sitescripts.utilityimportSiteScriptUtilityfromtests.settingsimportclient_id,password,site_url,tenant,usernamedefmain():parser=argparse.ArgumentParser(description="Update a site design")parser.add_argument("--design-id",required=True,help="site design id")parser.add_argument("--description-suffix",default=" (updated)",help="text appended to the description")args=parser.parse_args()ctx=ClientContext(site_url).with_username_and_password(tenant=tenant,client_id=client_id,username=username,password=password)designs=SiteScriptUtility.get_site_designs(ctx).execute_query()target=next((dfordindesigns.valueifstr(d.Id)==args.design_id),None)iftargetisNone:sys.exit(f"Site design not found: {args.design_id}")update_info=SiteDesignMetadata()update_info.Id=target.Idupdate_info.Title=target.Titleupdate_info.Description=f"{target.Description}{args.description_suffix}"update_info.WebTemplate=target.WebTemplateupdated=SiteScriptUtility.update_site_design(ctx,update_info).execute_query()print(f"Updated: {updated.value.Title} — {updated.value.Description}")if__name__=="__main__":main()