importargparsefromoffice365.sharepoint.client_contextimportClientContextfromtests.settingsimportcert_path,cert_thumbprint,client_id,site_url,tenantdefmain():parser=argparse.ArgumentParser(description="List role definitions on a site")parser.add_argument("--order",action="store_true",help="sort by the built-in Order")args=parser.parse_args()ctx=ClientContext(site_url).with_client_certificate(tenant,client_id=client_id,thumbprint=cert_thumbprint,cert_path=cert_path)roles=ctx.web.role_definitions.get().execute_query()ifargs.order:roles=sorted(roles,key=lambdar:r.properties.get("Order",0))forroleinroles:print(f" {role.name} (ID: {role.id}, Order: {role.properties.get('Order')})")print(f"Total: {len(roles)} role definitions")if__name__=="__main__":main()