importargparseimportsysfromoffice365.sharepoint.client_contextimportClientContextfromoffice365.sharepoint.sitescripts.utilityimportSiteScriptUtilityfromtests.settingsimportclient_id,password,site_url,tenant,usernamedefmain():parser=argparse.ArgumentParser(description="Apply a site design to a site")parser.add_argument("--site-url",default=site_url,help="target site URL")parser.add_argument("--design-id",default=None,help="site design id (default: first design)")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()ifnotdesigns.value:sys.exit("No site designs found.")ifargs.design_id:target=next((dfordindesigns.valueifstr(d.Id)==args.design_id),designs.value[0])else:target=designs.value[0]asserttarget.IdisnotNonetask=SiteScriptUtility.add_site_design_task(ctx,args.site_url,str(target.Id)).execute_query()print(f"Site design '{target.Title}' applied (task ID: {task.value.ID})")if__name__=="__main__":main()