Python wrapper for the Lichess API
Project description
lichess: a Python wrapper for the Lichess API
lichess is a Python library for interacting with the Lichess API and can be used to get profile data, game data, and much more.
This project is still in Pre-Alpha. As a result, it is still unstable, and not all features have been implemented.
Installation
You can install lichess on the Terminal (macOS/UNIX) or the Command Prompt (Windows) with:
pip install lichess
Alternatively, you can use Git to clone the repository from GitHub with:
git clone https://github.com/qe/lichess.git cd lichess pip install .
Or, if you already have it, upgrade to the latest version with:
pip install lichess -U
Usage
For the full documentation, please check the Lichess Python API Documentation.
Some methods, such as Client.get_email(), require authorization while others, such as Client.get_leaderboard(), do not require it. As a result, if you want to use a method/endpoint that does require authorization, you will need to generate a personal access token on Lichess. If you do so, this will be your API Key.
To determine whether or nor you need to generate a personal access token, check if the endpoint you are interested in using has a OAuth2 badge in the Lichess API Documentation.
Here is an example of using lichess without a personal access token:
import lichess myclient = lichess.Client()
Here is an example of using lichess with a personal access token:
import lichess API_KEY = "<YOUR API KEY GOES HERE>" myclient = lichess.Client(token=API_KEY)
Quick Examples
The following are some examples of popular uses of this package:
Get the profile data of a user
myclient = lichess.Client() user = myclient.get_data("bmartin")
Get the rating history of a user
myclient = lichess.Client() history = myclient.get_rating_history("agadmator")
Get the list of users that are offline, online, and playing
myclient = lichess.Client() users = ["Oliver_Penrose", "bmartin", "ismodes", "penguingim1", "Zhigalko_Sergei"] data = myclient.get_status(users) offline = [i['name'] for i in data if 'online' not in i.keys()] online = [i['name'] for i in data if 'online' in i.keys()] playing = [i['name'] for i in data if 'playing' in i.keys()]
Download all the games of a user
myclient = lichess.Client() games = myclient.export_by_user(<USERNAME GOES HERE>) with open("games.pgn", "w") as f: f.write(games) f.close()
Get the list of all the members of a team
API_KEY = "<YOUR API KEY GOES HERE>" myclient = lichess.Client(token=API_KEY) members = myclient.get_team_members(<TEAMNAME GOES HERE>)
Get the list of all the IDs of the puzzles you have failed
API_KEY = "<YOUR API KEY GOES HERE>" myclient = lichess.Client(token=API_KEY) activity = myclient.get_puzzle_activity() failed = [i['id'] for i in activity if not i['win']]
For more examples, check the examples directory in the source code.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file lichess-0.2.6.tar.gz
.
File metadata
- Download URL: lichess-0.2.6.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f273dd0b333f6049b16cd87ccc33e3a2a73c1d5a1b228022a172270f44e8f9d8 |
|
MD5 | cf3f5548764b95cd0a2d0dd15acc04ae |
|
BLAKE2b-256 | f98ad51249ad47a60c6f25361cf2b86474ba577494b96c2970c0f5af62c8a734 |
File details
Details for the file lichess-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: lichess-0.2.6-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6990c8a2ec2897979ef1ae2d42c22c7dad59bbf25c0f6a24952a8464e14817f7 |
|
MD5 | 5a76142654b389bae08ad772566042f8 |
|
BLAKE2b-256 | 5856570293c395eacb7be545152adf384819a7bf6fb2791114fd8aa9e714bfd9 |