{ "info": { "author": "AWeber Communications", "author_email": "api@aweber.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "sprockets.mixins.mediatype\n==========================\nA mixin that performs Content-Type negotiation and request/response\n(de)serialization.\n\n|Documentation| |Build Badge| |Package Info|\n\nThis mix-in adds two methods to a ``tornado.web.RequestHandler`` instance:\n\n- ``get_request_body() -> dict``: deserializes the request body according\n to the HTTP ``Content-Type`` header and returns the deserialized body.\n- ``send_response(object)``: serializes the response into the content type\n requested by the ``Accept`` header.\n\nBefore adding support for specific content types, you SHOULD install the\ncontent settings into your ``tornado.web.Application`` instance. If you\ndon't install the content settings, then an instance will be created for\nyou by the mix-in; however, the created instance will be empty. You\nshould already have a function that creates the ``Application`` instance.\nIf you don't, now is a good time to add one.\n\n.. code-block:: python\n\n from sprockets.mixins.mediatype import content\n from tornado import web\n\n def make_application():\n application = web.Application([\n # insert your handlers here\n ])\n content.install(application, 'application/json', 'utf-8')\n return application\n\nSupport for a content types is enabled by calling ``add_binary_content_type``,\n``add_text_content_type`` or the ``add_transcoder`` functions with the\n``tornado.web.Application`` instance, the content type, encoding and decoding\nfunctions as parameters:\n\n.. code-block:: python\n\n import json\n\n from sprockets.mixins.mediatype import content\n from tornado import web\n\n def make_application():\n application = web.Application([\n # insert your handlers here\n ])\n\n content.install(application, 'application/json', 'utf-8')\n content.add_text_content_type(application,\n 'application/json', 'utf-8',\n json.dumps, json.loads)\n\n return application\n\nThe *add content type* functions will add a attribute to the ``Application``\ninstance that the mix-in uses to manipulate the request and response bodies.\nThe *add_transcoder* function is similar except that it takes an object\nthat implements transcoding methods instead of simple functions. The\n``transcoders`` module includes ready-to-use transcoders for a few content\ntypes:\n\n.. code-block:: python\n\n from sprockets.mixins.mediatype import content, transcoders\n from tornado import web\n\n def make_application():\n application = web.Application([\n # insert your handlers here\n ])\n\n content.install(application, 'application/json', 'utf-8')\n content.add_transcoder(application, transcoders.JSONTranscoder())\n\n return application\n\nIn either case, the ``ContentMixin`` uses the registered content type\ninformation to provide transparent content type negotiation for your\nrequest handlers.\n\n.. code-block:: python\n\n from sprockets.mixins.mediatype import content\n from tornado import web\n\n class SomeHandler(content.ContentMixin, web.RequestHandler):\n def get(self):\n self.send_response({'data': 'value'})\n\n def post(self):\n body = self.get_request_body()\n # do whatever\n self.send_response({'action': 'performed'})\n\nBased on the settings stored in the ``Application`` instance and the HTTP\nheaders, the request and response data will be handled correctly or the\nappropriate HTTP exceptions will be raised.\n\n.. |Documentation| image:: https://readthedocs.org/projects/sprocketsmixinsmedia-type/badge/?version=latest\n :target: https://sprocketsmixinsmedia-type.readthedocs.org/\n.. |Build Badge| image:: https://travis-ci.org/sprockets/sprockets.mixins.mediatype.svg\n :target: https://travis-ci.org/sprockets/sprockets.mixins.mediatype\n.. |Package Info| image:: https://img.shields.io/pypi/v/sprockets.mixins.mediatype.svg\n :target: https://pypi.python.org/pypi/sprockets.mixins.mediatype\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/sprockets/sprockets.mixins.mediatype", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "sprockets.mixins.mediatype", "package_url": "https://pypi.org/project/sprockets.mixins.mediatype/", "platform": "", "project_url": "https://pypi.org/project/sprockets.mixins.mediatype/", "project_urls": { "Homepage": "https://github.com/sprockets/sprockets.mixins.mediatype" }, "release_url": "https://pypi.org/project/sprockets.mixins.mediatype/3.0.1/", "requires_dist": [ "ietfparse (<2,>=1.5.1)", "tornado (<7,>=5)", "u-msgpack-python (<3,>=2.5.0) ; extra == 'msgpack'" ], "requires_python": ">=3.7", "summary": "A mixin for reporting handling content-type/accept headers", "version": "3.0.1" }, "last_serial": 4901814, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "1ba8890348b05c08d6400ea3635385e6", "sha256": "333dd7a77fc1e917e7ef06001313730f99b31b259aaf6ab5b09ac82e4e749711" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1ba8890348b05c08d6400ea3635385e6", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 8064, "upload_time": "2015-09-09T22:41:13", "url": "https://files.pythonhosted.org/packages/18/34/dfa3f5177d30f732224c5cfc58585277717346273cab61bfee120d13a14b/sprockets.mixins.mediatype-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d05d64a3e61592a0c316cf3a3c42a3d4", "sha256": "9f24d14fc504db0cb1a002cf212297562b911f6514b8cc5f12ca5fe6e984fcb4" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d05d64a3e61592a0c316cf3a3c42a3d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9946, "upload_time": "2015-09-09T22:40:36", "url": "https://files.pythonhosted.org/packages/8d/d1/790e2dbeab86ebaff14dd3afc8d1ad7eaba57d18161b6e26b3d06cf10d61/sprockets.mixins.mediatype-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "c5ebb3f965355078015d52c16f8d5738", "sha256": "dd9b77cc82b38efb4a90fcc6e05b3ed96fc5840f6b976ced30d514c0cfb5796b" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c5ebb3f965355078015d52c16f8d5738", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7879, "upload_time": "2015-09-10T15:46:39", "url": "https://files.pythonhosted.org/packages/43/44/b4eb93f3c85929d014703113d5788b69f4ac36dcd76f94aa91e17ee0a56b/sprockets.mixins.mediatype-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdd9b80d65e2ea45d2fcddc0f0871e57", "sha256": "7c0dd2a7dc7054c9e02a14b53c05323693e5cc62d081a7e53be563669336051a" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-1.0.3.tar.gz", "has_sig": false, "md5_digest": "bdd9b80d65e2ea45d2fcddc0f0871e57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9500, "upload_time": "2015-09-10T15:46:43", "url": "https://files.pythonhosted.org/packages/45/f8/4e8cce1153e152ac96fbacc283f842059bd27d1cb67a866bd4f5eb5a47c1/sprockets.mixins.mediatype-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "37c7d9172b2cb977881a26ddeca7f0ad", "sha256": "bc4415c1bd387c44d093a92219b9fe683fd17e726b9b7915cf70d93c61231286" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "37c7d9172b2cb977881a26ddeca7f0ad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7895, "upload_time": "2015-09-27T15:34:05", "url": "https://files.pythonhosted.org/packages/b5/37/d5773039086f8790975d7f1bf34e5e245c90282f96fe4fa5210f7832c6b9/sprockets.mixins.mediatype-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c93248ec3221907fc20ede3eae0e0fb", "sha256": "2f0f0a06320fd43052c2e77f09aedccd1b6b4675b6870f1882579d8eb8d5d6c4" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-1.0.4.tar.gz", "has_sig": false, "md5_digest": "4c93248ec3221907fc20ede3eae0e0fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9582, "upload_time": "2015-09-27T15:34:13", "url": "https://files.pythonhosted.org/packages/0e/d1/fa1f0710ea6802b1cfdd0bd614703cc18c59fdedc694f93c6fdea7de81f6/sprockets.mixins.mediatype-1.0.4.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "69a9fb704cbd0d3f5b9c3801d9894ff8", "sha256": "36c3a214f658dc231b471a74d580803652daba65235f5d8326a5fdb4b011b177" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69a9fb704cbd0d3f5b9c3801d9894ff8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14067, "upload_time": "2016-02-24T19:56:52", "url": "https://files.pythonhosted.org/packages/4d/35/d8af0a5e28ee32bb81838e1ce3f3f864090d24c43dde293a9110671ccec5/sprockets.mixins.mediatype-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f4b237e45f1af4260bf7610ca6b5e73", "sha256": "29e4cd97462bf1cc4e794219e555db5cd2340adeef78622489a3fd6ba311fcbc" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.0.0.tar.gz", "has_sig": false, "md5_digest": "4f4b237e45f1af4260bf7610ca6b5e73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16936, "upload_time": "2016-02-24T19:57:00", "url": "https://files.pythonhosted.org/packages/8c/a8/2106ee0f82f5782eb6bb5b53f22c5c73b6131a4a4aa65777a1625a8ca25f/sprockets.mixins.mediatype-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c74c27b9128912fc147f88f778b5e774", "sha256": "fea2b2d13a6c359640ea5f8b0977c7748be86f83443ada302a60086962fd926b" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c74c27b9128912fc147f88f778b5e774", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13894, "upload_time": "2016-02-29T20:10:35", "url": "https://files.pythonhosted.org/packages/7d/10/77e4e7f8e46db22a2467982f0e937c1f807fb9ffbe07c0fe46da5ffd2fc7/sprockets.mixins.mediatype-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e16c0fbad591ed7851ac85a0caaaf49", "sha256": "7d30d7b0770b4fe9b5a121d370f6e240752acd53c03d6c8e80c23abfbf4d9622" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.0.1.tar.gz", "has_sig": false, "md5_digest": "2e16c0fbad591ed7851ac85a0caaaf49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16849, "upload_time": "2016-02-29T20:10:40", "url": "https://files.pythonhosted.org/packages/cb/fa/db8be1921d412cad0038a8c327f3ae760198bdfb8a3db830ed9511b2a39a/sprockets.mixins.mediatype-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "4f1c31c8927aa0aa246d0beeca9801dd", "sha256": "f59f0a1b1d0a9682db46047288fb3561e9ded3006753b9ca52840ba63474801d" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f1c31c8927aa0aa246d0beeca9801dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13952, "upload_time": "2016-03-16T13:28:00", "url": "https://files.pythonhosted.org/packages/f0/cb/fd178cb5dd21b1c67c79d9f03650910a30e468091272f1c159bd107cd200/sprockets.mixins.mediatype-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b27431091fb89abc3496d44e481d82e", "sha256": "70ffa7d74a5855513d83294ee8770d93fc802f3d2d2605ace0205076ad0f162d" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.1.0.tar.gz", "has_sig": false, "md5_digest": "6b27431091fb89abc3496d44e481d82e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17002, "upload_time": "2016-03-16T13:28:19", "url": "https://files.pythonhosted.org/packages/0e/ff/76e07a8d0c85394ee205a385e59a24c582f3429727122014a8ba2fd7b4f7/sprockets.mixins.mediatype-2.1.0.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "1862cd8e0d0d5d36680519097a35c898", "sha256": "0ec4f079d2e0ec83ccbc32223aeb89b7e74db5ae8ae90fe02be319f5e57f3431" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1862cd8e0d0d5d36680519097a35c898", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12486, "upload_time": "2018-04-12T11:18:00", "url": "https://files.pythonhosted.org/packages/8e/6a/261391c1464b305e2ad65f63d739d365068a28350795d71c7034ce0185c7/sprockets.mixins.mediatype-2.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d051e007c5bbfdce1d88e9d1534f025", "sha256": "ab071a3faf5982663250c649a34e13f4fb4734a6734f184e9992e687de1d37b9" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.2.1.tar.gz", "has_sig": false, "md5_digest": "5d051e007c5bbfdce1d88e9d1534f025", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18347, "upload_time": "2018-04-12T11:18:01", "url": "https://files.pythonhosted.org/packages/8b/8d/1185cee6cc38554bf015a0fbb5a5067ac520a79c9e1b28fcbca36e52e2e0/sprockets.mixins.mediatype-2.2.1.tar.gz" } ], "2.2.2": [ { "comment_text": "", "digests": { "md5": "b4aa8e7287bb6cddcd27ee9e205ea9c8", "sha256": "15896eff46f6012af273f516476a377eafef33d65e7609a6308122f30f0fce85" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4aa8e7287bb6cddcd27ee9e205ea9c8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12498, "upload_time": "2018-08-07T19:57:34", "url": "https://files.pythonhosted.org/packages/1e/90/6aac1044ceeb04f5029610324cda63aa78967926cc32c2e5a4e3d65a3e9f/sprockets.mixins.mediatype-2.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c245bb994764577528e5f7d238de0e0", "sha256": "6ea6035aedbb8cdd72eac3ec5d07cd5d696915b36a5e7d1f34b661bda9f9c465" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-2.2.2.tar.gz", "has_sig": false, "md5_digest": "0c245bb994764577528e5f7d238de0e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18408, "upload_time": "2018-08-07T19:57:35", "url": "https://files.pythonhosted.org/packages/6e/92/8ea7ea9525f210692ecefcfe9f869c362dc7b7ed91a828c671b9ae57ed9f/sprockets.mixins.mediatype-2.2.2.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "2ced9683398cbf4fd3c05f3b11109730", "sha256": "366a3426e359d7a678a03cfc0a0fece8c37bca64f93b5038f2036cfec71930d4" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ced9683398cbf4fd3c05f3b11109730", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 12429, "upload_time": "2018-12-05T04:22:59", "url": "https://files.pythonhosted.org/packages/e3/28/5edba5bd377fd595e5ece8eee4b3c611489631f06a3bc1c7ab3c7362df55/sprockets.mixins.mediatype-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5e14436fee61521ebf43b3b2724fad5", "sha256": "914219ba481ca2b9065236cd85bc90ba8042dccaaa052ad36b06049d09daa2a7" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-3.0.0.tar.gz", "has_sig": false, "md5_digest": "e5e14436fee61521ebf43b3b2724fad5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 20173, "upload_time": "2018-12-05T04:23:00", "url": "https://files.pythonhosted.org/packages/e2/69/ee319a164109fbf95d4433bdc698602f0c8604336a65ee5eed88aa321fdf/sprockets.mixins.mediatype-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "46e7be780d0cc27f452dff7080d7ecde", "sha256": "2be53a45d1975d0645c3a3d262a52ce06417958931512950299f2eabd6ceecf2" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46e7be780d0cc27f452dff7080d7ecde", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 12610, "upload_time": "2019-03-05T20:28:03", "url": "https://files.pythonhosted.org/packages/23/9d/62a446741e93ab364e1e1e4276f0b66244e9d5d08d2dda8ff2642cdcaea6/sprockets.mixins.mediatype-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6dc4f016a2ca364fa03a899ad781253", "sha256": "5df61bbf0a18f9e1a1a896fbf54276def372432dd5bc8f6862cc559f95a1d196" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-3.0.1.tar.gz", "has_sig": false, "md5_digest": "f6dc4f016a2ca364fa03a899ad781253", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18611, "upload_time": "2019-03-05T20:28:05", "url": "https://files.pythonhosted.org/packages/77/86/7a7f1c76078e1199108e568562429c1b106102d5b106a611dc107d350b5f/sprockets.mixins.mediatype-3.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "46e7be780d0cc27f452dff7080d7ecde", "sha256": "2be53a45d1975d0645c3a3d262a52ce06417958931512950299f2eabd6ceecf2" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46e7be780d0cc27f452dff7080d7ecde", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 12610, "upload_time": "2019-03-05T20:28:03", "url": "https://files.pythonhosted.org/packages/23/9d/62a446741e93ab364e1e1e4276f0b66244e9d5d08d2dda8ff2642cdcaea6/sprockets.mixins.mediatype-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6dc4f016a2ca364fa03a899ad781253", "sha256": "5df61bbf0a18f9e1a1a896fbf54276def372432dd5bc8f6862cc559f95a1d196" }, "downloads": -1, "filename": "sprockets.mixins.mediatype-3.0.1.tar.gz", "has_sig": false, "md5_digest": "f6dc4f016a2ca364fa03a899ad781253", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18611, "upload_time": "2019-03-05T20:28:05", "url": "https://files.pythonhosted.org/packages/77/86/7a7f1c76078e1199108e568562429c1b106102d5b106a611dc107d350b5f/sprockets.mixins.mediatype-3.0.1.tar.gz" } ] }