Metadata-Version: 2.1
Name: trinket
Version: 0.1
Summary: Curio-based web framework
Home-page: UNKNOWN
Author: 
Author-email: 
License: BSD
Description: Trinket
        =======
        
        A Curio HTTP server.
        
        
        Installation
        ------------
        
        Trinket requires python3.7+
        
            $> 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
        -------
        
            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 (unreleased)
        ----------------
        
          * ...
        
Keywords: Curio HTTP
Platform: UNKNOWN
Provides-Extra: test
