Source code for review_recommender.scorer

[docs]class Scorer: """ A simple scoreboard for reviewers. """ def __init__(self): self.reviewerToScore = {}
[docs] def addReviewerScore(self, reviewer, score): """ Add a score to a reviewer. Args: reviewer(string) score(float) """ if reviewer not in self.reviewerToScore: self.reviewerToScore[reviewer] = 0 self.reviewerToScore[reviewer] += score
[docs] def getSorted(self): """ Returns a dictionary sorted by decreasing order of scores. Returns: dict[string, float]: reviewer-score pairs. """ reviewer = dict(sorted(self.reviewerToScore.items(), key=lambda item: item[1], reverse=True)) return reviewer
[docs] def prettyFormat(self): """ Returns a formatted string of the scores in percentage. """ totalScore = 0 for score in self.reviewerToScore.values(): totalScore += score finalString = 'Reviewer | Score ' + '\n' finalString += '-----------------------------' + '\n' for reviewer, score in self.getSorted().items(): spaces = ' ' * (len('Reviewer ') - len(reviewer)) finalString += (reviewer + spaces + '|' + f'{score/totalScore*100: .2f} %' + '\n') return finalString