Metadata-Version: 2.1
Name: mwpy
Version: 0.3
Summary: An async MediaWiki client using trio and asks.
Home-page: https://github.com/5j9/mwpy
Author: 5j9
Author-email: 5j9@users.noreply.github.com
License: GNU General Public License v3 (GPLv3)
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Environment :: Web Environment
Classifier: Framework :: Trio
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
Requires-Dist: trio
Requires-Dist: asks

.. image:: https://badge.fury.io/py/mwpy.svg
    :target: https://badge.fury.io/py/mwpy
.. image:: https://travis-ci.org/5j9/mwpy.svg?branch=master
    :target: https://travis-ci.org/5j9/mwpy
.. image:: https://codecov.io/gh/5j9/mwpy/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/5j9/mwpy

``mwpy`` is an ``async`` Python_ client for MediaWiki_ API. It's built on top of asks_ and trio_!

Installation
------------
``mwpy`` development is done using Python 3.8 (because of the nice new ``async`` features of it) but theoretically the library should be Python 3.6+ compatible. Hopefully there will be more solid support for 3.6+ as soon as ``unittest`` and ``mock`` backports become available.

.. code-block::

    pip install mwpy


Notable features
----------------
- Supports setting a custom `User-Agent header`_ for each ``API`` instance.
- Handles `query continuations`_.
- Handles batchcomplete_ signals for prop queries and yeilds the results as soon as a batch is complete.
- Configurable maxlag_. Waits as the  API recommends and then retries.
- Some convenient methods for accessing common API calls, e.g. for recentchanges_, login_, and siteinfo_.
- Lightweight. ``mwpy`` is a thin wrapper. Method signatures are very similar to the parameters in an actual API URL. You can consult MediaWiki's documentation if in doubt about what a parameter does.

.. _MediaWiki: https://www.mediawiki.org/
.. _trio: https://github.com/python-trio/trio
.. _asks: https://github.com/theelous3/asks
.. _User-Agent header: https://www.mediawiki.org/wiki/API:Etiquette#The_User-Agent_header
.. _query continuations: https://www.mediawiki.org/wiki/API:Query#Example_4:_Continuing_queries
.. _batchcomplete: https://www.mediawiki.org/wiki/API:Query#Example_5:_Batchcomplete
.. _recentchanges: https://www.mediawiki.org/wiki/API:RecentChanges
.. _login: https://www.mediawiki.org/wiki/API:Login
.. _siteinfo: https://www.mediawiki.org/wiki/API:Siteinfo
.. _maxlag: https://www.mediawiki.org/wiki/Manual:Maxlag_parameter
.. _Python: https://www.python.org/


