[docs]defmain_propose_data_twitter(consumer_key:str,consumer_secret:str,parallel:bool=False,n_jobs:int=-2,):"""Get data from Twitter and propose it."""print("-- Generating data proposals from Twitter sources... --")api=TwitterAPI(consumer_key,consumer_secret)ifparallel:modules_execution_results=Parallel(n_jobs=n_jobs,backend="threading")(delayed(_propose_data_country)(api,module_name,)formodule_nameinmodules_name)else:modules_execution_results=[]formodule_nameinmodules_name:modules_execution_results.append(_propose_data_country(api,module_name,))modules_failed=[m["module_name"]forminmodules_execution_resultsifm["success"]isFalse]# Retry failed moduleslogger.info(f"\n---\n\nRETRIALS ({len(modules_failed)})")modules_execution_results=[]formodule_nameinmodules_failed:modules_execution_results.append(_propose_data_country(api,module_name))modules_failed_retrial=[m["module_name"]forminmodules_execution_resultsifm["success"]isFalse]iflen(modules_failed_retrial)>0:failed_str="\n".join([f"* {m}"forminmodules_failed_retrial])print(f"\n---\n\nThe following scripts failed to run ({len(modules_failed_retrial)}):\n{failed_str}")print_eoe()