importargparseimportosimporttempfilefromoffice365.sharepoint.client_contextimportClientContextfromtests.settingsimportclient_id,password,team_site_url,tenant,usernamedefdownload_files(source_folder,download_path:str)->None:fromtqdmimporttqdmfiles=source_folder.files.get().execute_query()forfileintqdm(files,desc="Downloading"):file_name=file.nameorfile.properties.get("LeafName")or"download.bin"local_file_path=os.path.join(download_path,str(file_name))withopen(local_file_path,"wb")aslocal_file:file.download(local_file).execute_query()print(f"\nDownloaded {len(files)} files to {download_path}")defmain():parser=argparse.ArgumentParser(description="Download all files from a library folder")parser.add_argument("--list-title",default="Documents",help="document library title")args=parser.parse_args()ctx=ClientContext(team_site_url).with_username_and_password(tenant=tenant,client_id=client_id,username=username,password=password)from_folder=ctx.web.lists.get_by_title(args.list_title).root_folderdownload_files(from_folder,tempfile.mkdtemp())if__name__=="__main__":main()