importargparsefromoffice365.sharepoint.client_contextimportClientContextfromtests.settingsimportcert_path,cert_thumbprint,client_id,site_url,tenantSUMMARY_KEYS=["PreferredName","Department","JobTitle","Office","Manager","AboutMe","PictureURL"]ABOUT_ME_LEN=120defmain():parser=argparse.ArgumentParser(description="Read a user's profile properties")parser.add_argument("--user",default=None,help="account name to read (default: current user)")args=parser.parse_args()ctx=ClientContext(site_url).with_client_certificate(tenant,client_id=client_id,thumbprint=cert_thumbprint,cert_path=cert_path)ifargs.user:target=ctx.web.ensure_user(args.user).execute_query()asserttarget.login_nameisnotNoneprofile=ctx.people_manager.get_properties_for(target.login_name).execute_query()else:me=ctx.web.current_userprofile=ctx.people_manager.get_properties_for(me).execute_query()props=profile.user_profile_propertiesor{}forkeyinSUMMARY_KEYS:value=props.get(key,"")ifkey=="AboutMe"andisinstance(value,str)andlen(value)>ABOUT_ME_LEN:value=value[:ABOUT_ME_LEN]+"..."print(f" {key:14s}: {valueor'?'}")if__name__=="__main__":main()