def _get_ready_single_checkpoints(
        checkpointer_checkpoints: dict[str, Timestamp],
        remote_checkpoints: list[str],
    ) -> dict[str, Timestamp]:
        """Identify checkpoints ready to be evaled based on remote checkpoints.

        This is much simpler than the sharded case, because there is only one file

        Args:
            checkpointer_checkpoints: All checkpoints from the checkpointer state
            remote_checkpoints: List of remote checkpoints in the save folder

        Returns:
            Dict of checkpoints that are complete and ready to be evaled
        """
        unique_remote_checkpoints = set(remote_checkpoints)

        checkpoints_to_eval = {}
        for checkpoint, checkpoint_ts in checkpointer_checkpoints.items():
            # This assumes checkpoint_ts_path is unique per checkpoint,
            # eg the default {save_folder}/ep0-ba1-rank0.pt
            checkpoint_ts_path = Path(checkpoint).parts[-1]

            if checkpoint not in unique_remote_checkpoints:
                log.debug(
                    f'Checkpoint {checkpoint} not fully uploaded, skipping',
                )
                continue

            checkpoints_to_eval[checkpoint_ts_path] = checkpoint_ts
        return checkpoints_to_eval
Identify checkpoints ready to be evaled based on remote checkpoints.

        This is much simpler than the sharded case, because there is only one file

        Args:
            checkpointer_checkpoints: All checkpoints from the checkpointer state
            remote_checkpoints: List of remote checkpoints in the save folder

        Returns:
            Dict of checkpoints that are complete and ready to be evaled
        
llmfoundry/callbacks/async_eval_callback.py