Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Version 1.5.0 (2024-..-..)#
Added#
Interactive clash of code methods : *
Client.create_private_clash_of_code()*Client.join_private_clash_of_code()*ClashOfCode.fetch()*ClashOfCode.join()*ClashOfCode.start()*ClashOfCode.leave()*ClashOfCode.get_question()*ClashOfCode.play_test_cases()*ClashOfCode.submit()*Player.get_solution()Classes to help handling a clash of code : *
Question*TestCase*TestCaseResult*Solution
Version 1.4.3 (2024-02-21)#
Changed#
Every
datetime.datetimeis now timezone aware, using the CodinGame timezone (UTC).ClashOfCode.creation_timecan beNonebecause of an API change by CodinGame.
Fixed#
KeyErrorwas raised when usingClient.get_clash_of_code()because of an API change by CodinGame.
Removed#
Removed support for python 3.7 as it has reached its end of life. For more information, see PEP 537.
Version 1.4.2 (2023-04-14)#
Fixed#
KeyErrorwas raised when usingClient.get_challenge_leaderboard()instead ofNotFoundbecause of an API change by CodinGame.
Version 1.4.1 (2023-02-11)#
Fixed#
ValueErrorwhen usingClient.get_pending_clash_of_code()because of a change in datetime format by CodinGame.
Version 1.4.0 (2022-08-19)#
Added#
Removed#
Removed support for python 3.6 as it has reached its end of life. For more information, see PEP 494.
Version 1.3.0 (2022-06-21)#
Added#
Notification.seen,Notification.seen_date,Notification.readandNotification.read_date.NotificationTypeandNotificationTypeGroupenums forNotification.typeandNotification.type_group.NotificationDataand subclasses.
Changed#
Deprecated
Notification.creation_timein favor ofNotification.date
Removed#
Removed
Notification._raw.
Version 1.2.4 (2022-06-17)#
Fixed#
CodinGamer.get_followers()andCodinGamer.get_followed()now work while being logged in as any user, not just as the user you want to get the followers of.
Version 1.2.3 (2021-11-07)#
Fixed#
ImportErrorofcodingame.typessubmodule when importingcodingame, the1.2.1and1.2.2fixes don’t work.
Version 1.2.2 (2021-11-06)#
Fixed#
ImportErrorofcodingame.typessubmodule when importingcodingame.
Version 1.2.1 (2021-11-06)#
Fixed#
ModuleNotFoundErrorofcodingame.typessubmodule when importingcodingame.
Version 1.2.0 (2021-11-04)#
Added#
Client.request()to make requests to CodinGame API services that aren’t implemented yet in the library.
Removed#
codingame.endpointssubmodule.
Version 1.1.0 (2021-11-01)#
Changed#
Update
Client.login()to bypass captcha on login endpoint with cookie based authentication, see Login.
Version 1.0.1 (2021-07-12)#
Added#
Version 1.0.0 (2021-07-12)#
Added#
Asynchronous client with
Client(is_async=True), see About the asynchronous client.Context managers:
# synchronous with Client() as client: client.get_global_leaderboard() #asynchronous async with Client(is_async=True) as client: await client.get_global_leaderboard()
More exceptions:
LoginErrorregroups all the exceptions related to login:LoginRequired,EmailRequired,MalformedEmail,PasswordRequired,EmailNotLinkedandIncorrectPassword. AndNotFoundregroupsCodinGamerNotFound,ClashOfCodeNotFound,ChallengeNotFoundandPuzzleNotFoundChallengeLeaderboard.has_leaguesandPuzzleLeaderboard.has_leagues.Notification._raw.
Changed#
Remove properties like
CodinGamer.followersin favor of methods likeCodinGamer.get_followers()to better differentiate API calls and to make it compatible with async API calls. Here’s a list of all of the changed ones:Client.language_ids->Client.get_language_ids()Client.notifications->Client.get_unseen_notifications()CodinGamer.followers->CodinGamer.get_followers()CodinGamer.followers_ids->CodinGamer.get_followers_ids()CodinGamer.following->CodinGamer.get_followed()CodinGamer.following_ids->CodinGamer.get_followed_ids()CodinGamer.clash_of_code_rank->CodinGamer.get_clash_of_code_rank()
Make all attributes of CodinGame models read-only.
Change type of
ClashOfCode.time_before_startandClashOfCode.time_before_endfromfloattodatetime.timedelta.Rewrite the way the client works to implement a class to manage the connection state and separate the
Clientthat the user uses from the HTTP client that interacts with the API.
Removed#
Remove argument type validation, not my fault if you can’t read the docs.
Version 0.4.0 (2021-06-19)#
Added#
Changed#
Update docs style, code style and tests.
Version 0.3.5 (2020-12-10)#
Added#
Get a user with their user ID in
Client.get_codingamer().CodinGamer.followers_idsandCodinGamer.following_idsproperties to get information about followed users and followers without logging in.CodinGamer.clash_of_code_rank.
Version 0.3.4 (2020-12-01)#
Added#
Support for python 3.9.
Version 0.3.3 (2020-11-06)#
Added#
Searching for a CodinGamer with their pseudo in
Client.get_codingamer().CodinGamer.xp, thanks @LiJu09 (#3).
Version 0.3.2 (2020-09-23)#
Added#
Changed#
Renamed
Notification.datetoNotification.creation_time.
Version 0.3.1 (2020-09-20)#
Added#
Client.notificationsproperty.Notificationclass.LoginRequiredexception.
Version 0.3.0 (2020-09-20)#
Added#
Client.language_idsproperty.CodinGamer.followersandCodinGamer.followingproperties.
Version 0.2.1 (2020-09-16)#
Added#
Argument type validation.
Version 0.2.0 (2020-09-13)#
Added#
ClashOfCodeandPlayerclasses.ClashOfCodeNotFoundexception.
Changed#
Renamed
Client.codingamer()toClient.get_codingamer().
Version 0.1.0 (2020-09-12)#
Added#
Clientclass.Client.codingamer()method to get a codingamer.CodinGamerclass.CodinGamerNotFoundexception.