Metadata-Version: 2.1
Name: trinket
Version: 0.1.2
Summary: Curio-based web framework
Home-page: UNKNOWN
Author: 
Author-email: 
License: BSD
Description: 
        .. image:: https://travis-ci.com/trollfot/trinket.svg?branch=master
        
        =======
        Trinket
        =======
        
        **A Curio HTTP server.**
        
        ************
        Installation
        ************
        
        Trinket requires python3.7+
        
        .. code-block:: bash
        
            git clone https://github.com/trollfot/trinket.git
            python3.7 -m venv trinket_env
            source trinket_env/bin/activate
            pip install -e trinket trinket[test]
            pytest trinket/tests
        
        
        *******
        Example
        *******
        
        .. code-block:: python
            
            from trinket import Trinket, Response
            from trinket.response import file_iterator
            from trinket.extensions import logger
            
            bauble = logger(Trinket())
            
            
            @bauble.route('/')
            async def hello(request):
                return Response.raw(b'Hello World !')
            
            
            @bauble.route('/feed', methods=['POST'])
            async def feed(request):
                return Response.raw(b'You got here')
            
            
            @bauble.route('/read', methods=['POST'])
            async def feed(request):
                await request.parse_body()
                files = list(request.files.keys())
                return Response.raw("You got here and it's all read: {}".format(files))
            
            
            @bauble.route('/hello/full/with/{one}/and/{two}')
            async def json(request, one, two):    
                response = Response.json({
                    'parameters': f'{one} and {two}',
                    'query': request.query.get('query'),
                    'cookie': request.cookies['test'],
                })
                response.cookies.set(name='bench', value='value')
                return response
            
            
            @bauble.route('/websocket')
            async def serve_websocket(request):
                response = Response.streamer(file_iterator('myfile.ext'))
                return response
            
            
            @bauble.websocket('/chat')
            async def feed(request, websocket):
                while True:
                    msg = await websocket.recv()
                    for ws in bauble.websockets:
                        if ws is not websocket:
                            await ws.send(msg)
            
            
            bauble.start()
        
        
        ***************
        Acknowledgments
        ***************
        
        Trinket relies heavily on packages from https://github.com/pyrates:
        very good re-useable components with Cython-improved performances.
        
        
        *********
        Changelog
        *********
        
        0.1.2 (2019-01-18)
        ==================
        
        * Updated distribution files
        
        0.1.1 (2019-01-18)
        ==================
        
        * Added tests and testing utilities
        * Fixed missing imports
        
        0.1 (2019-01-17)
        ================
        
        * Initial release
        
Keywords: Curio HTTP
Platform: UNKNOWN
Provides-Extra: test
