%global _empty_manifest_terminate_build 0 Name: python-chess.com Version: 2.0.6 Release: 1 Summary: Python Wrapper for Chess.com API License: MIT License URL: https://github.com/sarartur/chess.com Source0: https://mirrors.nju.edu.cn/pypi/web/packages/93/06/2456e85aedb0bdcf67b1b9c80cda27b3ce73a5b1274b8299366c08cc4b6f/chess.com-2.0.6.tar.gz BuildArch: noarch Requires: python3-aiohttp Requires: python3-requests %description 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.7 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. #### Synchronous ``` python from chessdotcom import get_player_profile response = get_player_profile("fabianocaruana") player_name = response.json['player']['name'] player_name = response.player.name ``` #### Asynchronous ``` python import asyncio from chessdotcom.aio import get_player_profile usernames = ["fabianocaruana", "GMHikaruOnTwitch", "MagnusCarlsen", "GarryKasparov"] cors = [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 The package offers several ways to deal with the 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 adjust the ```rate_limit_handler``` attribute of the `Client` object. ``` python Client.rate_limit_handler.tries = 2 Client.rate_limit_handler.tts = 4 ``` If the initial request gets rate limited the client will automatically retry the request **2 more times** with an interval of **4 seconds**. #### Configuring Headers Headers and and other request parameters can be set through the `Client` object. Official Chess.com documentation recommends adding a `User-Agent` header. ``` python from chessdotcom import Client Client.request_config["headers"]["User-Agent"] = ( "My Python Application. " "Contact me at email@example.com" ) ``` All the methods from the package will now include the header when making a request to the API. ### Contact * Email me at or open a new [Issue](https://github.com/sarartur/chess.com/issues) on Github. %package -n python3-chess.com Summary: Python Wrapper for Chess.com API Provides: python-chess.com BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-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.7 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. #### Synchronous ``` python from chessdotcom import get_player_profile response = get_player_profile("fabianocaruana") player_name = response.json['player']['name'] player_name = response.player.name ``` #### Asynchronous ``` python import asyncio from chessdotcom.aio import get_player_profile usernames = ["fabianocaruana", "GMHikaruOnTwitch", "MagnusCarlsen", "GarryKasparov"] cors = [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 The package offers several ways to deal with the 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 adjust the ```rate_limit_handler``` attribute of the `Client` object. ``` python Client.rate_limit_handler.tries = 2 Client.rate_limit_handler.tts = 4 ``` If the initial request gets rate limited the client will automatically retry the request **2 more times** with an interval of **4 seconds**. #### Configuring Headers Headers and and other request parameters can be set through the `Client` object. Official Chess.com documentation recommends adding a `User-Agent` header. ``` python from chessdotcom import Client Client.request_config["headers"]["User-Agent"] = ( "My Python Application. " "Contact me at email@example.com" ) ``` All the methods from the package will now include the header when making a request to the API. ### Contact * Email me at or open a new [Issue](https://github.com/sarartur/chess.com/issues) on Github. %package help Summary: Development documents and examples for chess.com Provides: python3-chess.com-doc %description help 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.7 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. #### Synchronous ``` python from chessdotcom import get_player_profile response = get_player_profile("fabianocaruana") player_name = response.json['player']['name'] player_name = response.player.name ``` #### Asynchronous ``` python import asyncio from chessdotcom.aio import get_player_profile usernames = ["fabianocaruana", "GMHikaruOnTwitch", "MagnusCarlsen", "GarryKasparov"] cors = [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 The package offers several ways to deal with the 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 adjust the ```rate_limit_handler``` attribute of the `Client` object. ``` python Client.rate_limit_handler.tries = 2 Client.rate_limit_handler.tts = 4 ``` If the initial request gets rate limited the client will automatically retry the request **2 more times** with an interval of **4 seconds**. #### Configuring Headers Headers and and other request parameters can be set through the `Client` object. Official Chess.com documentation recommends adding a `User-Agent` header. ``` python from chessdotcom import Client Client.request_config["headers"]["User-Agent"] = ( "My Python Application. " "Contact me at email@example.com" ) ``` All the methods from the package will now include the header when making a request to the API. ### Contact * Email me at or open a new [Issue](https://github.com/sarartur/chess.com/issues) on Github. %prep %autosetup -n chess.com-2.0.6 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-chess.com -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 29 2023 Python_Bot - 2.0.6-1 - Package Spec generated