{ "info": { "author": "Ashley Sommer", "author_email": "ashleysommer@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Sanic Plugins Framework\n=======================\n\n|Build Status| |Latest Version| |Supported Python versions| |License|\n\nWelcome to the Sanic Plugins Framework README file.\n\nThe Sanic Plugins Framework (SPF) is a lightweight python library aimed at making it as simple as possible to build\nplugins for the Sanic Async HTTP Server.\n\nThe SPF provides a `SanicPlugin` python base object that your plugin can build upon. It is set up with all of the basic\nfunctionality that the majority of Sanic Plugins will need.\n\nA SPF Sanic Plugin is implemented in a similar way to Sanic Blueprints. You can use convenience decorators to set up all\nof the routes, middleware, exception handlers, and listeners your plugin uses in the same way you would a blueprint,\nand any Application developer can import your plugin and register it into their application.\n\nThe Sanic Plugins Framework is more than just a Blueprints-like system for Plugins. It provides an enhanced middleware\nsystem, and manages Context objects.\n\nThe Enhanced Middleware System\n------------------------------\n\nThe Middleware system in the Sanic Plugins Framework both builds upon and extends the native Sanic middleware system.\nRather than simply having two middleware queues ('request', and 'response'), the middleware system in SPF uses five\nadditional queues.\n\n- Request-Pre: These middleware run *before* the application's own request middleware.\n- Request-Post: These middleware run *after* the application's own request middleware.\n- Response-Pre: These middleware run *before* the application's own response middleware.\n- Response-Post: These middleware run *after* the application's own response middleware.\n- Cleanup: These middleware run *after* all of the above middleware, and are run after a response is sent, and are run even if response is None.\n\nSo as a plugin developer you can choose whether you need your middleware to be executed before or after the\napplication's own middleware.\n\nYou can also assign a priority to each of your plugin's middleware so you can more precisely control the order in which\nyour middleware is executed, especially when the application is using multiple plugins.\n\nThe Context Object Manager\n--------------------------\n\nOne feature that many find missing from Sanic is a context object. SPF provides multiple context objects that can be\nused for different purposes.\n\n- A shared context: All plugins registered in the SPF have access to a shared, persistent context object, which anyone can read and write to.\n- A per-request context: All plugins get access to a shared temporary context object anyone can read and write to that is created at the start of a request, and deleted when a request is completed.\n- A per-plugin context: All plugins get their own private persistent context object that only that plugin can read and write to.\n- A per-plugin per-request context: All plugins get a temporary context object that is created at the start of a request, and deleted when a request is completed.\n\n\nInstallation\n------------\n\nInstall the extension with using pip, or easy\\_install.\n\n.. code:: bash\n\n $ pip install -U sanic-plugins-framework\n\nUsage\n-----\n\nA simple plugin written using the Sanic Plugins Framework will look like this:\n\n.. code:: python\n\n # Source: my_plugin.py\n from spf import SanicPlugin\n from sanic.response import text\n\n class MyPlugin(SanicPlugin):\n def __init__(self, *args, **kwargs):\n super(MyPlugin, self).__init__(*args, **kwargs)\n # do pre-registration plugin init here.\n # Note, context objects are not accessible here.\n\n def on_registered(self, context, reg, *args, **kwargs):\n # do post-registration plugin init here\n # We have access to our context and the shared context now.\n context.my_private_var = \"Private variable\"\n shared = c.shared\n shared.my_shared_var = \"Shared variable\"\n\n my_plugin = MyPlugin()\n\n # You don't need to add any parameters to @middleware, for default behaviour\n # This is completely compatible with native Sanic middleware behaviour\n @my_plugin.middleware\n def my_middleware(request)\n h = request.headers\n #Do request middleware things here\n\n #You can tune the middleware priority, and add a context param like this\n #Priority must be between 0 and 9 (inclusive). 0 is highest priority, 9 the lowest.\n #If you don't specify an 'attach_to' parameter, it is a 'request' middleware\n @my_plugin.middleware(priority=6, with_context=True)\n def my_middleware2(request, context):\n context['test1'] = \"test\"\n print(\"Hello world\")\n\n #Add attach_to='response' to make this a response middleware\n @my_plugin.middleware(attach_to='response', with_context=True)\n def my_middleware3(request, response, context):\n # Do response middleware here\n return response\n\n #Add relative='pre' to make this a response middleware run _before_ the\n #application's own response middleware\n @my_plugin.middleware(attach_to='response', relative='pre', with_context=True)\n def my_middleware4(request, response, context):\n # Do response middleware here\n return response\n\n #Add attach_to='cleanup' to make this run even when the Response is None.\n #This queue is fired _after_ response is already sent to the client.\n @my_plugin.middleware(attach_to='cleanup', with_context=True)\n def my_middleware5(request, context):\n # Do per-request cleanup here.\n return None\n\n #Add your plugin routes here. You can even choose to have your context passed in to the route.\n @my_plugin.route('/test_plugin', with_context=True)\n def t1(request, context):\n words = context['test1']\n return text('from plugin! {}'.format(words))\n\n\nThe Application developer can use your plugin in their code like this:\n\n.. code:: python\n\n # Source: app.py\n from sanic import Sanic\n from spf import SanicPluginsFramework\n from sanic.response import text\n import my_plugin\n\n app = Sanic(__name__)\n spf = SanicPluginsFramework(app)\n assoc = spf.register_plugin(my_plugin)\n\n # ... rest of user app here\n\n\nThere is support for using a config file to define the list of plugins to load when SPF is added to an App.\n\n.. code:: ini\n\n # Source: spf.ini\n [plugins]\n MyPlugin\n AnotherPlugin=ExampleArg,False,KWArg1=True,KWArg2=33.3\n\n.. code:: python\n\n # Source: app.py\n app = Sanic(__name__)\n app.config['SPF_LOAD_INI'] = True\n app.config['SPF_INI_FILE'] = 'spf.ini'\n spf = SanicPluginsFramework(app)\n\n # We can get the assoc object from SPF, it is already registered\n assoc = spf.get_plugin_assoc('MyPlugin')\n\nOr if the developer prefers to do it the old way, (like the Flask way), they can still do it like this:\n\n.. code:: python\n\n # Source: app.py\n from sanic import Sanic\n from sanic.response import text\n from my_plugin import MyPlugin\n\n app = Sanic(__name__)\n # this magically returns your previously initialized instance\n # from your plugin module, if it is named `my_plugin` or `instance`.\n assoc = MyPlugin(app)\n\n # ... rest of user app here\n\nContributing\n------------\n\nQuestions, comments or improvements? Please create an issue on\n`Github `__\n\nCredits\n-------\n\nAshley Sommer `ashleysommer@gmail.com `__\n\n\n.. |Build Status| image:: https://api.travis-ci.org/ashleysommer/sanicpluginsframework.svg?branch=master\n :target: https://travis-ci.org/ashleysommer/sanicpluginsframework\n\n.. |Latest Version| image:: https://img.shields.io/pypi/v/Sanic-Plugins-Framework.svg\n :target: https://pypi.python.org/pypi/Sanic-Plugins-Framework/\n\n.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/Sanic-Plugins-Framework.svg\n :target: https://img.shields.io/pypi/pyversions/Sanic-Plugins-Framework.svg\n\n.. |License| image:: http://img.shields.io/:license-mit-blue.svg\n :target: https://pypi.python.org/pypi/Sanic-Plugins-Framework/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ashleysommer/sanicpluginsframework", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Sanic-Plugins-Framework", "package_url": "https://pypi.org/project/Sanic-Plugins-Framework/", "platform": "any", "project_url": "https://pypi.org/project/Sanic-Plugins-Framework/", "project_urls": { "Homepage": "https://github.com/ashleysommer/sanicpluginsframework" }, "release_url": "https://pypi.org/project/Sanic-Plugins-Framework/0.8.2/", "requires_dist": [ "sanic (>=0.8.3)" ], "requires_python": "", "summary": "Doing all of the boilerplate to create a Sanic Plugin, so you don't have to.", "version": "0.8.2" }, "last_serial": 5631990, "releases": { "0.2.0.dev20171102": [ { "comment_text": "", "digests": { "md5": "f8791be54e9ef1eabdf495f527c09aca", "sha256": "aea2fa3544f2824c11f7f74674d35eebd6c3e4909a48898f40aa42baabe8bcdd" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.2.0.dev20171102-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8791be54e9ef1eabdf495f527c09aca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14106, "upload_time": "2017-11-02T01:30:58", "url": "https://files.pythonhosted.org/packages/61/6f/d6374cb82ca1f7879e910e0246b00f5a47f53785542513b53dc4f203300c/Sanic_Plugins_Framework-0.2.0.dev20171102-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0074d2cf53c61e3960208a442249627", "sha256": "c5cf08305a0a8f89e32311e9fc4ffb0c84b316ff4cc525ba683d2c1c34595da6" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.2.0.dev20171102.tar.gz", "has_sig": false, "md5_digest": "c0074d2cf53c61e3960208a442249627", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12704, "upload_time": "2017-11-02T01:30:59", "url": "https://files.pythonhosted.org/packages/a5/2f/29d43e85dba76cc6b1e2358a2ed6eb86411743b69a4acaf868732088d41f/Sanic-Plugins-Framework-0.2.0.dev20171102.tar.gz" } ], "0.3.0.dev20171102": [ { "comment_text": "", "digests": { "md5": "bd0964e803954dc53be3146482947c71", "sha256": "e027ab00f6bca8a0d13023c0df3617d04287a5f50a5f9ab8c264df2667cbd6cc" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.3.0.dev20171102-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bd0964e803954dc53be3146482947c71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14976, "upload_time": "2017-11-02T04:19:07", "url": "https://files.pythonhosted.org/packages/31/72/5fbefc5863b5c6b093fc81328141bfc280c0bf89f38e12f2b69229240b1b/Sanic_Plugins_Framework-0.3.0.dev20171102-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4b80cbfad1561dc3bdf25ce40dbf425", "sha256": "7cc8905803a3cc7d1a16e5b51c704895c7935bfdd73745ed19395ce7a71e6734" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.3.0.dev20171102.tar.gz", "has_sig": false, "md5_digest": "c4b80cbfad1561dc3bdf25ce40dbf425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13606, "upload_time": "2017-11-02T04:19:08", "url": "https://files.pythonhosted.org/packages/62/94/c1f0e8b8617973bdac8ae3227d646d3d51bbe176b6d045a47e82a024d2c8/Sanic-Plugins-Framework-0.3.0.dev20171102.tar.gz" } ], "0.3.1.dev20171102": [ { "comment_text": "", "digests": { "md5": "554c85d11144707f4f3c248c3bd9b795", "sha256": "2f09e30b33513522e1ec3619aeb0332a5b188d2ca04bb3cf9abb3604bee4ca79" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.3.1.dev20171102-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "554c85d11144707f4f3c248c3bd9b795", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14989, "upload_time": "2017-11-02T04:42:23", "url": "https://files.pythonhosted.org/packages/b5/10/7ea598c05aa5c0fc814870ee208bb66e791e2866753e44550986d9ec5a82/Sanic_Plugins_Framework-0.3.1.dev20171102-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b7140a5bbb76022f8163abbea0dd11c", "sha256": "b2bf5e049dce83cce2bed659db698df1a8c457a9af01911d9fed539427ed302c" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.3.1.dev20171102.tar.gz", "has_sig": false, "md5_digest": "0b7140a5bbb76022f8163abbea0dd11c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13607, "upload_time": "2017-11-02T04:42:24", "url": "https://files.pythonhosted.org/packages/f2/1d/17049745ed69604df645f513dc7cab4dd51594a871d3fbea4dfc5c80e66a/Sanic-Plugins-Framework-0.3.1.dev20171102.tar.gz" } ], "0.3.2.dev20171102": [ { "comment_text": "", "digests": { "md5": "a4d7caa9ed7106136c14b7f5d90f393d", "sha256": "98e5d3bb3c1440ea0a135a237b4a247beb7287706e08f29a198f8d0071121666" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.3.2.dev20171102-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a4d7caa9ed7106136c14b7f5d90f393d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15588, "upload_time": "2017-11-02T06:54:22", "url": "https://files.pythonhosted.org/packages/1e/63/22f38cf292ca6dbd97d42c89cfebcd4fa5be101a564fddf7002230118558/Sanic_Plugins_Framework-0.3.2.dev20171102-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "198ea1321ff96038609dd9fa60e3f3d9", "sha256": "579f4da7cf28df5b21d25d7acac94b791339890213e916cf93f70b11fc78d3fe" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.3.2.dev20171102.tar.gz", "has_sig": false, "md5_digest": "198ea1321ff96038609dd9fa60e3f3d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14254, "upload_time": "2017-11-02T06:54:23", "url": "https://files.pythonhosted.org/packages/5e/9d/56b96f165913b3a72d4619da4db8e7e5cbfac31b5fe50b56e7e6d44f7673/Sanic-Plugins-Framework-0.3.2.dev20171102.tar.gz" } ], "0.3.3.dev20171102": [ { "comment_text": "", "digests": { "md5": "317eb83c685ee57abf4a36ff0dbfb761", "sha256": "566238873997c120f8d479b7873183ebe554dc3f94dba5c48ee9d4ee3d075409" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.3.3.dev20171102-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "317eb83c685ee57abf4a36ff0dbfb761", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16266, "upload_time": "2017-11-02T12:35:11", "url": "https://files.pythonhosted.org/packages/e1/a8/99c9e6e478d3bdbdd2c8192946f587ebfe44930401c8fdb6800944c2f952/Sanic_Plugins_Framework-0.3.3.dev20171102-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e9dc0541d7788bd98f1f761a8204ddc", "sha256": "9326f826b0d004cd4dac5df8610b27a4fd268bb1fe418d5611281bce9bdd641d" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.3.3.dev20171102.tar.gz", "has_sig": false, "md5_digest": "5e9dc0541d7788bd98f1f761a8204ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14962, "upload_time": "2017-11-02T12:35:12", "url": "https://files.pythonhosted.org/packages/d8/b7/2f131af94a5df51319690a5a4025e6deb1880d21771436e929e7b18ab893/Sanic-Plugins-Framework-0.3.3.dev20171102.tar.gz" } ], "0.4.0.dev20171103": [ { "comment_text": "", "digests": { "md5": "76897528cc1de16ab8f269277a9bc84a", "sha256": "60bee1fcd70bf7776b3ec250ccdb279467e17aa042ee5324a88a18fed375b3cc" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.4.0.dev20171103-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "76897528cc1de16ab8f269277a9bc84a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17727, "upload_time": "2017-11-03T05:05:14", "url": "https://files.pythonhosted.org/packages/f0/97/68507120736faf30a2ec1e2bb8289c42be93537b49ae0f3add80993f804c/Sanic_Plugins_Framework-0.4.0.dev20171103-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e6a9873034ba6eef7b45fc6c36ac858", "sha256": "cc39c86c73b4981c680cf319c0247a1d0782a400188a1ef52a0b2af2b931e61d" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.4.0.dev20171103.tar.gz", "has_sig": false, "md5_digest": "1e6a9873034ba6eef7b45fc6c36ac858", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15499, "upload_time": "2017-11-03T05:05:15", "url": "https://files.pythonhosted.org/packages/3b/9a/e4f79b8ebb7b4e9114d56af8286f556bcbcf687e88c398215122c35f259f/Sanic-Plugins-Framework-0.4.0.dev20171103.tar.gz" } ], "0.4.1.dev20171103": [ { "comment_text": "", "digests": { "md5": "adaf0b5404f3795be1f988d9128cb845", "sha256": "807d02ddcae871dc0c3e7f4e9075d99a7935ee8e6f36683a3aea3aa45d011b52" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.4.1.dev20171103-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "adaf0b5404f3795be1f988d9128cb845", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17732, "upload_time": "2017-11-03T07:26:17", "url": "https://files.pythonhosted.org/packages/f6/5f/f1fe2ff41210c170595147cf5894197bfcc847663f87ffb205272c81b24d/Sanic_Plugins_Framework-0.4.1.dev20171103-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "542e2cb01d70d980d85439f962798672", "sha256": "15c95cfe7dd280a52325400f35b59d3d11c409fff7dcc0dea29dd2207dab1ce9" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.4.1.dev20171103.tar.gz", "has_sig": false, "md5_digest": "542e2cb01d70d980d85439f962798672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15511, "upload_time": "2017-11-03T07:26:18", "url": "https://files.pythonhosted.org/packages/4f/87/4dfc943773de20e42feb89ff737798641f5911980b44b672b82a4a7330ee/Sanic-Plugins-Framework-0.4.1.dev20171103.tar.gz" } ], "0.4.2.dev20171106": [ { "comment_text": "", "digests": { "md5": "b4c6620ca078c499f2d6df2ece5f8c49", "sha256": "e0fbbc58172d962c2eab8e576e34bec1997b030690e4c7dbb6491519569fbe3b" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.4.2.dev20171106-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4c6620ca078c499f2d6df2ece5f8c49", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17869, "upload_time": "2017-11-07T01:33:50", "url": "https://files.pythonhosted.org/packages/fe/4a/68c851c409a9852cd64f0b28162c158d3aa04fcd4dbb62d032a194802c20/Sanic_Plugins_Framework-0.4.2.dev20171106-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09271265fa2f38082f90c2b4d73843d9", "sha256": "6fe23b4c3ffb0ebef192137828373d5520c2aed1e450414efba082a270bb15b3" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.4.2.dev20171106.tar.gz", "has_sig": false, "md5_digest": "09271265fa2f38082f90c2b4d73843d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15647, "upload_time": "2017-11-07T01:33:51", "url": "https://files.pythonhosted.org/packages/ae/04/ae636faca05db3ae11a8a6f8770a310376dae833dc21840d6ea7b1e56c44/Sanic-Plugins-Framework-0.4.2.dev20171106.tar.gz" } ], "0.4.4.dev20171107": [ { "comment_text": "", "digests": { "md5": "72d7838a7056e85773303b65fcbf6ecd", "sha256": "133d626ab334f27188e9401b9a92ff613b487f63990515cedf9c07a0b8436be4" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.4.4.dev20171107-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "72d7838a7056e85773303b65fcbf6ecd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18208, "upload_time": "2017-11-07T05:05:39", "url": "https://files.pythonhosted.org/packages/23/26/ddcb2f560a93b5fb545d11ebc64a99fbb0f3cb20e680633702c216b55c0f/Sanic_Plugins_Framework-0.4.4.dev20171107-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a11d720f32d6c42229abbab44d0d2c0f", "sha256": "3e04e22e5674036d25ac051d46e5624c3b4bb27a78eeeef6e5323fc72ac7f9ab" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.4.4.dev20171107.tar.gz", "has_sig": false, "md5_digest": "a11d720f32d6c42229abbab44d0d2c0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15981, "upload_time": "2017-11-07T05:05:41", "url": "https://files.pythonhosted.org/packages/76/6a/830375b9e9cea4e6ada3fb6e5d9997237e7edbf34d4dc13cb96837d04adb/Sanic-Plugins-Framework-0.4.4.dev20171107.tar.gz" } ], "0.4.5.dev20171113": [ { "comment_text": "", "digests": { "md5": "7ff09ba8e8521830a2bc5bec46ecc4b7", "sha256": "0d086f50ccd6330a8c22efec7d5c393c144b6e29c3c77692cb6cb5ac6780c7d1" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.4.5.dev20171113-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ff09ba8e8521830a2bc5bec46ecc4b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18208, "upload_time": "2017-11-13T00:37:30", "url": "https://files.pythonhosted.org/packages/a4/10/2068ee9c7aa2fe7795533b0c9209cc484ed2b6c58058e9d90dd22ee4656d/Sanic_Plugins_Framework-0.4.5.dev20171113-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcaf935fa085557a0bd1f1db4535f857", "sha256": "4cd13bd6924f447eab096791546cdf6eebfb2f4f04bba628adb47cb53f2ff76d" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.4.5.dev20171113.tar.gz", "has_sig": false, "md5_digest": "fcaf935fa085557a0bd1f1db4535f857", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15987, "upload_time": "2017-11-13T00:37:32", "url": "https://files.pythonhosted.org/packages/0d/59/71b435d1117764a3af2e4bed9973c70096f1287541f5b7a2ce7e565cf029/Sanic-Plugins-Framework-0.4.5.dev20171113.tar.gz" } ], "0.5.0.dev20171225": [ { "comment_text": "", "digests": { "md5": "eda088e3fe364543e8640739594706f3", "sha256": "e7a262c16f39051826b58c9146eeebd23fb98df4a8e9a05ce436397d939a1756" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.5.0.dev20171225-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eda088e3fe364543e8640739594706f3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18305, "upload_time": "2017-12-25T01:25:21", "url": "https://files.pythonhosted.org/packages/49/82/cb8420a0521bdc27d7aacd702ea7d7bdbe94a052645beb0b352805df9b20/Sanic_Plugins_Framework-0.5.0.dev20171225-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56d8505fe6645e6b2cfe9909bba57162", "sha256": "41d5318bcc41f88e188bc6f3019dc90d9a301206ede0c437e3f415b3cdd7dc4f" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.5.0.dev20171225.tar.gz", "has_sig": false, "md5_digest": "56d8505fe6645e6b2cfe9909bba57162", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16076, "upload_time": "2017-12-25T01:25:24", "url": "https://files.pythonhosted.org/packages/35/62/9c4254fa5d94218b6f631384977bed62d4c8d09d5da8357aa8e3d9ba57bf/Sanic-Plugins-Framework-0.5.0.dev20171225.tar.gz" } ], "0.5.2.dev20180201": [ { "comment_text": "", "digests": { "md5": "c50c0a340f03fcf049682448797be208", "sha256": "40cac59d12d8a14c0292b02404dfc4f140db63a9323743189958f8b7a3983622" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.5.2.dev20180201-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c50c0a340f03fcf049682448797be208", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18331, "upload_time": "2018-02-01T02:51:45", "url": "https://files.pythonhosted.org/packages/15/98/a63393c660f5792b15e77940a6061eee2163dea025cf6d806a0c8e7078f6/Sanic_Plugins_Framework-0.5.2.dev20180201-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5af4b3ffca242ffc86a29015d53dac7f", "sha256": "e50105f34d29d4c06e92799971687770868e06203e98c1bca93317a10e8eb395" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.5.2.dev20180201.tar.gz", "has_sig": false, "md5_digest": "5af4b3ffca242ffc86a29015d53dac7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16317, "upload_time": "2018-02-01T02:51:47", "url": "https://files.pythonhosted.org/packages/1d/1c/9b28d14e38510e83e500da8a455300d2d6171e43ada16dcb600799c950eb/Sanic-Plugins-Framework-0.5.2.dev20180201.tar.gz" } ], "0.6.0.dev20180616": [ { "comment_text": "", "digests": { "md5": "41e9dc89f9f6f5d110a76e583d2c9519", "sha256": "f5ab64c29fb232dafd7418c772417f54b5572b9ab50bc3afe80f54cdc5bc2198" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.0.dev20180616-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41e9dc89f9f6f5d110a76e583d2c9519", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15304, "upload_time": "2018-06-15T22:45:52", "url": "https://files.pythonhosted.org/packages/90/c3/8dff6907a72a89552f876db4bb06d69ad32037d2742027795c0ba2885f8a/Sanic_Plugins_Framework-0.6.0.dev20180616-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2d55b64604e22813795861073dde670", "sha256": "e2edac8bc4a1b882bf03d50faa5359c2615f97108368957ac7a834081862437b" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.0.dev20180616.tar.gz", "has_sig": false, "md5_digest": "c2d55b64604e22813795861073dde670", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16851, "upload_time": "2018-06-15T22:45:53", "url": "https://files.pythonhosted.org/packages/f6/62/85c2ce9780e3bb7099c56bed99d48dcd502a42b42aee035b0f2cdda636f1/Sanic-Plugins-Framework-0.6.0.dev20180616.tar.gz" } ], "0.6.1.dev20180616": [ { "comment_text": "", "digests": { "md5": "44481d87931fd1933f76561a45b2db7b", "sha256": "434b2703d9c55f8539d4efc86bafbad2915ff3197399a7f474c7d7fce988a383" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.1.dev20180616-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44481d87931fd1933f76561a45b2db7b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15310, "upload_time": "2018-06-16T05:22:46", "url": "https://files.pythonhosted.org/packages/7e/f9/43c4e5aadfa03612c7d1149a7ce50df6c04cabc4c882dcb8aa918bfcf230/Sanic_Plugins_Framework-0.6.1.dev20180616-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bcedd47d5e5f1335cfa2f7b61b40e795", "sha256": "c535bfc9ea8ee838fce37f3a28ea2d2fe54359a8d842e43c4e610b4319c5d837" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.1.dev20180616.tar.gz", "has_sig": false, "md5_digest": "bcedd47d5e5f1335cfa2f7b61b40e795", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16849, "upload_time": "2018-06-16T05:22:47", "url": "https://files.pythonhosted.org/packages/b5/e4/ac5aa2b83d203b6109c0152e64b6f5288ac0f6025fdd2471392a41c576be/Sanic-Plugins-Framework-0.6.1.dev20180616.tar.gz" } ], "0.6.2.dev20180617": [ { "comment_text": "", "digests": { "md5": "97d0a2d5304e20a4e4113fbfa203a0e7", "sha256": "839252cdd6385fb4ea3c66508e30770a742f56b89071a2cbd40996b234c7024f" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.2.dev20180617-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "97d0a2d5304e20a4e4113fbfa203a0e7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15435, "upload_time": "2018-06-17T11:22:19", "url": "https://files.pythonhosted.org/packages/55/16/73e3febf070477233efca9da72f36a91a2bab3cee29044de0c71c0543aef/Sanic_Plugins_Framework-0.6.2.dev20180617-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4004386c80677c3e354ce1f63c8c154c", "sha256": "d2af389afc241c4cf6b9a7941061b0350b6bda829f0ff1e12decaa450367cfbf" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.2.dev20180617.tar.gz", "has_sig": false, "md5_digest": "4004386c80677c3e354ce1f63c8c154c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16950, "upload_time": "2018-06-17T11:22:20", "url": "https://files.pythonhosted.org/packages/87/db/14a06e7355fb03dea96ef93e95827a0c5a8d427e5e92cab6446f16524a1b/Sanic-Plugins-Framework-0.6.2.dev20180617.tar.gz" } ], "0.6.3.dev20180717": [ { "comment_text": "", "digests": { "md5": "c8f900f3771f16b9df622350ab9d5271", "sha256": "09c40e2ca864012682843b467157c44454dbe46bcf53951081c87ba2d432aad4" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.3.dev20180717-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c8f900f3771f16b9df622350ab9d5271", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15493, "upload_time": "2018-07-17T22:10:02", "url": "https://files.pythonhosted.org/packages/31/f3/e2572dc9f63b2933693c3d7bf19c6cc27c72c784e5ec6c66eb9b572ad266/Sanic_Plugins_Framework-0.6.3.dev20180717-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a0c37fdbf40a5b9426a0de8dcb9b9d3", "sha256": "2d5a2a22e3dbcf3f79e245193def6bd3039948879bbf75a6203e4d7cf59a2dee" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.3.dev20180717.tar.gz", "has_sig": false, "md5_digest": "4a0c37fdbf40a5b9426a0de8dcb9b9d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17011, "upload_time": "2018-07-17T22:10:03", "url": "https://files.pythonhosted.org/packages/f0/8a/4a2a2656b11026f50629a19eca36e48e66a8410314794afb74de242c6d5e/Sanic-Plugins-Framework-0.6.3.dev20180717.tar.gz" } ], "0.6.4.dev20181101": [ { "comment_text": "", "digests": { "md5": "7b6bdb17f38104323ca9c52916b647b5", "sha256": "115b6678b281e93452c83eacda31d64997a09859d190d305568a9fd547c36fe8" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.4.dev20181101-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b6bdb17f38104323ca9c52916b647b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18782, "upload_time": "2018-11-01T06:36:32", "url": "https://files.pythonhosted.org/packages/6d/87/d3cc258c3b2d35c9c80ac492d05c938464729375f4ad46a738554f7c73be/Sanic_Plugins_Framework-0.6.4.dev20181101-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "baaa639f70e541a0e09a7b4cfc244502", "sha256": "d31e97b27726af7931be6e5b0e7c72d0352ad134b5f3a6f94ff8f6794cecc4c9" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.4.dev20181101.tar.gz", "has_sig": false, "md5_digest": "baaa639f70e541a0e09a7b4cfc244502", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18653, "upload_time": "2018-11-01T06:36:33", "url": "https://files.pythonhosted.org/packages/fb/c4/b8f7b4cd31c00fbe59f3cc5c49a78aeea6c55be1a5092f2481988c071598/Sanic-Plugins-Framework-0.6.4.dev20181101.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "0b468bf3356256d7d509f974283cdcd7", "sha256": "0f0b7ce3689330decd9d9b26f2ad739f0dd42cfe978a2df613a555a32441ca7d" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b468bf3356256d7d509f974283cdcd7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18620, "upload_time": "2018-11-15T02:14:54", "url": "https://files.pythonhosted.org/packages/df/7f/8d4b1ceb25b82e43eee41713630bb0e11229ee46441375da677b082360ae/Sanic_Plugins_Framework-0.6.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed0e62cb856de58b028ee0d39ee5b788", "sha256": "281578ec93eac798368abba17d3e88b5046e0bfe8fb02d4c1adf89979f9d143b" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.5.tar.gz", "has_sig": false, "md5_digest": "ed0e62cb856de58b028ee0d39ee5b788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18629, "upload_time": "2018-11-15T02:14:56", "url": "https://files.pythonhosted.org/packages/4a/16/c46aeb33f24094bd009a2fe81be7b8cd7e3d474c3f33ec5d6e4b55642472/Sanic-Plugins-Framework-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "333c92fee0afe4c201a1283028d9e4d3", "sha256": "78dd080a086f3b778ea30292fd2fc30c77b662b738596f427592878bed74d486" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "333c92fee0afe4c201a1283028d9e4d3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19110, "upload_time": "2019-03-02T07:00:32", "url": "https://files.pythonhosted.org/packages/91/6f/691549b2b05c49722aacba7419f0a066e151e3438bd43cb0dcc6846e119d/Sanic_Plugins_Framework-0.6.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23d10b0f1e1fa8c29da10ba13789d42e", "sha256": "99b388a1856f1c70bcfa209e80b01361299b14f2e4a2e3ee45bdf84770450baf" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.6.tar.gz", "has_sig": false, "md5_digest": "23d10b0f1e1fa8c29da10ba13789d42e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16705, "upload_time": "2019-03-02T07:00:33", "url": "https://files.pythonhosted.org/packages/e6/08/4c6049c5bcf9e8d5841f5e51bcf377c0386b377e9a378ed99b3c5f69bf58/Sanic-Plugins-Framework-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "4ae38105cbf34d5db4ac3d1e726f981a", "sha256": "d07341e9c2d6958cbdedcf971f592d20873a0be63057a1b1b65ce23a3dc09b76" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.6.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ae38105cbf34d5db4ac3d1e726f981a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19182, "upload_time": "2019-03-03T04:43:51", "url": "https://files.pythonhosted.org/packages/36/cd/85c399eba0f1064e5728ca5a4a733060d52fc401f0fe5677f3d277e3e7b3/Sanic_Plugins_Framework-0.6.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0907ff8c9514fb0df4c521473b4c39f9", "sha256": "edd4b07e6c501217253632a5d2324bd687c69f121851091fadbe7e346682b872" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.6.7.tar.gz", "has_sig": false, "md5_digest": "0907ff8c9514fb0df4c521473b4c39f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16776, "upload_time": "2019-03-03T04:43:53", "url": "https://files.pythonhosted.org/packages/5d/db/75daf5125ed13df70d813e6bc720126f6af3ab2b2d30c9e0985464f45ad0/Sanic-Plugins-Framework-0.6.7.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "d5515032af5cb9ac8e539392d20527fb", "sha256": "59bcb23b46a7c03443570625f84e8f0d31c9869e32f871e680afbc68fc86887f" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5515032af5cb9ac8e539392d20527fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19649, "upload_time": "2019-03-10T03:55:16", "url": "https://files.pythonhosted.org/packages/1a/cc/a2e370acd9f0f3abdf67e2c42681e3bd84d2153e7a7b03615a73a39bb803/Sanic_Plugins_Framework-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1619a298afadc1e73a8e197684a3ef9d", "sha256": "5ad6f40b2a7dedb35a4760df55f4e05c90b6eca4b2f63c02b7b1c6a5f7da094a" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.7.0.tar.gz", "has_sig": false, "md5_digest": "1619a298afadc1e73a8e197684a3ef9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17349, "upload_time": "2019-03-10T03:55:17", "url": "https://files.pythonhosted.org/packages/fc/5e/146f29c6aa86c367d25cc7c3a9012118bfdcb9f5ce4c372c9305df757195/Sanic-Plugins-Framework-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "17b9e457ed0d2890a2f1892df70ab3d3", "sha256": "86c64579b8d38023ef6febf37c0e0932f84da0eab17f32edcfed5ca9bd74dbe2" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "17b9e457ed0d2890a2f1892df70ab3d3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22036, "upload_time": "2019-07-31T04:45:00", "url": "https://files.pythonhosted.org/packages/f4/e6/7ea7db33dd589aa08881986c8d4457a8da4fd24ffa0f876666983ca3a2c5/Sanic_Plugins_Framework-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e93967cc16cf609dab23c79071949fc", "sha256": "2e9ce4bb739bf822c8ae20e510d584c2a2a996079b07135a9f336acdca5950e7" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.8.0.tar.gz", "has_sig": false, "md5_digest": "0e93967cc16cf609dab23c79071949fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19222, "upload_time": "2019-07-31T04:45:02", "url": "https://files.pythonhosted.org/packages/b3/5c/36b2e3df9b5c14a774d5cb4da8a49d5b51880371a292f0196e956804ff2e/Sanic-Plugins-Framework-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "062c6e26a1d2083500179ea895e652f4", "sha256": "06b426c19bc5837a622ab2c477c60c395544f711127a587dd0710679d42f1adb" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "062c6e26a1d2083500179ea895e652f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22098, "upload_time": "2019-07-31T05:14:14", "url": "https://files.pythonhosted.org/packages/9f/0a/118711f8a4e35b24d127c100221e506ca0b9416005eab5aae06af00ed6fb/Sanic_Plugins_Framework-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "31b3d6aafa5ea7c6eb6070af413b1d27", "sha256": "ba5bc0df1dfb14f2c652da27075e055ee6dcc9e2a849ef17935faf7b3850ddab" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.8.1.tar.gz", "has_sig": false, "md5_digest": "31b3d6aafa5ea7c6eb6070af413b1d27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19268, "upload_time": "2019-07-31T05:14:16", "url": "https://files.pythonhosted.org/packages/f8/b1/1b346a759c0e1d712064a130373f24ca43948bf2e527c8c196b1b87632a0/Sanic-Plugins-Framework-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "15628f871b33cdb1c182b3a3701b30dc", "sha256": "9b1f8f3fa8dcbcc0397adafe919665cce10b82cc41d543ee2f317ac31513a78d" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "15628f871b33cdb1c182b3a3701b30dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22102, "upload_time": "2019-08-04T23:54:57", "url": "https://files.pythonhosted.org/packages/ac/a6/258bdd353c22c3ff7f130d1c788f874a88e48d306614d2f622f3bac2576b/Sanic_Plugins_Framework-0.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa81815fde2860816ff304def57f47cb", "sha256": "7bfa4d4e2b7e0ff487b2297d3e8b8697f6bc49b0c2c3967289716d30cb44d881" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.8.2.tar.gz", "has_sig": false, "md5_digest": "fa81815fde2860816ff304def57f47cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19275, "upload_time": "2019-08-04T23:54:59", "url": "https://files.pythonhosted.org/packages/53/dc/743899cb84c1ec7da890336ee7d2b72978a93a02862221418b17868f78c6/Sanic-Plugins-Framework-0.8.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "15628f871b33cdb1c182b3a3701b30dc", "sha256": "9b1f8f3fa8dcbcc0397adafe919665cce10b82cc41d543ee2f317ac31513a78d" }, "downloads": -1, "filename": "Sanic_Plugins_Framework-0.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "15628f871b33cdb1c182b3a3701b30dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22102, "upload_time": "2019-08-04T23:54:57", "url": "https://files.pythonhosted.org/packages/ac/a6/258bdd353c22c3ff7f130d1c788f874a88e48d306614d2f622f3bac2576b/Sanic_Plugins_Framework-0.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa81815fde2860816ff304def57f47cb", "sha256": "7bfa4d4e2b7e0ff487b2297d3e8b8697f6bc49b0c2c3967289716d30cb44d881" }, "downloads": -1, "filename": "Sanic-Plugins-Framework-0.8.2.tar.gz", "has_sig": false, "md5_digest": "fa81815fde2860816ff304def57f47cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19275, "upload_time": "2019-08-04T23:54:59", "url": "https://files.pythonhosted.org/packages/53/dc/743899cb84c1ec7da890336ee7d2b72978a93a02862221418b17868f78c6/Sanic-Plugins-Framework-0.8.2.tar.gz" } ] }