{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "\n.. image:: https://travis-ci.com/trollfot/trinket.svg?branch=master\n\n=======\nTrinket\n=======\n\n**A Curio HTTP server.**\n\n************\nInstallation\n************\n\nTrinket requires python3.7+\n\n.. code-block:: bash\n\n git clone https://github.com/trollfot/trinket.git\n python3.7 -m venv trinket_env\n source trinket_env/bin/activate\n pip install -e trinket trinket[test]\n pytest trinket/tests\n\n\n*******\nExample\n*******\n\n.. code-block:: python\n \n from trinket import Trinket, Response\n from trinket.response import file_iterator\n from trinket.extensions import logger\n \n bauble = logger(Trinket())\n \n \n @bauble.route('/')\n async def hello(request):\n return Response.raw(b'Hello World !')\n \n \n @bauble.route('/raw', methods=['POST'])\n async def raw(request):\n return Response.raw(b'You got here')\n \n \n @bauble.route('/read', methods=['POST'])\n async def reader(request):\n await request.parse_body()\n files = list(request.files.keys())\n return Response.raw(\"You got here and it's all read: {}\".format(files))\n \n \n @bauble.route('/hello/full/with/{one}/and/{two}')\n async def json(request, one, two): \n response = Response.json({\n 'parameters': f'{one} and {two}',\n 'query': request.query.get('query'),\n 'cookie': request.cookies['test'],\n })\n response.cookies.set(name='bench', value='value')\n return response\n \n \n @bauble.route('/websocket')\n async def serve_websocket(request):\n response = Response.streamer(file_iterator('myfile.ext'))\n return response\n \n \n @bauble.websocket('/chat')\n async def chat(request, websocket):\n while True:\n msg = await websocket.recv()\n for ws in bauble.websockets:\n if ws is not websocket:\n await ws.send(msg)\n \n \n bauble.start()\n\n\n***************\nAcknowledgments\n***************\n\nTrinket relies heavily on packages from https://github.com/pyrates:\nvery good re-useable components with Cython-improved performances.\n\n\n*********\nChangelog\n*********\n\n0.1.3 (2019-01-24)\n==================\n\n* Pinned specific package versions\n* Updated to use the last version of wsproto (0.13)\n* The Trinket application now inherits from dict to allow arbitrary storage\n* Decoupled the TCP serving/socket creation from the actual application\n\n0.1.2 (2019-01-18)\n==================\n\n* Updated distribution files\n\n0.1.1 (2019-01-18)\n==================\n\n* Added tests and testing utilities\n* Fixed missing imports\n\n0.1 (2019-01-17)\n================\n\n* Initial release\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "Curio HTTP", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "trinket", "package_url": "https://pypi.org/project/trinket/", "platform": "", "project_url": "https://pypi.org/project/trinket/", "project_urls": null, "release_url": "https://pypi.org/project/trinket/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "Curio-based web framework", "version": "0.1.3" }, "last_serial": 4735950, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bffa5f0c292d82cc366ffc12bf886466", "sha256": "ce38c789f39e37423a55a12a9f94a555f2f6b8e15061f52ce1d9ef7f994e332e" }, "downloads": -1, "filename": "trinket-0.1.tar.gz", "has_sig": false, "md5_digest": "bffa5f0c292d82cc366ffc12bf886466", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11982, "upload_time": "2019-01-17T23:40:41", "url": "https://files.pythonhosted.org/packages/84/06/b9058d2f5d7ed4b2945d33856c5d77ef80e4360a1c9536d72516975b633c/trinket-0.1.tar.gz" } ], "0.1.1": [], "0.1.2": [ { "comment_text": "", "digests": { "md5": "761ab9c737b0763d7486787708240b7d", "sha256": "3a5695770c77a5e09c0f76c144f8cd56a2655e91ce655fa9f3975788c210a2e9" }, "downloads": -1, "filename": "trinket-0.1.2.tar.gz", "has_sig": false, "md5_digest": "761ab9c737b0763d7486787708240b7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12503, "upload_time": "2019-01-18T19:22:45", "url": "https://files.pythonhosted.org/packages/1d/3d/7d135d8ef6bddab88139fc0ef2838c34f088f980982733ea4878668a5f5b/trinket-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b59ddeefc4241f79873d54c6408ce891", "sha256": "3b38da188010427554e467e0d91ad59ad49afe4e93964afab5e95342f00f05df" }, "downloads": -1, "filename": "trinket-0.1.3.tar.gz", "has_sig": false, "md5_digest": "b59ddeefc4241f79873d54c6408ce891", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18894, "upload_time": "2019-01-24T14:36:44", "url": "https://files.pythonhosted.org/packages/6e/b6/42647cf09bd3884f6e5212b41413d05988d684bf15ccc8663303538c4d1c/trinket-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b59ddeefc4241f79873d54c6408ce891", "sha256": "3b38da188010427554e467e0d91ad59ad49afe4e93964afab5e95342f00f05df" }, "downloads": -1, "filename": "trinket-0.1.3.tar.gz", "has_sig": false, "md5_digest": "b59ddeefc4241f79873d54c6408ce891", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18894, "upload_time": "2019-01-24T14:36:44", "url": "https://files.pythonhosted.org/packages/6e/b6/42647cf09bd3884f6e5212b41413d05988d684bf15ccc8663303538c4d1c/trinket-0.1.3.tar.gz" } ] }