summaryrefslogtreecommitdiff
path: root/jfr_playoff/tournamentinfo/jfrdb.py
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2019-12-30 12:49:54 +0100
committeremkael <emkael@tlen.pl>2019-12-30 12:49:54 +0100
commit7a598f65372b1b694d222946fd6269033bde0e54 (patch)
treee33fb74aad63756f0b3c94f12e29aff6c97064ed /jfr_playoff/tournamentinfo/jfrdb.py
parentf77bac9b5406c6bf6b1c819f155164568ef4af36 (diff)
New package structure for result info classes
Diffstat (limited to 'jfr_playoff/tournamentinfo/jfrdb.py')
-rw-r--r--jfr_playoff/tournamentinfo/jfrdb.py60
1 files changed, 0 insertions, 60 deletions
diff --git a/jfr_playoff/tournamentinfo/jfrdb.py b/jfr_playoff/tournamentinfo/jfrdb.py
deleted file mode 100644
index 0f39b47..0000000
--- a/jfr_playoff/tournamentinfo/jfrdb.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import jfr_playoff.sql as p_sql
-
-from jfr_playoff.logger import PlayoffLogger
-from jfr_playoff.tournamentinfo import TournamentInfoClient
-
-SWISS_TIE_WARNING = 'tie detected in swiss %s.' + \
- ' Make sure to resolve the tie by arranging teams' + \
- ' in configuration file.'
-
-
-class JFRDbTournamentInfo(TournamentInfoClient):
- def get_exceptions(self, method):
- return (IOError, TypeError, IndexError, KeyError)
-
- def get_results_link(self, suffix='leaderb.html'):
- row = self.database.fetch(
- self.settings['database'], p_sql.PREFIX, ())
- if row is not None:
- if len(row) > 0:
- link = row[0] + suffix
- PlayoffLogger.get('tournament.jfrdb').info(
- 'generating tournament-specific link from DB %s prefix: %s -> %s',
- self.settings['database'], suffix, link)
- return link
- raise ValueError('unable to fetch db link')
-
- def is_finished(self):
- finished = self.database.fetch(
- self.settings['database'], p_sql.SWISS_ENDED, {})
- PlayoffLogger.get('tournament.jfrdb').info(
- 'fetching tournament finished status from DB %s: %s',
- self.settings['database'], finished)
- return (len(finished) > 0) and (finished[0] > 0)
-
- def get_tournament_results(self):
- if 'ties' not in self.settings:
- self.settings['ties'] = []
- swiss_teams = self.database.fetch_all(
- self.settings['database'], p_sql.SWISS_RESULTS, {})
- swiss_results = sorted(
- swiss_teams,
- key=lambda t: self.settings['ties'].index(t[0]) \
- if t[0] in self.settings['ties'] else -1)
- swiss_results = sorted(
- swiss_results, key=lambda t: t[1], reverse=True)
- swiss_results = sorted(swiss_results, key=lambda team: team[2])
- PlayoffLogger.get('tournament.jfrdb').info(
- 'fetched tournament results from database %s: %s',
- self.settings['database'], swiss_results)
- prev_result = None
- for team in swiss_results:
- if prev_result == team[1]:
- PlayoffLogger.get('tournament.jfrdb').warning(
- SWISS_TIE_WARNING, self.settings['database'])
- prev_result = team[1]
- db_teams = [[team[0], team[3], team[4]] for team in swiss_results]
- PlayoffLogger.get('tournament.jfrdb').info(
- 'fetched team list from database %s: %s',
- self.settings['database'], db_teams)
- return db_teams