Metadata-Version: 2.1
Name: aioxmlrpc
Version: 0.6.3
Summary: Source code of Sequoia API TLDPublic
Home-page: https://github.com/mardiros/aioxmlrpc
License: BSD-3-Clause License
Author: Guillaume Gauvrit
Author-email: guillaume@gauvr.it
Requires-Python: >=3.7,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: httpx (>=0.21.1,<0.22.0)
Description-Content-Type: text/x-rst

=========
aioxmlrpc
=========

.. image:: https://github.com/mardiros/aioxmlrpc/actions/workflows/main.yml/badge.svg
   :target: https://github.com/mardiros/aioxmlrpc/actions/workflows/main.yml


.. image:: https://codecov.io/gh/mardiros/aioxmlrpc/branch/master/graph/badge.svg?token=BR3KttC9uJ
   :target: https://codecov.io/gh/mardiros/aioxmlrpc


Getting Started
===============

Asyncio version of the standard lib ``xmlrpc``

Currently only ``aioxmlrpc.client``, which works like ``xmlrpc.client`` but
with coroutine is implemented.

Fill free to fork me if you want to implement the server part.


``aioxmlrpc`` is based on ``httpx`` for the transport, and just patch
the necessary from the python standard library to get it working.


Installation
------------

::

    pip install aioxmlrpc


Example of usage
----------------

This example show how to print the current version of the Gandi XML-RPC api.


::

    import asyncio
    from aioxmlrpc.client import ServerProxy


    @asyncio.coroutine
    def print_gandi_api_version():
        api = ServerProxy('https://rpc.gandi.net/xmlrpc/')
        result = yield from api.version.info()
        print(result)

    if __name__ == '__main__':
        loop = asyncio.get_event_loop()
        loop.run_until_complete(print_gandi_api_version())
        loop.stop()


Run the example

::

    poetry run examples/gandi_api_version.py

