@@ -421,53 +421,52 @@ def parse_trajectory(self, player_name: str, round_num: int) -> TrajectoryInfo |
421421 if not player_dir .exists ():
422422 return None
423423
424- # Try both .json and .log extensions
425- for ext in [".json" , ".log" ]:
426- traj_file = player_dir / f"{ player_name } _r{ round_num } .traj{ ext } "
427- if traj_file .exists ():
424+ traj_file = player_dir / f"{ player_name } _r{ round_num } .traj.json"
425+ if not traj_file .exists ():
426+ return None
427+ try :
428+ data = json .loads (traj_file .read_text ())
429+ info = data .get ("info" , {})
430+ model_stats = info .get ("model_stats" , {})
431+
432+ # Get diff data from changes file
433+ diff = incremental_diff = modified_files = None
434+ changes_file = player_dir / f"changes_r{ round_num } .json"
435+ if changes_file .exists ():
428436 try :
429- data = json .loads (traj_file .read_text ())
430- info = data .get ("info" , {})
431- model_stats = info .get ("model_stats" , {})
432-
433- # Get diff data from changes file
434- diff = incremental_diff = modified_files = None
435- changes_file = player_dir / f"changes_r{ round_num } .json"
436- if changes_file .exists ():
437- try :
438- changes_data = json .loads (changes_file .read_text ())
439- diff = changes_data .get ("full_diff" , "" )
440- incremental_diff = changes_data .get ("incremental_diff" , "" )
441- modified_files = changes_data .get ("modified_files" , {})
442- except (json .JSONDecodeError , KeyError ):
443- pass
444-
445- # Filter and split diffs by files
446- filtered_diff = filter_git_diff (diff ) if diff else ""
447- filtered_incremental_diff = filter_git_diff (incremental_diff ) if incremental_diff else ""
448- diff_by_files = split_git_diff_by_files (filtered_diff ) if filtered_diff else {}
449- incremental_diff_by_files = (
450- split_git_diff_by_files (filtered_incremental_diff ) if filtered_incremental_diff else {}
451- )
452-
453- return TrajectoryInfo (
454- player_id = player_name ,
455- round_num = round_num ,
456- api_calls = model_stats .get ("api_calls" , 0 ),
457- cost = model_stats .get ("instance_cost" , 0.0 ),
458- exit_status = info .get ("exit_status" ),
459- submission = info .get ("submission" ),
460- memory = info .get ("memory" ),
461- messages = data .get ("messages" , []),
462- diff = diff ,
463- incremental_diff = incremental_diff ,
464- modified_files = modified_files ,
465- trajectory_file_path = str (traj_file ),
466- diff_by_files = diff_by_files ,
467- incremental_diff_by_files = incremental_diff_by_files ,
468- )
469- except (json .JSONDecodeError , KeyError ) as e :
470- logger .error (f"Error parsing { traj_file } : { e } " , exc_info = True )
437+ changes_data = json .loads (changes_file .read_text ())
438+ diff = changes_data .get ("full_diff" , "" )
439+ incremental_diff = changes_data .get ("incremental_diff" , "" )
440+ modified_files = changes_data .get ("modified_files" , {})
441+ except (json .JSONDecodeError , KeyError ):
442+ pass
443+
444+ # Filter and split diffs by files
445+ filtered_diff = filter_git_diff (diff ) if diff else ""
446+ filtered_incremental_diff = filter_git_diff (incremental_diff ) if incremental_diff else ""
447+ diff_by_files = split_git_diff_by_files (filtered_diff ) if filtered_diff else {}
448+ incremental_diff_by_files = (
449+ split_git_diff_by_files (filtered_incremental_diff ) if filtered_incremental_diff else {}
450+ )
451+
452+ return TrajectoryInfo (
453+ player_id = player_name ,
454+ round_num = round_num ,
455+ api_calls = model_stats .get ("api_calls" , 0 ),
456+ cost = model_stats .get ("instance_cost" , 0.0 ),
457+ exit_status = info .get ("exit_status" ),
458+ submission = info .get ("submission" ),
459+ memory = info .get ("memory" ),
460+ messages = data .get ("messages" , []),
461+ diff = diff ,
462+ incremental_diff = incremental_diff ,
463+ modified_files = modified_files ,
464+ trajectory_file_path = str (traj_file ),
465+ diff_by_files = diff_by_files ,
466+ incremental_diff_by_files = incremental_diff_by_files ,
467+ )
468+ except (json .JSONDecodeError , KeyError ) as e :
469+ logger .error (f"Error parsing { traj_file } : { e } " , exc_info = True )
471470
472471 return None
473472
0 commit comments