- Deprecate Python 3.9 support - minimum required version is now Python 3.10+. This does not mean the library will not work with Python 3.9, but it will not be tested against it anymore.
- Added
pgn_in_jsonparameter toclient.games.export. - Implement broadcasts.get_top() endpoint; typing fixes and validation.
- Added
client.broadcasts.searchto search for broadcasts. - Added
client.broadcasts.get_by_userto get broadcasts created by a user. - Added
client.relations.blockandclient.relations.unblockfor blocking/unblocking users. - Implemented
/api/games/export/importsunderclient.games.export_imported. - Added
client.account.get_timelineto get current logged user timeline. - Implemented
/api/study/by/{username}underclient.studies.get_by_userto get the metadata of all studies of a given user. - Added
bots.handle_draw_offerandbots.handle_takeback_offerto handle draw and takeback offers - Added
client.external_engine.analyse,client.external_engine.acquire_request,client.external_engine.answer_requestto handle analysis with an external engine - Added
bots.claim_drawandbots.claim_victoryto claim a draw or a victory in a bot game - Added
client.board.claim_drawto claim a draw in a game (after the opponent left the game)
Thanks to all the contributors who helped to this release: - @hsheth2 - @DoraFgr - @MrElyazid - @gameroman - @JAMoreno-Larios - @friedrichtenhagen - @jquiaios
- Deprecate Python 3.8 support - minimum required version is now Python 3.9+. This does not mean the library will not work with Python 3.8, but it will not be tested against it anymore.
- Fixed
wbtimeandbtimefor all endpoints returning aGameState. - Added
sheetoptional parameter toTournaments.stream_results, and fix returned typed dict. - Added
studies.import_pgnto import PGN to study - Added
tv.stream_current_game_of_channelto stream the current TV game of a channel - Added
client.fide.getto retrieve detailed data about a FIDE player by ID - Added
client.fide.searchto search for FIDE players by name - Added
client.puzzles.get_nextto get a new puzzle - Fixed
client.broadcasts.push_pgn_updateendpoint URL - Updated
finishedpatameter tostatusinclient.broadcasts.update_round
Thanks to @nicvagn, @tors42, @fitztrev, @trevorbayless, @Looki2000 and @stafot for their contributions to this release
- Added
client.analysis.get_cloud_evaluationto get cloud evaluations - Added
client.tournaments.export_swiss_trfto export swiss results as TRF - Updated
client.broadcasts.createandclient.broadcasts.updateto reflect changes in the Lichess API * Removedofficialparameter (could only be used by Lichess staff anyways) * Addedtierparameter (can only be used by Lichess staff) * Addedauto_leaderboardparameter to control whether an automatically calculated leaderboard should be displayed
Thanks to @Anupya and @AAArmstark for their contributions to this release.
Added:
client.challenges.get_mine client.challenges.cancel client.challenges.start_clocks client.challenges.add_time_to_opponent_clock client.challenges.create_tokens_for_multiple_users client.explorer.get_otb_master_game client.external_engine.get client.external_engine.get_by_id client.external_engine.create client.external_engine.update client.external_engine.delete client.puzzles.create_race client.tournaments.edit_swiss client.tournaments.get_swiss client.tournaments.get_team_standings client.tournaments.join_arena client.tournaments.join_swiss client.tournaments.schedule_swiss_next_round client.tournaments.stream_swiss_results client.tournaments.terminate_arena client.tournaments.terminate_swiss client.tournaments.update_team_battle client.tournaments.withdraw_arena client.tournaments.withdraw_swiss client.users.get_by_autocomplete
Thanks to @handsamtw and @Anupya for their contributions to this release.
- Correctly forward that the library is typed (now following PEP-0561)
- Added broadcast.stream_round endpoint
- Improve type safety, remove enum.py and use typed dicts instead, this is a breaking change if you relied on these enums
Thanks to @devjiwonchoi, @Virinas-code, @icp1994, and @rpesche for their contributions to this release.
- Added
client.opening_explorer.get_masters_gamesto request opening explorer data for a given position based on master games - Added
client.opening_explorer.get_player_gamesto request opening explorer data for a given position based on Lichess games of a specific player - Added
client.opening_explorer.stream_player_gamesto request opening explorer data for a given position based on Lichess games of a specific player and get intermediate results as statistics are calculated
Thanks to @rpesche for their contributions to this release.
- Added
client.bulk_pairingsto create and manage bulk pairings *client.bulk_pairings.get_upcomingto get upcoming bulk pairings you created *client.bulk_pairings.createto create a bulk pairing *client.bulk_pairings.start_clocksto start the clocks of a bulk pairing *client.bulk_pairings.cancelto cancel a bulk pairing - Added better return types for
client.account.getandclient.account.get_preferences
Thanks to @Virinas-code for their contributions to this release.
- Added
client.opening_explorer.get_lichess_gamesto request opening explorer data for a given position based on Lichess games
Thanks to @rpesche for their contributions to this release.
- Added
client.teams.get_join_requeststo get the join requests of one of your teams - Added
client.teams.accept_join_requestto accept a join request of one of your teams
Thanks to @zen1405 for their contributions to this release.
- Added
client.puzzles.get_dailyto get the current daily puzzle - Added
client.puzzles.get_puzzle_activityto get the authenticated user's puzzle activity/history- This was already accessibly as
client.users.get_puzzle_activityand remains there for backwards compatibility but this usage is deprecated and will be removed in the next breaking version.
- This was already accessibly as
- Added
client.puzzles.get_puzzle_dashboardto get the authenticated user's puzzle dashboard - Added
client.puzzles.get_storm_dashboardto get the storm dashboard of a user - Added
client.tablebase.look_upto look up tablebase results - Added
client.tablebase.standardto look up tablebase results - Added
client.tablebase.atomicto look up atomic chess tablebase results - Added
client.tablebase.antichessto look up antichess tablebase results - All streaming methods are now generators which means they only start the request once the iteration starts. For most usages, this doesn't make any difference.
Thanks to @icp, @obazin, and @Virinas-code for their contributions to this release.
- Added
client.broadcast.get_officialto get official Broadcasts - Added
client.broadcast.get_round_pgnsto get the PGN of all games of a broadcast round - Added
client.broadcast.get_pgnsto get the PGN of all games of a broadcast - Added
client.puzzles.getto get a puzzle by its id
Thanks to @obazin and @thegrapesoda for their contributions to this release.
- Fixed
client.users.get_puzzle_activityreturning 404 all the time.
Thanks to @AnonJohn for the report.
- Fixed response handling of several endpoints related to datetime parsing for python older than 3.11
Thanks to @aro5000 for the report and @icp1994 for the troubleshooting.
- Fixed response handling of several endpoints related to datetime parsing
Thanks to @icp1994 for their contributions to this release!
- Added
client.bots.get_online_botsto get the list of online bots - Adjusted study export endpoint URLs to use the
/apiprefix for consistency
Thanks to @kalpgarg and @icp1994 for their contributions to this release!
- First release done by Lichess incorporating the changes from
berserk-downstream(v0.11.0) - Added type hints
- Removed deprecated functions
- Added
client.board.get_game_chatto get the chat of a game - Added
client.board.claim_victoryto claim victory in a game (after the opponent left the game) - Added
client.board.go_berserkto go berserk in a tournament game export_arena_gamesandexport_swiss_gamesnow stream the result (i.e. return an iterator over the games)
Thanks to @trevorbayless and @icp1994 for their contributions to this release!
- Added
Tournaments.create_arenafor creating arena tournaments - Added
Tournaments.create_swissfor creating swiss tournaments - Added
Tournaments.export_arena_gamesfor exporting arena games - Added
Tournaments.export_swiss_gamesfor exporting swiss games - Added
Tournaments.arena_by_teamfor getting arena tournaments by team - Added
Tournaments.swiss_by_teamfor getting swiss tournaments by team - Added
Tournaments.tournaments_by_userfor getting tournaments by user - Deprecated
Tournaments.createandTournaments.export_games - Uploaded fork to pypi
- Minor fixes for docstrings
- Minor updates to README, AUTHORS
- Added
Challenge.create_aifor creating an AI challenge - Added
Challenge.create_openfor creating an open challenge - Added
Challenge.create_with_acceptauto-acceptance of challenges using OAuth token - Bugfix for passing initial board positions in FEN for challenges
- Minor fixes for docstrings
- Added remaining
Boardendpoints: seek, handle_draw_offer, offer_draw, accept_draw, and decline_draw - Multiple doc updates/fixes
- Added codecov reporting
- Added new
Boardclient: stream_incoming_events, stream_game_state, make_move, post_message, abort_game, and resign_game
- Added simuls
- Added studies export and export chapter
- Added tournament results, games export, and list by creator
- Added user followers, users following, rating history, and puzzle activity
- Added new
Teamsclient: join, get members, kick member, and leave - Updated documentation, including new docs for some useful utils
- Fixed bugs in
Tournaments.export_games - Deprecated
Users.get_by_team- useTeams.get_membersinstead
- Added py37 to the travis build
- Updated development status classifier to 4 - Beta
- Fixed py36 issue preventing successful build
- Made updates to the Makefile
- Added logging to the
berserk.sessionmodule - Fixed exception message when no cause
- Fixed bug in
Broadcasts.push_pgn_update - Updated documentation and tweak the theme
- Added
ResponseErrorfor 4xx and 5xx responses with status code, reason, and cause - Added
ApiErrorfor all other request errors - Fixed test case broken by 0.4.0 release
- Put all utils code under test
- Added support for the broadcast endpoints
- Added a utility for easily converting API objects into update params
- Fixe multiple bugs with the tournament create endpoint
- Improved the reusability of some conversion utilities
- Improved many docstrings in the client classes
- Fixed bug where options not passed for challenge creation
- Converted requirements from pinned to sematically compatible
- Bumped all developer dependencies
- Use pytest instead of the older py.test
- Use py37 in tox
- Converted datetime string in tournament creation response into datetime object
- Converted all timestamps to datetime in all responses
- Provided support for challenging other players to a game
- Bump edrequests dependency to >-2.20.0 (CVE-2018-18074)
- Added position and start_date params to Tournament.create
- Added Position enum
- Fixed an asine bug in the docs
- Added tests for session and formats modules
- Fixed mispelled PgnHandler class (!)
- Fixed issue with trailing whitespace when splitting multiple PGN texts
- Fixed the usage overview in the README
- Fixed the versions for travis-ci
- Made it easier to test the JsonHandler class
- Salted the bumpversion config to taste
- First release on PyPI.