importargparsefromoffice365.sharepoint.client_contextimportClientContextfromtests.settingsimportcert_path,cert_thumbprint,client_id,site_url,tenantdefmain():parser=argparse.ArgumentParser(description="List followers / people followed")parser.add_argument("--user",help="Account name of the user (default: current user)")parser.add_argument("--direction",choices=["followers","following"],default="followers",help="Direction")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()iftarget.login_nameisNone:raiseSystemExit(f"User '{args.user}' could not be resolved")account_name=target.login_nameelse:me=ctx.web.current_useraccount_name=me.login_nameifaccount_nameisNone:raiseSystemExit("Current user login name is not available")ifargs.direction=="followers":people=ctx.people_manager.get_followers_for(account_name).execute_query()else:people=ctx.people_manager.get_people_followed_by(account_name).execute_query()print(f"{'Followers'ifargs.direction=='followers'else'Following'} of {account_name} ({len(people)}):")forpersoninpeople:print(f" {person.display_name} ({person.email})")if__name__=="__main__":main()