diff --git a/codeforces/api/codeforces_api.py b/codeforces/api/codeforces_api.py index 24c3093..68d54ec 100644 --- a/codeforces/api/codeforces_api.py +++ b/codeforces/api/codeforces_api.py @@ -272,7 +272,7 @@ def contest_hacks(self, contest_id): data = self._data_retriever.get_data('contest.hacks', contestId=contest_id) - return map(Hack, data) + return list(map(Hack, data)) def contest_list(self, gym=False): """ @@ -287,7 +287,7 @@ def contest_list(self, gym=False): """ data = self._data_retriever.get_data('contest.list', gym=gym) - return map(Contest, data) + return list(map(Contest, data)) def contest_rating_changes(self, contest_id): """ @@ -299,7 +299,7 @@ def contest_rating_changes(self, contest_id): """ data = self._data_retriever.get_data('contest.ratingChanges', contestId=contest_id) - return map(RatingChange, data) + return list(map(RatingChange, data)) def contest_standings(self, contest_id, from_=1, count=None, handles=None, show_unofficial=False): """ @@ -347,8 +347,8 @@ def contest_standings(self, contest_id, from_=1, count=None, handles=None, show_ **{'from': from_}) return {'contest': Contest(data['contest']), - 'problems': map(Problem, data['problems']), - 'rows': map(RanklistRow, data['rows'])} + 'problems': list(map(Problem, data['problems'])), + 'rows': list(map(RanklistRow, data['rows']))} def contest_status(self, contest_id, handle=None, from_=1, count=None): """ @@ -383,7 +383,7 @@ def contest_status(self, contest_id, handle=None, from_=1, count=None): count=count, **{'from': from_}) - return map(Submission, data) + return list(map(Submission, data)) def problemset_problems(self, tags=None): """ @@ -397,8 +397,8 @@ def problemset_problems(self, tags=None): """ data = self._data_retriever.get_data('problemset.problems', tags=tags) - return {'problems': map(Problem, data['problems']), - 'problemStatistics': map(ProblemStatistics, data['problemStatistics'])} + return {'problems': list(map(Problem, data['problems'])), + 'problemStatistics': list(map(ProblemStatistics, data['problemStatistics']))} def problemset_recent_status(self, count): """ @@ -415,7 +415,7 @@ def problemset_recent_status(self, count): data = self._data_retriever.get_data('problemset.recentStatus', count=count) - return map(Submission, data) + return list(map(Submission, data)) def user_info(self, handles): """ @@ -430,7 +430,7 @@ def user_info(self, handles): data = self._data_retriever.get_data('user.info', handles=handles) - return map(User, data) + return list(map(User, data)) def user_rated_list(self, active_only=False): """ @@ -446,7 +446,7 @@ def user_rated_list(self, active_only=False): data = self._data_retriever.get_data('user.ratedList', activeOnly=active_only) - return map(User, data) + return list(map(User, data)) def user_rating(self, handle): """ @@ -462,7 +462,7 @@ def user_rating(self, handle): data = self._data_retriever.get_data('user.rating', handle=handle) - return map(RatingChange, data) + return list(map(RatingChange, data)) def user_status(self, handle, from_=1, count=None): """ @@ -483,4 +483,4 @@ def user_status(self, handle, from_=1, count=None): data = self._data_retriever.get_data('user.status', handle=handle, count=count, **{'from': from_}) - return map(Submission, data) + return list(map(Submission, data)) diff --git a/examples/load_contest_standings_and_export_to_txt/AnalitzaContest.py b/examples/load_contest_standings_and_export_to_txt/AnalitzaContest.py index dc0bf43..2db2856 100644 --- a/examples/load_contest_standings_and_export_to_txt/AnalitzaContest.py +++ b/examples/load_contest_standings_and_export_to_txt/AnalitzaContest.py @@ -10,6 +10,7 @@ import sys from codeforces import CodeforcesAPI +import six def main(argv): @@ -24,7 +25,7 @@ def main(argv): participa = str(len(llista)) for p in llista: tio = p.party.members[0].handle - print(str(id)+' '+str(p.rank)) + six.print_((str(id)+' '+str(p.rank))) concursos = api.user_rating(tio) cont = 0 for c in concursos: @@ -39,4 +40,4 @@ def main(argv): main(sys.argv) else: print("Invalid number of arguments") - print("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0]))) + six.print_(("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0])))) diff --git a/examples/load_hacks_for_contest/main.py b/examples/load_hacks_for_contest/main.py index 9297047..044eca7 100644 --- a/examples/load_hacks_for_contest/main.py +++ b/examples/load_hacks_for_contest/main.py @@ -8,6 +8,7 @@ import sys from codeforces import CodeforcesAPI +import six def main(argv): @@ -18,9 +19,9 @@ def main(argv): hacks = api.contest_hacks(contest_id) for h in hacks: - print("[{:^30}] hacked [{:^30}], verdict: {}".format(', '.join(member.handle for member in h.hacker.members), + six.print_(("[{:^30}] hacked [{:^30}], verdict: {}".format(', '.join(member.handle for member in h.hacker.members), ', '.join(member.handle for member in h.defender.members), - h.verdict.value)) + h.verdict.value))) if __name__ == '__main__': @@ -28,4 +29,4 @@ def main(argv): main(sys.argv) else: print("Invalid number of arguments") - print("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0]))) \ No newline at end of file + six.print_(("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0])))) \ No newline at end of file diff --git a/examples/load_last_submissions/main.py b/examples/load_last_submissions/main.py index 6bd004e..ff2b84d 100644 --- a/examples/load_last_submissions/main.py +++ b/examples/load_last_submissions/main.py @@ -8,6 +8,7 @@ import sys from codeforces import CodeforcesAPI +import six def main(argv): @@ -17,10 +18,10 @@ def main(argv): submissions = api.problemset_recent_status(count_submissions) - print('{:^20}{}'.format('Submission ID', 'Party members')) + six.print_(('{:^20}{}'.format('Submission ID', 'Party members'))) for s in submissions: - print('{:^20}{}'.format(s.id, ', '.join(member.handle for member in s.author.members))) + six.print_(('{:^20}{}'.format(s.id, ', '.join(member.handle for member in s.author.members)))) if __name__ == '__main__': @@ -28,4 +29,4 @@ def main(argv): main(sys.argv) else: print("Invalid number of arguments") - print("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0]))) \ No newline at end of file + six.print_(("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0])))) \ No newline at end of file diff --git a/examples/load_submissions_for_contest/main.py b/examples/load_submissions_for_contest/main.py index c6734c7..6ade96a 100644 --- a/examples/load_submissions_for_contest/main.py +++ b/examples/load_submissions_for_contest/main.py @@ -8,6 +8,7 @@ import sys from codeforces import CodeforcesAPI +import six def main(argv): @@ -17,10 +18,10 @@ def main(argv): submissions = api.contest_status(contest_id) - print('{:^20}{}'.format('Submission ID', 'Party members')) + six.print_(('{:^20}{}'.format('Submission ID', 'Party members'))) for s in submissions: - print('{:^20}{}'.format(s.id, ', '.join(member.handle for member in s.author.members))) + six.print_(('{:^20}{}'.format(s.id, ', '.join(member.handle for member in s.author.members)))) if __name__ == '__main__': @@ -28,4 +29,4 @@ def main(argv): main(sys.argv) else: print("Invalid number of arguments") - print("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0]))) \ No newline at end of file + six.print_(("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0])))) \ No newline at end of file diff --git a/examples/load_users_by_handles/main.py b/examples/load_users_by_handles/main.py index e52f1aa..b8be16d 100644 --- a/examples/load_users_by_handles/main.py +++ b/examples/load_users_by_handles/main.py @@ -5,6 +5,7 @@ """ from codeforces import CodeforcesAPI +import six def main(): @@ -15,7 +16,7 @@ def main(): users = api.user_info(handles) for u in users: - print('{}, rank: {}'.format(u.handle, u.rank)) + six.print_(('{}, rank: {}'.format(u.handle, u.rank))) if __name__ == '__main__': diff --git a/examples/plot_graph_by_hack_count/main.py b/examples/plot_graph_by_hack_count/main.py index 0ccb7fe..9248b15 100644 --- a/examples/plot_graph_by_hack_count/main.py +++ b/examples/plot_graph_by_hack_count/main.py @@ -14,6 +14,7 @@ from collections import defaultdict from collections import Counter +import six def create_bar(x, y, name, color): @@ -123,11 +124,10 @@ def create_bars(hacks_count): Should have form [(HackVerdictType, [(problem_index, hack_count)]] :return: iterator of Bars """ - return map(lambda verdict_problem_count: create_bar(x=[t[0] for t in verdict_problem_count[1]], + return [create_bar(x=[t[0] for t in verdict_problem_count[1]], y=[t[1] for t in verdict_problem_count[1]], name=get_verdict_human_readable(verdict_problem_count[0]), - color=get_verdict_color(verdict_problem_count[0])), - hacks_count) + color=get_verdict_color(verdict_problem_count[0])) for verdict_problem_count in hacks_count] def plot_graph(data, contest_id): @@ -169,4 +169,4 @@ def main(argv): main(sys.argv) else: print("Invalid number of arguments") - print("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0]))) \ No newline at end of file + six.print_(("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0])))) \ No newline at end of file diff --git a/examples/plot_graph_by_submissions_count/main.py b/examples/plot_graph_by_submissions_count/main.py index a3e5ca2..9b58ff5 100644 --- a/examples/plot_graph_by_submissions_count/main.py +++ b/examples/plot_graph_by_submissions_count/main.py @@ -14,6 +14,8 @@ from codeforces import ParticipantType from collections import Counter +from six.moves import filter +import six def filter_only_contestants(submissions): @@ -108,4 +110,4 @@ def main(argv): main(sys.argv) else: print("Invalid number of arguments") - print("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0]))) \ No newline at end of file + six.print_(("Usage: python {} [contest id]".format(os.path.basename(sys.argv[0])))) \ No newline at end of file diff --git a/examples/print_users_from_same_organization_or_country/main.py b/examples/print_users_from_same_organization_or_country/main.py index e984a16..4962e04 100644 --- a/examples/print_users_from_same_organization_or_country/main.py +++ b/examples/print_users_from_same_organization_or_country/main.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 from codeforces import CodeforcesAPI +import six def get_all_user_handles(ranklist_rows): @@ -25,13 +26,13 @@ def main(): print("Users from Ural FU:") for row in filter_by_organization(ranklist_rows, users, "Ural FU"): - print(' {party}, points: {points}'.format(party=row.party, points=row.points)) + six.print_((' {party}, points: {points}'.format(party=row.party, points=row.points))) print() print("Users from Mexico:") for row in filter_by_country(ranklist_rows, users, "Mexico"): - print(' {party}, points: {points}'.format(party=row.party, points=row.points)) + six.print_((' {party}, points: {points}'.format(party=row.party, points=row.points))) if __name__ == '__main__': diff --git a/examples/show_only_unsolved_problems/main.py b/examples/show_only_unsolved_problems/main.py index 0cc294b..e390f53 100644 --- a/examples/show_only_unsolved_problems/main.py +++ b/examples/show_only_unsolved_problems/main.py @@ -13,6 +13,8 @@ from codeforces import VerdictType from codeforces import Problem from codeforces import Contest +from six.moves import filter +import six def first_or_default(lst, f): @@ -63,12 +65,12 @@ def main(argv): submissions = filter_accepted(api.user_status(handle)) solved_problems = filter_c(submission.problem for submission in submissions) solved_problems = set(solved_problems) - print('Loaded {} solved C problems'.format(len(solved_problems))) + six.print_(('Loaded {} solved C problems'.format(len(solved_problems)))) print('Loading contests...') contests = group_by_contest_id(filter_div2(api.contest_list())) - print('Loaded {} Div.2 contests'.format(len(contests))) + six.print_(('Loaded {} Div.2 contests'.format(len(contests)))) print('Loading problemset...') problemset = api.problemset_problems() @@ -83,11 +85,11 @@ def main(argv): print() - print('{:30}{:15}{}'.format('Name', 'Solved count', 'Url')) + six.print_(('{:30}{:15}{}'.format('Name', 'Solved count', 'Url'))) for stat in stats[:10]: problem = problems[stat.contest_id][0] - print('{:30}{:<15}{}'.format(problem.name, stat.solved_count, make_url(problem))) + six.print_(('{:30}{:<15}{}'.format(problem.name, stat.solved_count, make_url(problem)))) if __name__ == '__main__': @@ -95,5 +97,5 @@ def main(argv): main(sys.argv) else: print('Invalid number of arguments') - print('Usage: python3 {} [user handle]'.format(os.path.basename(sys.argv[0]))) + six.print_(('Usage: python3 {} [user handle]'.format(os.path.basename(sys.argv[0])))) sys.exit(1) diff --git a/examples/sort_problems_by_solved_count/main.py b/examples/sort_problems_by_solved_count/main.py index 5d56183..a133bf7 100644 --- a/examples/sort_problems_by_solved_count/main.py +++ b/examples/sort_problems_by_solved_count/main.py @@ -13,6 +13,8 @@ from codeforces import VerdictType from codeforces import Problem from codeforces import Contest +from six.moves import filter +import six def first_or_default(lst, f): @@ -62,12 +64,12 @@ def main(argv): handle = argv[1] submissions = filter_accepted(api.user_status(handle)) solved_problems = {submission.problem for submission in submissions} - print('Loaded {} solved problems'.format(len(solved_problems))) + six.print_(('Loaded {} solved problems'.format(len(solved_problems)))) print('Loading contests...') contests = group_by_contest_id(filter_div2(api.contest_list())) - print('Loaded {} Div.2 contests'.format(len(contests))) + six.print_(('Loaded {} Div.2 contests'.format(len(contests)))) print('Loading problemset...') problemset = api.problemset_problems() @@ -80,14 +82,14 @@ def main(argv): problems = group_by_contest_id(filter_c(problemset['problems'])) print() - print('{:30}{:10}{:15}{}'.format('Name', 'Is solved', 'Solved count', 'Url')) + six.print_(('{:30}{:10}{:15}{}'.format('Name', 'Is solved', 'Solved count', 'Url'))) for stat in stats[:10]: problem = problems[stat.contest_id][0] - print('{:30}{!s:10}{:<15}{}'.format(problem.name, + six.print_(('{:30}{!s:10}{:<15}{}'.format(problem.name, problem in solved_problems, stat.solved_count, - make_url(problem))) + make_url(problem)))) if __name__ == '__main__': @@ -95,5 +97,5 @@ def main(argv): main(sys.argv) else: print('Invalid number of arguments') - print('Usage: python3 {} [user handle]'.format(os.path.basename(sys.argv[0]))) + six.print_(('Usage: python3 {} [user handle]'.format(os.path.basename(sys.argv[0])))) sys.exit(1)