self.talk('```' + tabulate( table, headers=['Match', 'Needs to Confirm', 'Opponent', 'Score', 'Date']) + '```') def get_win_streak(self, player_slack_id): win_streak = 0 matches = Match.select().where( Match.pending == False, (player_slack_id == Match.winner_handle) | (player_slack_id == Match.loser_handle)).order_by( Match.played.desc()) return len( list( takewhile(lambda m: m.winner_handle == player_slack_id, matches))) if __name__ == '__main__': with open('config.json') as config_data: config = json.load(config_data) slack_client = SlackClient(config['slack_token']) db.connect() Match.create_table() EloBot( slack_client, slack_client.get_channel_id(config['channel']), config['bot_name'], config['min_streak_length'], )