Metadata-Version: 2.1
Name: Pysher
Version: 1.0.5
Summary: Pusher websocket client for python, based on Erik Kulyk's PythonPusherClient
Home-page: https://github.com/nlsdfnbch/Pysher
Author: Nils Diefenbach
Author-email: nlsdfnbch.foss@kolabnow.com
License: MIT
Description: [![PyPI version](https://badge.fury.io/py/Pysher.svg)](https://badge.fury.io/py/Pysher)
        
        Pysher
        =============
        
        `pysher` is a python module for handling pusher websockets. It is based on @ekulyk's `PythonPusherClient`. This fork is meant as 
        a continuation of the project and is actively maintained. A key difference is the dropped support for pre-3.5 Python versions.
        
        Installation
        ------------
        
        Simply run `python setup.py install` - or install via pip `pip install pysher`.
        
        This module depends on websocket-client module available from: <http://github.com/websocket-client/websocket-client>
        
        Example
        -------
        
        Example of using this pusher client to consume websockets::
        
        ```python
        import pysher
        
        # Add a logging handler so we can see the raw communication data
        import logging
        root = logging.getLogger()
        root.setLevel(logging.INFO)
        ch = logging.StreamHandler(sys.stdout)
        root.addHandler(ch)
        
        pusher = pysher.Pusher(appkey)
        
        def  my_func(*args, **kwargs):
            print("processing Args:", args)
            print("processing Kwargs:", kwargs)
        
        # We can't subscribe until we've connected, so we use a callback handler
        # to subscribe when able
        def connect_handler(data):
            channel = pusher.subscribe('mychannel')
            channel.bind('myevent', my_func)
        
        pusher.connection.bind('pusher:connection_established', connect_handler)
        pusher.connect()
        
        while True:
            # Do other things in the meantime here...
            time.sleep(1)
        ```
        
        Sending pusher events to a channel can be done simply using the pusher client supplied by pusher.  You can get it here: <https://github.com/pusher/pusher-http-python>
        
            import pusher
            pusher.app_id = app_id
            pusher.key = appkey
        
            p = pusher.Pusher()
            p['mychannel'].trigger('myevent', 'mydata')
            
        Performance
        ------
        Pysher relies on websocket-client (websocket-client on pyPI, websocket import in code), which by default does utf5 validation in pure python. This is somewhat cpu hungry for lot's of messages (100's of KB/s or more). To optimize this validation consider installing the wsaccel module from pyPI to let websocket-client use C-compiled utf5 validation methods (websocket does this automatically once wsaccel is present and importable).
        
        Thanks
        ------
        A big thanks to @ekulyk for developing the [PythonPusherClient](https://github.com/ekulyk/PythonPusherClient) library.
        
        
        Copyright
        ---------
        
        MTI License - See LICENSE for details.
        
        Changelog
        ---------
        ## Version 1.0.5
        ### Fixed
         - #53 Allow data fields to be empty, thanks to @Rubensei
        
        ## Version 1.0.4
        ### Fixed
         - Reverts a patch introduced in 1.0.3 
        
        ## Version 1.0.2
        ### Fixed
         - #38 Fix missing `ẁs` arg for websocket app callbacks, thanks to @[squgeim](https://github.com/squgeim)
        
        ## Version 1.0.0
        ### Updated
        - #35 Support websocket-client >0.48 only and fix reconnect error, thanks to @[agronholm](https://github.com/agronholm)
        
        **This change may break existing setups and is backwards-incompatible!**
        
        ## Version 0.5.0
        ### Added
         - #14 Added support for cluster configuration, thanks to @[Yvictor](https://github.com/Yvictor)
        
        ### Fixed
         - #30 Require websocket-client version 0.48 or earlier.
         - #24 Signature generation now works as expected, thanks to @[agronholm](https://github.com/agronholm)
         - #31 Name threads of the pysher lib for better debugging, thanks to @[caliloo](https://github.com/caliloo)
        
        ## Version 0.4.2
        ### Fixed:
         - #11 Global Logger settings no longer overridden in Connection logger
        
        ## Version 0.4.0
        ### Added:
         - #8 Add support for WebSocket over HTTP proxy, thanks to @[1tgr](https://github.com/1tgr)
        
        ## Version 0.3.0
        ### Added:
         - #7 Auto-resubscribe to channels after reconnecting, thanks to @[pinealan](https://github.com/pinealan)
        
        ### Fixed:
        - #4, #5 Updated references to the library name, thanks to @[deanmaniatis](https://github.com/deanmaniatis)
        
        ## Version 0.2.0  
        ### Added:
        - #2 Allow for token generated by auth endpoint, thanks to @[wardcraigj](https://github.com/wardcraigj)
        - #3 Allow instantiation with custom host, thanks to @[wardcraigj](https://github.com/wardcraigj)
        
Keywords: pusher websocket client
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries 
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
