importargparsefromoffice365.sharepoint.client_contextimportClientContextfromtests.settingsimportcert_path,cert_thumbprint,client_id,site_url,tenantdefmain():parser=argparse.ArgumentParser(description="Search for people")parser.add_argument("--name",default="",help="Name filter, e.g. 'Smith'")args=parser.parse_args()ctx=ClientContext(site_url).with_client_certificate(tenant,client_id=client_id,thumbprint=cert_thumbprint,cert_path=cert_path)query="contentclass:SP.People"+(f" {args.name}"ifargs.nameelse"")result=ctx.search.query(query_text=query,select_properties=["AccountName","PreferredName","WorkEmail","Department","Title"],row_limit=20,).execute_query()rows=result.value.PrimaryQueryResult.RelevantResults.Table.Rowsprint(f"People ({len(rows)}):")forrowinrows:cells=row.Cellsname=cells.get("PreferredName","?")email=cells.get("WorkEmail","?")print(f" {name:30s}{email:35s}{cells.get('Department','?')}")if__name__=="__main__":main()