Metadata-Version: 2.1
Name: berserk
Version: 0.6.0
Summary: Python client for the lichess API
Home-page: https://github.com/rhgrant10/berserk
Author: Robert Grant
Author-email: rhgrant10@gmail.com
License: GNU General Public License v3
Keywords: berserk
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/x-rst
Requires-Dist: requests (~=2.20)
Requires-Dist: ndjson (~=0.2)

=======
berserk
=======


.. image:: https://img.shields.io/pypi/v/berserk.svg
        :target: https://pypi.python.org/pypi/berserk

.. image:: https://img.shields.io/travis/rhgrant10/berserk.svg
        :target: https://travis-ci.org/rhgrant10/berserk

.. image:: https://readthedocs.org/projects/berserk/badge/?version=latest
        :target: https://berserk.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status


Python client for the lichess API


* Free software: GNU General Public License v3
* Documentation: https://berserk.readthedocs.io.


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:

.. code-block:: python

    import berserk

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

Most if not all of the API is available:

.. code-block:: python

    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
~~~~~~~~~~~~~~~~

* Robert Grant <rhgrant10@gmail.com>

Contributors
~~~~~~~~~~~~

* Robert Graham <rpgraham84@gmail.com>


Miscellaneous
-------------

This package was created with Cookiecutter_ and the
`audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
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.


