""" Statistics computation utilities """ def compute_progress(scored_count, total_count): """Calcule le pourcentage de progression""" if total_count == 0: return 0.0 return scored_count / total_count def compute_score_distribution(feedback_scores): """ Calcule la distribution des scores Args: feedback_scores: Dict {idx: score} Returns: Dict {score: count} pour scores 0-5 """ scores_list = list(feedback_scores.values()) return {i: scores_list.count(i) for i in range(6)} def compute_average_score(feedback_scores): """Calcule le score moyen""" if not feedback_scores: return 0.0 scores_list = list(feedback_scores.values()) return sum(scores_list) / len(scores_list) def compute_most_common_score(feedback_scores): """ Trouve le score le plus fréquent Returns: Tuple (score, count) """ distribution = compute_score_distribution(feedback_scores) return max(distribution.items(), key=lambda x: x[1]) def find_unscored_indices(items_with_positive, feedback_scores): """ Trouve les indices des items non encore scorés Returns: Liste d'indices """ return [idx for idx, _ in items_with_positive if idx not in feedback_scores]