Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	handle subdirectory in requests queue
Browse files- src/populate.py +13 -27
    	
        src/populate.py
    CHANGED
    
    | @@ -45,19 +45,23 @@ def get_leaderboard_df(results_path: str, requests_path: str, cols: list, benchm | |
| 45 | 
             
                df = df[has_no_nan_values(df, benchmark_cols)]
         | 
| 46 | 
             
                return raw_data, df
         | 
| 47 |  | 
| 48 | 
            -
             | 
| 49 | 
             
            def get_evaluation_queue_df(save_path: str, cols: list) -> list[pd.DataFrame]:
         | 
| 50 | 
             
                """Creates the different dataframes for the evaluation queues requestes"""
         | 
| 51 | 
             
                entries = [entry for entry in os.listdir(save_path) if not entry.startswith(".")]
         | 
| 52 | 
             
                all_evals = []
         | 
|  | |
| 53 | 
             
                for entry in entries:
         | 
| 54 | 
            -
                     | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
| 57 | 
             
                            data = json.load(fp)
         | 
|  | |
| 58 | 
             
                        data[EvalQueueColumn.model.name] = make_clickable_model(data["model_name"]) if not data["private"] else data["model_name"]
         | 
| 59 | 
             
                        data[EvalQueueColumn.revision.name] = data.get("revision", "main")
         | 
| 60 | 
            -
                        # changes to be made here
         | 
| 61 | 
             
                        data[EvalQueueColumn.closed_ended_status.name] = data["status"]["closed-ended"]
         | 
| 62 | 
             
                        data[EvalQueueColumn.open_ended_status.name] = data["status"]["open-ended"]
         | 
| 63 | 
             
                        data[EvalQueueColumn.med_safety_status.name] = data["status"]["med-safety"]
         | 
| @@ -66,42 +70,24 @@ def get_evaluation_queue_df(save_path: str, cols: list) -> list[pd.DataFrame]: | |
| 66 | 
             
                        if PRIVATE_REPO:
         | 
| 67 | 
             
                            data[EvalQueueColumn.closed_ended_arabic_status.name] = data["status"]["closed-ended-arabic"]
         | 
| 68 | 
             
                        all_evals.append(data)
         | 
| 69 | 
            -
             | 
| 70 | 
            -
                        # this is a folder
         | 
| 71 | 
            -
                        sub_entries = [e for e in os.listdir(f"{save_path}/{entry}") if not e.startswith(".")]
         | 
| 72 | 
            -
                        for sub_entry in sub_entries:
         | 
| 73 | 
            -
                            file_path = os.path.join(save_path, entry, sub_entry)
         | 
| 74 | 
            -
                            with open(file_path) as fp:
         | 
| 75 | 
            -
                                data = json.load(fp)
         | 
| 76 | 
            -
                            # print(data)
         | 
| 77 | 
            -
                            data[EvalQueueColumn.model.name] = make_clickable_model(data["model_name"]) if not data["private"] else data["model_name"]
         | 
| 78 | 
            -
                            data[EvalQueueColumn.revision.name] = data.get("revision", "main")
         | 
| 79 | 
            -
                            data[EvalQueueColumn.closed_ended_status.name] = data["status"]["closed-ended"]
         | 
| 80 | 
            -
                            data[EvalQueueColumn.open_ended_status.name] = data["status"]["open-ended"]
         | 
| 81 | 
            -
                            data[EvalQueueColumn.med_safety_status.name] = data["status"]["med-safety"]
         | 
| 82 | 
            -
                            data[EvalQueueColumn.medical_summarization_status.name] = data["status"]["medical-summarization"]
         | 
| 83 | 
            -
                            data[EvalQueueColumn.note_generation_status.name] = data["status"]["note-generation"]
         | 
| 84 | 
            -
                            if PRIVATE_REPO:
         | 
| 85 | 
            -
                                data[EvalQueueColumn.closed_ended_arabic_status.name] = data["status"]["closed-ended-arabic"]
         | 
| 86 | 
            -
                            all_evals.append(data)
         | 
| 87 | 
            -
                # breakpoint()
         | 
| 88 | 
             
                pending_list = []
         | 
| 89 | 
             
                running_list = []
         | 
| 90 | 
             
                finished_list = []
         | 
| 91 | 
             
                for run in all_evals:
         | 
| 92 | 
            -
                    # changes to be made here
         | 
| 93 | 
             
                    status_list = [run["status"]["closed-ended"], run["status"]["open-ended"], run["status"]["med-safety"], run["status"]["medical-summarization"], run["status"]["note-generation"]]
         | 
| 94 | 
             
                    if PRIVATE_REPO:
         | 
| 95 | 
             
                        status_list.append(run["status"]["closed-ended-arabic"])
         | 
| 96 | 
            -
                     | 
| 97 | 
             
                    if "RUNNING" in status_list:
         | 
| 98 | 
             
                        running_list.append(run)
         | 
| 99 | 
             
                    elif "PENDING" in status_list or "RERUN" in status_list:
         | 
| 100 | 
             
                        pending_list.append(run)
         | 
| 101 | 
             
                    else:
         | 
| 102 | 
             
                        finished_list.append(run)
         | 
| 103 | 
            -
             | 
| 104 | 
             
                df_pending = pd.DataFrame.from_records(pending_list, columns=cols)
         | 
| 105 | 
             
                df_running = pd.DataFrame.from_records(running_list, columns=cols)
         | 
| 106 | 
             
                df_finished = pd.DataFrame.from_records(finished_list, columns=cols)
         | 
|  | |
| 107 | 
             
                return df_finished[cols], df_running[cols], df_pending[cols]
         | 
|  | |
| 45 | 
             
                df = df[has_no_nan_values(df, benchmark_cols)]
         | 
| 46 | 
             
                return raw_data, df
         | 
| 47 |  | 
|  | |
| 48 | 
             
            def get_evaluation_queue_df(save_path: str, cols: list) -> list[pd.DataFrame]:
         | 
| 49 | 
             
                """Creates the different dataframes for the evaluation queues requestes"""
         | 
| 50 | 
             
                entries = [entry for entry in os.listdir(save_path) if not entry.startswith(".")]
         | 
| 51 | 
             
                all_evals = []
         | 
| 52 | 
            +
                
         | 
| 53 | 
             
                for entry in entries:
         | 
| 54 | 
            +
                    full_path = os.path.join(save_path, entry)
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                    if os.path.isdir(full_path):
         | 
| 57 | 
            +
                        continue
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    if entry.endswith(".json"):
         | 
| 60 | 
            +
                        with open(full_path) as fp:
         | 
| 61 | 
             
                            data = json.load(fp)
         | 
| 62 | 
            +
             | 
| 63 | 
             
                        data[EvalQueueColumn.model.name] = make_clickable_model(data["model_name"]) if not data["private"] else data["model_name"]
         | 
| 64 | 
             
                        data[EvalQueueColumn.revision.name] = data.get("revision", "main")
         | 
|  | |
| 65 | 
             
                        data[EvalQueueColumn.closed_ended_status.name] = data["status"]["closed-ended"]
         | 
| 66 | 
             
                        data[EvalQueueColumn.open_ended_status.name] = data["status"]["open-ended"]
         | 
| 67 | 
             
                        data[EvalQueueColumn.med_safety_status.name] = data["status"]["med-safety"]
         | 
|  | |
| 70 | 
             
                        if PRIVATE_REPO:
         | 
| 71 | 
             
                            data[EvalQueueColumn.closed_ended_arabic_status.name] = data["status"]["closed-ended-arabic"]
         | 
| 72 | 
             
                        all_evals.append(data)
         | 
| 73 | 
            +
                
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 74 | 
             
                pending_list = []
         | 
| 75 | 
             
                running_list = []
         | 
| 76 | 
             
                finished_list = []
         | 
| 77 | 
             
                for run in all_evals:
         | 
|  | |
| 78 | 
             
                    status_list = [run["status"]["closed-ended"], run["status"]["open-ended"], run["status"]["med-safety"], run["status"]["medical-summarization"], run["status"]["note-generation"]]
         | 
| 79 | 
             
                    if PRIVATE_REPO:
         | 
| 80 | 
             
                        status_list.append(run["status"]["closed-ended-arabic"])
         | 
| 81 | 
            +
                    
         | 
| 82 | 
             
                    if "RUNNING" in status_list:
         | 
| 83 | 
             
                        running_list.append(run)
         | 
| 84 | 
             
                    elif "PENDING" in status_list or "RERUN" in status_list:
         | 
| 85 | 
             
                        pending_list.append(run)
         | 
| 86 | 
             
                    else:
         | 
| 87 | 
             
                        finished_list.append(run)
         | 
| 88 | 
            +
             | 
| 89 | 
             
                df_pending = pd.DataFrame.from_records(pending_list, columns=cols)
         | 
| 90 | 
             
                df_running = pd.DataFrame.from_records(running_list, columns=cols)
         | 
| 91 | 
             
                df_finished = pd.DataFrame.from_records(finished_list, columns=cols)
         | 
| 92 | 
            +
                
         | 
| 93 | 
             
                return df_finished[cols], df_running[cols], df_pending[cols]
         | 

