chess.com


Namechess.com JSON
Version 3.5.0 PyPI version JSON
download
home_pagehttps://github.com/sarartur/chess.com
SummaryPython Wrapper for Chess.com API
upload_time2024-10-29 18:41:37
maintainerNone
docs_urlNone
authorArtur Saradzhyan
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python wrapper for Chess.com Public API
<img alt="GitHub Workflow Status (event)" src="https://img.shields.io/github/actions/workflow/status/sarartur/chess.com/build_and_publish.yml?branch=master"> <img src="https://img.shields.io/readthedocs/chessdotcom"> <img src="https://img.shields.io/github/license/sarartur/chess.com">  <img alt="PyPI" src="https://img.shields.io/pypi/v/chess.com"> <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/chess.com?color=007EC6"> <img src="https://img.shields.io/github/forks/sarartur/chess.com"> <img src="https://img.shields.io/github/stars/sarartur/chess.com">
---
Python wrapper for Chess.com API which provides public data from the chess.com website. All endpoints provided by Chess.com's API are available in the respectively named methods. 
## Installation 
**The package requires Python 3.8 or higher**.

Install latest version from [PyPI](https://pypi.org/project/chess.com/) ```pip install chess.com``` 

## Resources
* Documentation: [readthedocs.org](https://chesscom.readthedocs.io/)
* Published-Data API: [chess.com](https://www.chess.com/news/view/published-data-api)

## Usage
### Retrieving Data
All the functions return a `ChessDotComResponse` object. The data can be accessed in dictionary format or via attributes.

The package uses [aiohttp](https://docs.aiohttp.org/en/stable/) for asynchronous requests and [requests](https://requests.readthedocs.io/en/latest/) for synchronous requests to interact with the API. 

#### Using client instance

``` python
from chessdotcom import ChessDotComClient
   
client = ChessDotComClient(user_agent = "My Python Application...")

response = client.get_player_profile("fabianocaruana")

response.player.name # 'Fabiano Caruana'
response.player.title # 'GM'
response.player.last_online_datetime # datetime.datetime(2024, 10, 25, 20, 8, 28)
response.player.joined_datetime # datetime.datetime(2013, 3, 17, 15, 14, 32)
# See readthedocs for full documentation of responses

# or access the source
response.json['player']['name'] # 'Fabiano Caruana'
```

#### Using functions

``` python
from chessdotcom import get_player_profile, Client
   
Client.request_config["headers"]["User-Agent"] = (
    "My Python Application. "
    "Contact me at email@example.com"
)
response = get_player_profile("fabianocaruana")
```

#### Asynchronous 
``` python 
from chessdotcom import ChessDotComClient

client = ChessDotComClient(user_agent = "My Python Application...", aio = True)

usernames = ["fabianocaruana", "GMHikaruOnTwitch", "MagnusCarlsen", "GarryKasparov"]

cors = [client.get_player_profile(name) for name in usernames]

async def gather_cors(cors):
    return await asyncio.gather(*cors)

responses = asyncio.run(gather_cors(cors))

```
#### Managing Rate Limit
Every function accepts a `tts` parameter which controls the number of seconds the `Client` will wait before making the request. This is useful if running a lot of coroutines at once.
 
 ``` python 
 cors = [get_player_profile(name, tts = i / 10) for i, name in enumerate(usernames)]
```
The second method is to pass ```rate_limit_handler``` option to the client.

``` python
from chessdotcom import RateLimitHandler

client = ChessDotComClient(
    rate_limit_handler = RateLimitHandler(tts = 4,retries = 2)
)
```
If the initial request gets rate limited the client will automatically retry the request **2 more times** with an interval of **4 seconds**.

## Reporting Issues

Chess.com API is subject to change. Smoke tests are ran daily to make sure the package is working correctly.

<img src="https://img.shields.io/github/actions/workflow/status/sarartur/chess.com/smoke_tests.yml?branch=master&label=smoke%20tests"> <img src="https://img.shields.io/github/issues/sarartur/chess.com">

Please open an [Issue](https://github.com/sarartur/chess.com/issues) if you spot any bugs.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sarartur/chess.com",
    "name": "chess.com",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Artur Saradzhyan",
    "author_email": "sarartur.ruk@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/9e/22/1af4f0ebb8fde60b6c4fc350df20efa5e6a1147b04c339815f7f4bf62f2f/chess.com-3.5.0.tar.gz",
    "platform": null,
    "description": "# Python wrapper for Chess.com Public API\n<img alt=\"GitHub Workflow Status (event)\" src=\"https://img.shields.io/github/actions/workflow/status/sarartur/chess.com/build_and_publish.yml?branch=master\"> <img src=\"https://img.shields.io/readthedocs/chessdotcom\"> <img src=\"https://img.shields.io/github/license/sarartur/chess.com\">  <img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/chess.com\"> <img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/chess.com?color=007EC6\"> <img src=\"https://img.shields.io/github/forks/sarartur/chess.com\"> <img src=\"https://img.shields.io/github/stars/sarartur/chess.com\">\n---\nPython wrapper for Chess.com API which provides public data from the chess.com website. All endpoints provided by Chess.com's API are available in the respectively named methods. \n## Installation \n**The package requires Python 3.8 or higher**.\n\nInstall latest version from [PyPI](https://pypi.org/project/chess.com/) ```pip install chess.com``` \n\n## Resources\n* Documentation: [readthedocs.org](https://chesscom.readthedocs.io/)\n* Published-Data API: [chess.com](https://www.chess.com/news/view/published-data-api)\n\n## Usage\n### Retrieving Data\nAll the functions return a `ChessDotComResponse` object. The data can be accessed in dictionary format or via attributes.\n\nThe package uses [aiohttp](https://docs.aiohttp.org/en/stable/) for asynchronous requests and [requests](https://requests.readthedocs.io/en/latest/) for synchronous requests to interact with the API. \n\n#### Using client instance\n\n``` python\nfrom chessdotcom import ChessDotComClient\n   \nclient = ChessDotComClient(user_agent = \"My Python Application...\")\n\nresponse = client.get_player_profile(\"fabianocaruana\")\n\nresponse.player.name # 'Fabiano Caruana'\nresponse.player.title # 'GM'\nresponse.player.last_online_datetime # datetime.datetime(2024, 10, 25, 20, 8, 28)\nresponse.player.joined_datetime # datetime.datetime(2013, 3, 17, 15, 14, 32)\n# See readthedocs for full documentation of responses\n\n# or access the source\nresponse.json['player']['name'] # 'Fabiano Caruana'\n```\n\n#### Using functions\n\n``` python\nfrom chessdotcom import get_player_profile, Client\n   \nClient.request_config[\"headers\"][\"User-Agent\"] = (\n    \"My Python Application. \"\n    \"Contact me at email@example.com\"\n)\nresponse = get_player_profile(\"fabianocaruana\")\n```\n\n#### Asynchronous \n``` python \nfrom chessdotcom import ChessDotComClient\n\nclient = ChessDotComClient(user_agent = \"My Python Application...\", aio = True)\n\nusernames = [\"fabianocaruana\", \"GMHikaruOnTwitch\", \"MagnusCarlsen\", \"GarryKasparov\"]\n\ncors = [client.get_player_profile(name) for name in usernames]\n\nasync def gather_cors(cors):\n    return await asyncio.gather(*cors)\n\nresponses = asyncio.run(gather_cors(cors))\n\n```\n#### Managing Rate Limit\nEvery function accepts a `tts` parameter which controls the number of seconds the `Client` will wait before making the request. This is useful if running a lot of coroutines at once.\n \n ``` python \n cors = [get_player_profile(name, tts = i / 10) for i, name in enumerate(usernames)]\n```\nThe second method is to pass ```rate_limit_handler``` option to the client.\n\n``` python\nfrom chessdotcom import RateLimitHandler\n\nclient = ChessDotComClient(\n    rate_limit_handler = RateLimitHandler(tts = 4,retries = 2)\n)\n```\nIf the initial request gets rate limited the client will automatically retry the request **2 more times** with an interval of **4 seconds**.\n\n## Reporting Issues\n\nChess.com API is subject to change. Smoke tests are ran daily to make sure the package is working correctly.\n\n<img src=\"https://img.shields.io/github/actions/workflow/status/sarartur/chess.com/smoke_tests.yml?branch=master&label=smoke%20tests\"> <img src=\"https://img.shields.io/github/issues/sarartur/chess.com\">\n\nPlease open an [Issue](https://github.com/sarartur/chess.com/issues) if you spot any bugs.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python Wrapper for Chess.com API",
    "version": "3.5.0",
    "project_urls": {
        "Homepage": "https://github.com/sarartur/chess.com"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8b07ea34e2062454e2ce7b62c50939bc3e149a4bb4f414f2f30b15f28419fd7",
                "md5": "fc2a054bb7d2f449d28a33f7470e4a0c",
                "sha256": "64fc09032f90cd12e15723df9a052c1f25b5c52587481f3390a3fc7859f6d64c"
            },
            "downloads": -1,
            "filename": "chess.com-3.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fc2a054bb7d2f449d28a33f7470e4a0c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 23467,
            "upload_time": "2024-10-29T18:41:36",
            "upload_time_iso_8601": "2024-10-29T18:41:36.219763Z",
            "url": "https://files.pythonhosted.org/packages/e8/b0/7ea34e2062454e2ce7b62c50939bc3e149a4bb4f414f2f30b15f28419fd7/chess.com-3.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9e221af4f0ebb8fde60b6c4fc350df20efa5e6a1147b04c339815f7f4bf62f2f",
                "md5": "9110017245300c772af180d24803a1ee",
                "sha256": "f291aaa36b23afb9486e407912704495316d25154f07322a18c7147f85c72411"
            },
            "downloads": -1,
            "filename": "chess.com-3.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9110017245300c772af180d24803a1ee",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15770,
            "upload_time": "2024-10-29T18:41:37",
            "upload_time_iso_8601": "2024-10-29T18:41:37.860073Z",
            "url": "https://files.pythonhosted.org/packages/9e/22/1af4f0ebb8fde60b6c4fc350df20efa5e6a1147b04c339815f7f4bf62f2f/chess.com-3.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-29 18:41:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sarartur",
    "github_project": "chess.com",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "chess.com"
}
        
Elapsed time: 0.37486s