Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

Python client for the lichess API

Project description

berserk

https://img.shields.io/pypi/v/berserk.svg https://img.shields.io/travis/rhgrant10/berserk.svg Documentation Status

Python client for the lichess API

Features

  • handles JSON and PGN formats at user’s discretion
  • token auth support provided
  • easy integration with OAuth2

Usage

You can use any requests.Session-like object as a session, including those from requests_oauth. A simple token session is included, as shown below:

import berserk

session = berserk.TokenSession(API_TOKEN)
client = berserk.Client(session=session)

Most if not all of the API is available:

client.account.get()
client.account.get_email()
client.account.get_preferences()
client.account.get_kid_mode()
client.account.set_kid_mode()
client.account.upgrade_to_bot()

client.users.get_realtime_statuses()
client.users.get_all_top_10()
client.users.get_leaderboard()
client.users.get_public_data()
client.users.get_activity_feed()
client.users.get_by_id()
client.users.get_by_team()
client.users.get_live_streamers()

client.games.export()
client.games.export_by_player()
client.games.export_multi()
client.games.get_among_players()
client.games.get_ongoing()
client.games.get_tv_channels()

client.challenges.create()
client.challenges.accept()
client.challenges.decline()

client.bots.stream_incoming_events()
client.bots.stream_game_state()
client.bots.make_move()
client.bots.post_message()
client.bots.abort_game()
client.bots.resign_game()
client.bots.accept_challenge()
client.bots.decline_challenge()

client.tournaments.get()
client.tournaments.create()

client.broadcasts.get()
client.broadcasts.create()
client.broadcasts.update()
client.broadcasts.push_pgn_update()

Details for each function can be found in the full documentation.

Credits

Authors

Development Lead
Contributors

Miscellaneous

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.6.0 (2020-01-20)

  • Add logging to the berserk.session module
  • Fix exception message when no cause
  • Fix bug in Broadcasts.push_pgn_update
  • Update documentation and tweak the theme

0.5.0 (2020-01-20)

  • Add ResponseError for 4xx and 5xx responses with status code, reason, and cause
  • Add ApiError for all other request errors
  • Fix test case broken by 0.4.0 release
  • Put all utils code under test

0.4.0 (2020-01-19)

  • Add support for the broadcast endpoints
  • Add a utility for easily converting API objects into update params
  • Fix multiple bugs with the tournament create endpoint
  • Improve the reusability of some conversion utilities
  • Improve many docstrings in the client classes

0.3.2 (2020-01-04)

  • Fix bug where options not passed for challenge creation
  • Convert requirements from pinned to sematically compatible
  • Bump all developer dependencies
  • Use pytest instead of the older py.test
  • Use py37 in tox

0.3.1 (2018-12-23)

  • Convert datetime string in tournament creation response into datetime object

0.3.0 (2018-12-23)

  • Convert all timestamps to datetime in all responses
  • Provide support for challenging other players to a game

0.2.1 (2018-12-08)

  • Bump requests dependency to >=2.20.0 (CVE-2018-18074)

0.2.0 (2018-12-08)

  • Add position and start_date params to Tournament.create
  • Add Position enum

0.1.2 (2018-07-14)

  • Fix an asine bug in the docs

0.1.1 (2018-07-14)

  • 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

0.1.0 (2018-07-10)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for berserk, version 0.6.0
Filename, size File type Python version Upload date Hashes
Filename, size berserk-0.6.0-py2.py3-none-any.whl (18.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size berserk-0.6.0.tar.gz (31.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page