summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2019-02-14 01:55:27 +0300
committeremkael <emkael@tlen.pl>2019-02-14 01:55:27 +0300
commit4a7b0a597f86f4b9e4453da15cf92aa7b8fe9806 (patch)
tree73ae9e62e7a254020732590be3eef1dc6baf6594
parent1c8beab6e53b341005ac0d06400d0700772b1852 (diff)
Data dump output
-rw-r--r--fetcher.py47
1 files changed, 44 insertions, 3 deletions
diff --git a/fetcher.py b/fetcher.py
index 5864a2b..565f39b 100644
--- a/fetcher.py
+++ b/fetcher.py
@@ -74,6 +74,45 @@ class Tournament(object):
def __repr__(self):
return '%s (#%d)' % (self.name, self.id)
+ def __get_filename(self, suffix):
+ return '%d-%s' % (self.id, suffix)
+
+ def write_info(self):
+ with open(self.__get_filename('info.txt'), 'wb') as info_file:
+ print >>info_file, 'Event: %s' % self.event.name
+ print >>info_file, 'Results URL: %s' % self.event.link
+ print >>info_file, 'Tournament: %s' % self.name
+ print >>info_file, 'Sessions:'
+ for session in self.sessions:
+ print >>info_file, ' - [%d/%d] %s (%d boards): %s' % (
+ session.group_number, session.round_number, session.name, len(session.boards), session.link)
+
+ def write_pairs(self):
+ with open(self.__get_filename('pairs.csv'), 'wb') as pairs_file:
+ writer = csv.writer(pairs_file)
+ for pair in self.pairs.values():
+ writer.writerow([pair.number] + pair.names + pair.nationalities)
+
+ def write_boards(self):
+ with open(self.__get_filename('boards.csv'), 'wb') as boards_file:
+ writer = csv.writer(boards_file)
+ for session in self.sessions:
+ for board in session.boards.values():
+ writer.writerow([session.group_number, session.round_number, board.number, board.layout])
+
+ def write_results(self):
+ with open(self.__get_filename('results.csv'), 'wb') as results_file:
+ writer = csv.writer(results_file)
+ for session in self.sessions:
+ if not len(session.boards):
+ print 'No results for session: %s' % session
+ for board in session.boards.values():
+ for result in board.results:
+ writer.writerow([session.group_number, session.round_number, board.number,
+ result.section, result.table,
+ result.ns_pair.number if result.ns_pair else '', result.ew_pair.number if result.ew_pair else '',
+ result.contract, result.declarer, result.lead, result.tricks, result.score])
+
class Session(object):
tournament = None
link = None
@@ -226,6 +265,8 @@ class Result(object):
results_url = sys.argv[1]
event = Event(results_url)
-print event
-for tournament in event.tournaments.values():
- print tournament, tournament.sessions, tournament.pairs
+for tour_id, tournament in event.tournaments.iteritems():
+ tournament.write_info()
+ tournament.write_pairs()
+ tournament.write_boards()
+ tournament.write_results()