feedbacks-scoring / backend /statistics.py
Matis Codjia
Scoring app
1d8c2e0
"""
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]