Metadata-Version: 2.1
Name: aio-sf-streaming
Version: 0.3.4
Summary: aio_sf_streaming is a simple Python 3.6 asyncio library allowing to connect and receive live notifications from Salesforce.
Home-page: https://github.com/papernest-public/aio_sf_streaming
Author: Christophe Gabard / papernest
Author-email: christophe.gabard@papernest.com
License: MIT
Description: 
        aio-sf-streaming
        ================
        
        .. image:: https://badge.fury.io/py/aio-sf-streaming.svg
            :target: https://badge.fury.io/py/aio-sf-streaming
            :alt: Last release
        
        .. image:: https://readthedocs.org/projects/aio-sf-streaming/badge/?version=latest
            :target: http://aio-sf-streaming.readthedocs.io/en/latest/?badge=latest
            :alt: Documentation Status
        
        .. image:: https://travis-ci.org/papernest-public/aio_sf_streaming.svg?branch=master
            :target: https://travis-ci.org/papernest-public/aio_sf_streaming
            :alt: Build
        
        .. image:: https://coveralls.io/repos/github/papernest-public/aio_sf_streaming/badge.svg
            :target: https://coveralls.io/github/papernest-public/aio_sf_streaming
            :alt: Coverage
        
        .. image:: https://api.codeclimate.com/v1/badges/e0c891514893bdd4c22f/maintainability
           :target: https://codeclimate.com/github/papernest-public/aio_sf_streaming/maintainability
           :alt: Maintainability
        
        .. image:: https://requires.io/github/papernest-public/aio_sf_streaming/requirements.svg?branch=master
            :target: https://requires.io/github/papernest-public/aio_sf_streaming/requirements/?branch=master
            :alt: Requirements Status
        
        .. image:: https://img.shields.io/badge/License-MIT-yellow.svg
            :target: https://opensource.org/licenses/MIT
            :alt: MIT license
        
        *aio-sf-streaming* is a simple Python 3.6 asyncio library allowing to connect
        and receive live notifications from Salesforce. This library is provided to
        you by `papernest <http://www.papernest.com>`_.
        
        See `The Force.com streaming API developer guide <https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/intro_stream.htm>`_
        for more information about the different uses cases and how configure your
        Salesforce organization.
        
        
        Feature
        -------
        
        - `asyncio <https://docs.python.org/3/library/asyncio.html>`_ compatible library
        - Authentication with username/password or refresh token
        - Subscribe to push topics and custom events
        - Receive events pushed by Salesforce
        - Auto-reconnect after too many time of inactivity
        - Replay support: replay events missed while your client is disconnected (see
          `Force.com documentation <https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/using_streaming_api_stateless.htm>`_
          for more information).
        
        *aio-sf-streaming* only support Python 3.6.
        
        
        Getting started
        ---------------
        
        Simple use case:
        
        .. code-block:: python
        
            import asyncio
            from aio_sf_streaming import SimpleSalesforceStreaming
        
            async def print_event():
                # Create client and connect
                async with SimpleSalesforceStreaming(
                                username='my-username',
                                password='my-password',
                                client_id='my-client-id',
                                client_secret='my-client-secret') as client:
                    # Subscribe to some push topics
                    await client.subscribe('/topic/Foo')
                    await client.subscribe('/topic/Bar')
                    async for message in client.events():
                        print(message)
                        # client will wait indefinitely, you can ask to exit
                        if message['channel'] == '/topic/Bar':
                            break
                        else:
                            # You can unsubscribe when you want, too
                            await client.unsubscribe('/topic/Foo')
        
            loop = asyncio.get_event_loop()
            loop.run_until_complete(print_event())
        
        
        Installation
        ------------
        
        Simply use ``pip``:
        
        .. code-block:: bash
        
            $ pip install aio-sf-streaming
        
        
        Documentation
        -------------
        
        An `online documentation is available <http://aio-sf-streaming.readthedocs.io/en/latest/>`_.
        
        
        Evolution
        ---------
        
        The library work well for our use-case then we does not plan a lot of new
        features.
        
        
        Contributing
        ------------
        
        If you find any problem, feel free to fill an issue. Pull-Request are also
        welcomed.
        
        You can install development dependencies with:
        
        .. code-block:: bash
        
            $ pip install -e .[tests,docs]
        
        Release history
        ---------------
        
        - **v. 0.3.0**: Remove date-time parsing of the replay mixin, allow client to
          customize ``ReSubscribeMixin`` retry conditions, allow retry conditions to
          extend duration.
        - **v. 0.2.0**: Add refresh token authentication
        - **v. 0.1.1**: Add documentation and initial typing information.
        - **v. 0.1.0**: Initial release.
        
        
        License
        =======
        
        ``aio-sf-streaming`` is offered under the MIT license.
        
        
Keywords: asyncio aiohttp streaming saleforce push notification
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6.0
Provides-Extra: docs
Provides-Extra: tests
