From 55e966eb554143cee7fe81ee574fca22a6bb25ff Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 6 Oct 2014 16:05:57 +0200 Subject: * output sanitation if rankings are not available --- elo.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/elo.py b/elo.py index 426efab..8729652 100755 --- a/elo.py +++ b/elo.py @@ -71,19 +71,20 @@ if date is None: date = datetime.date.today() date += one_day -print 'Rankings for %s' % date - one_year = dateutil.relativedelta.relativedelta(years=1) - rankings = session.query(Ranking).filter(Ranking.rank_date > (date - one_year)).filter(Ranking.rank_date <= date).all() -drivers = {} -for ranking in rankings: - if not drivers.has_key(ranking.driver): - drivers[ranking.driver] = ranking.driver.get_ranking(date) +if len(rankings): + print 'Rankings for %s' % date -for rank in sorted(drivers.values(), key=lambda rank: rank.ranking, reverse=True): - print rank + drivers = {} + for ranking in rankings: + if not drivers.has_key(ranking.driver): + drivers[ranking.driver] = ranking.driver.get_ranking(date) -session.commit() + for rank in sorted(drivers.values(), key=lambda rank: rank.ranking, reverse=True): + print rank +else: + print 'No rankings for %s' % date +session.commit() -- cgit v1.2.3 From 11e3b2851216a3fa24efd52e094d83c608766444 Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 6 Oct 2014 16:08:48 +0200 Subject: * removed commented out debug info --- f1elo/elo.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/f1elo/elo.py b/f1elo/elo.py index 3ddc6e4..dcf24dd 100644 --- a/f1elo/elo.py +++ b/f1elo/elo.py @@ -32,11 +32,6 @@ class Elo: entries_to_compare.append(e) for c in combinations(entries_to_compare, 2): score = self.get_score(rankings[c[0]] - rankings[c[1]], self.get_outcome(c), self.get_importance(race, [rankings[c[0]], rankings[c[1]]])) - #print c[0], '@', rankings[c[0]] - #print 'against' - #print c[1], '@', rankings[c[1]] - #print 'score: ', score - #print new_rankings[c[0]] += score new_rankings[c[1]] -= score return new_rankings @@ -49,7 +44,7 @@ class Elo: if min_rank <= 2400: return base_importance * 0.75 return base_importance / 2 - + def get_outcome(self, entries): if entries[0].result_group < entries[1].result_group: @@ -57,6 +52,6 @@ class Elo: elif entries[0].result_group > entries[1].result_group: return 0 return 0.5 - + def get_score(self, difference, outcome, importance): return importance * (outcome - 1 / (1 + (10 ** (-difference / self.config['disparity'])))) -- cgit v1.2.3