{ "info": { "author": "Corbin Simpson", "author_email": "cds@corbinsimpson.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=============\nFlask-Holster\n=============\n\nThis is Holster, an extension for Flask that makes RESTfulness and content\nnegotiation easy::\n\n from flask import Flask\n from flask.ext.holster.main import init_holster\n\n app = Flask(__name__)\n init_holster(app)\n\n @app.holster(\"/test\")\n def test():\n from math import pi\n\n return {\n \"data\": \"Hello from Holster!\",\n \"nested\": {\n \"numeric\": 0,\n \"floating\": pi,\n \"unicode\": u\"Espa\\xf1ol\",\n },\n \"secure\": {\n \"xss-sword\": ';!--\"=&{()}',\n }\n }\n\n if __name__ == \"__main__\":\n app.run()\n\nThis application will automatically figure out which data type to return,\nusing a combination of user agent parameters and URL extensions. If a user\nagent requests \"/test.html\" they will get HTML, but if they request\n\"/test.json\" they will get JSON instead. No longer do you have to worry about\nconstructing sites with separate interfaces for HTML and JSON; one holstered\nsite can do it all!\n\nHolster currently has default renderers for the following formats:\n\n * HTML\n * JSON\n * Plaintext\n * YAML (with optional PyYAML support for prettified YAML)\n\nThese default renderers are provided mostly for bootstrapping and development,\nalthough the JSON and YAML renderers are likely very similar to the renderers\nthat one might desire in production.\n\nChangelog\n=========\n\n0.3.4\n-----\n\n * Feature: The JSON renderer can render custom objects if they implement a\n ``__json__`` method for reducing to JSON-safe objects.\n\n0.3.3\n-----\n\n * Bugfix: Multiple holsterings of a single view in Flask 0.10 and newer were\n causing Flask to refuse to register views due to an internal assertion\n being triggered.\n * Feature: The ``\"title\"`` key now holds special significance: it will be\n used for titles in built-in renderers, if the renderer supports the notion\n of a title.\n\n0.3.2\n-----\n\n * Bugfix: Custom templaters were being incorrectly unused if they were not\n HTML or JSON templaters.\n * Feature: Allow \"svg\" as an extension for the \"image/svg+xml\" MIME type.\n\n0.3.1\n-----\n\n * Bugfix: Remove extraneous debugging statements.\n\n0.3\n---\n\n * Compatibility: Require vcversioner for version numbers.\n * Compatibility: The handwritten MIME parser has been removed in favor of the\n one in Werkzeug. As a result, Flask-Holster is slightly smaller and should\n handle corner cases slightly better.\n * Bugfix: Always define a YAML conversion. For pretty YAML, install PyYAML.\n YAML output is now always enabled, using JSON as a fallback when PyYAML is\n not available. PyYAML is *not* required and is not in the\n `requirements.txt`.\n\n0.2.5\n-----\n\n * Feature: ``init_holster()`` now works on Flask blueprints as well as Flask\n applications.\n\n0.2.4\n-----\n\n * Bugfix: Correctly omit trailing colons (and related recursion) on list\n items in the default HTML view template.\n\n0.2.3\n-----\n\n * Bugfix: Permit kwargs in routing decorators, including ``methods``. \n * Bugfix: Pass along premade responses as-is without any interference.\n Permits things like ``redirect()`` inside otherwise-rigid controllers.\n\n0.2.2\n-----\n\n * Bugfix: Pass along names inside ``lift()`` to correctly name reversed\n routes\n\n0.2.1\n-----\n\n * Bugfix: Specialize extended routes for \"/\" to avoid malformed routes\n\n0.2\n---\n\n * Compatibility: Don't use itertools, for Python 2.5\n * Enhancement: Split holsterizing views into two pieces, for easier\n customization\n * Feature: New helpers module for helping write customized views\n\n1.1.2\n-----\n\n * Feature: Changelog\n * Feature: Documentation\n * Feature: Optional ``HOLSTER_COMPRESS`` setting for automatically\n compressing response data\n * Enhancement: Vary header is filled out\n * Change: Improved names of view objects", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/MostAwesomeDude/flask-holster", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "Flask-Holster", "package_url": "https://pypi.org/project/Flask-Holster/", "platform": "any", "project_url": "https://pypi.org/project/Flask-Holster/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/MostAwesomeDude/flask-holster" }, "release_url": "https://pypi.org/project/Flask-Holster/0.3.4/", "requires_dist": null, "requires_python": null, "summary": "Rigid MVC content negotiation for Flask", "version": "0.3.4" }, "last_serial": 837823, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ba79bf0eab37a3b0bf69711927fe23c4", "sha256": "220392dc2dc44e9c357f631aa5f03142a298fc75364e08dc435ffb96bd2e85c0" }, "downloads": -1, "filename": "Flask-Holster-0.1.tar.gz", "has_sig": false, "md5_digest": "ba79bf0eab37a3b0bf69711927fe23c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3849, "upload_time": "2012-09-22T15:01:14", "url": "https://files.pythonhosted.org/packages/cc/8a/0be349955c2eb4f38744b5045519af3c0e7751530edaa8acab2331df90bd/Flask-Holster-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "16b5631a3f667e95e0db3ded30d0901f", "sha256": "14824714b25587e9c06a891dd3ab097ff6e61bcd31799d0e776a0350f7d86c5c" }, "downloads": -1, "filename": "Flask-Holster-0.1.1.tar.gz", "has_sig": false, "md5_digest": "16b5631a3f667e95e0db3ded30d0901f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4740, "upload_time": "2012-09-22T15:09:52", "url": "https://files.pythonhosted.org/packages/4f/42/66f469ac2e209baec312575bd66a2fc334398fc40f76cb2159c86a611487/Flask-Holster-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "51dbbd3b908e464c30855935fca64258", "sha256": "02b704d971862820c20547acfc32f280cfcacfbd99a56b2e577d7e620918c9d0" }, "downloads": -1, "filename": "Flask-Holster-0.1.2.tar.gz", "has_sig": false, "md5_digest": "51dbbd3b908e464c30855935fca64258", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5514, "upload_time": "2012-10-09T00:31:59", "url": "https://files.pythonhosted.org/packages/41/f1/784ad787c4eb194d08103bd798a00cf0a4dd89bdab531df5938775ed9f10/Flask-Holster-0.1.2.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "de38cd0b7778328f32e74cddfc7a1ba4", "sha256": "2a036d0ef410fa76826c415e7f9a5dbf8e088b6970b212eeb11371ce863b8b84" }, "downloads": -1, "filename": "Flask-Holster-0.2.tar.gz", "has_sig": false, "md5_digest": "de38cd0b7778328f32e74cddfc7a1ba4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6234, "upload_time": "2012-10-09T22:11:44", "url": "https://files.pythonhosted.org/packages/51/bc/b1493df8ae4062438a25d46b57e27feaad3edbf0bb9cfde949abe6e7c966/Flask-Holster-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "b9a6395d2218de31958b9b2c4012f045", "sha256": "a75fafe678faaec7ab80dfc79521036d04332d12cdd627e6719a68a2b8486b41" }, "downloads": -1, "filename": "Flask-Holster-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b9a6395d2218de31958b9b2c4012f045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6463, "upload_time": "2012-10-09T23:05:13", "url": "https://files.pythonhosted.org/packages/ef/61/c70503f1fa30cd2d138225e5238cf36b29bea7930970e26e8a39709b09e8/Flask-Holster-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "18268ca34036bfb4655373a593711a4c", "sha256": "25ebaaf699d02b72a4eebc6b06f4da7a23f6b39ebe8305a23e655a6cdec91683" }, "downloads": -1, "filename": "Flask-Holster-0.2.2.tar.gz", "has_sig": false, "md5_digest": "18268ca34036bfb4655373a593711a4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6531, "upload_time": "2012-10-09T23:24:32", "url": "https://files.pythonhosted.org/packages/89/fa/95272d7bb914883f5852d194ac86dd9e6d5f5258f69670d0c4d8900a6d09/Flask-Holster-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "16c9b16360bb60f561ed607d3b794b9a", "sha256": "60e97f030e20c676f1862df74ba25d54327aea1bccf40781bf2dcba893a23a95" }, "downloads": -1, "filename": "Flask-Holster-0.2.3.tar.gz", "has_sig": false, "md5_digest": "16c9b16360bb60f561ed607d3b794b9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6771, "upload_time": "2012-11-07T23:52:46", "url": "https://files.pythonhosted.org/packages/7d/a5/604373b95af581c516778ba8fde51432889980c5c52dda324169107b4416/Flask-Holster-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "1484e596012401af5a0f2bf427f194aa", "sha256": "d89e227051a282b57306a1aa84da47992e6e8d00f0da32063d2c230156ecf271" }, "downloads": -1, "filename": "Flask-Holster-0.2.4.tar.gz", "has_sig": false, "md5_digest": "1484e596012401af5a0f2bf427f194aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6948, "upload_time": "2013-06-07T07:19:26", "url": "https://files.pythonhosted.org/packages/61/e4/95bd00ebb03b763721fd2c48c3c93f633e5230e5403f9ee59de99391aced/Flask-Holster-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "90356889d3ac07c07398d5cf8b6ab927", "sha256": "9a0e4172fb0b813171e100bb860e48824b24deb4eea94fa93b107c75d38d7abc" }, "downloads": -1, "filename": "Flask-Holster-0.2.5.tar.gz", "has_sig": false, "md5_digest": "90356889d3ac07c07398d5cf8b6ab927", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7108, "upload_time": "2013-06-24T00:34:49", "url": "https://files.pythonhosted.org/packages/d7/dc/12e3b500914dea4e9064c55a765ee9ce5a5617e9853fe4ac81762d62b16f/Flask-Holster-0.2.5.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c4a1d1ee638ddb7346c9e8ee2d23353f", "sha256": "c5b685246c52917cea33267fb8fe06a8f193e17c59b172aac486ea795c08714c" }, "downloads": -1, "filename": "Flask-Holster-0.3.tar.gz", "has_sig": false, "md5_digest": "c4a1d1ee638ddb7346c9e8ee2d23353f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6889, "upload_time": "2013-07-09T06:27:55", "url": "https://files.pythonhosted.org/packages/dc/ac/653c626087940dde2a2ec0c1473a8edc12539598aff78bcd51502bee7a9c/Flask-Holster-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "571fa67aecf4ca520c91ece301ceeb87", "sha256": "8f861de239dfc4dd4e063fd4edaa2b312e3b36d8c0deaa9cdcf3c09e5bed6f9c" }, "downloads": -1, "filename": "Flask-Holster-0.3.1.tar.gz", "has_sig": false, "md5_digest": "571fa67aecf4ca520c91ece301ceeb87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6912, "upload_time": "2013-07-10T04:53:25", "url": "https://files.pythonhosted.org/packages/6c/de/3174e194671a47ee29c0b36406dd4ca8de3cbc0d3c1cc1d7465ccc284b33/Flask-Holster-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "a7746a69bdc623cf41620bec0efd0a55", "sha256": "8cfaf1ee1cf2842900c9f58001effc594fefac3d32bd89f14ccb09e27e186618" }, "downloads": -1, "filename": "Flask-Holster-0.3.2.tar.gz", "has_sig": false, "md5_digest": "a7746a69bdc623cf41620bec0efd0a55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7092, "upload_time": "2013-07-11T06:00:47", "url": "https://files.pythonhosted.org/packages/88/28/aa07797741e0175d1eb77a98a4d32c5458e71168aab289f9d05ec1aef343/Flask-Holster-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "482e90cfd3d4bafd1624ea6653ca6f2d", "sha256": "85ea0f6d8bc5312629103b21f5ba0b99f2c33d0572f6aa9898d4bbee6dc39da2" }, "downloads": -1, "filename": "Flask-Holster-0.3.3.tar.gz", "has_sig": false, "md5_digest": "482e90cfd3d4bafd1624ea6653ca6f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7925, "upload_time": "2013-07-19T06:21:59", "url": "https://files.pythonhosted.org/packages/5a/48/241453afe2ea49b90048fcfc4004dd6303d580a27108b8af5ce8083dd190/Flask-Holster-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "5868f559271dd3b3feb5619ad92e59dc", "sha256": "acbbf75cce0df474f469ed3af44199d2eb02ef519db0f6dc7e1d1ac80f538565" }, "downloads": -1, "filename": "Flask-Holster-0.3.4.tar.gz", "has_sig": false, "md5_digest": "5868f559271dd3b3feb5619ad92e59dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7528, "upload_time": "2013-08-12T00:09:36", "url": "https://files.pythonhosted.org/packages/1c/7f/74792c64952bd3a9640a606b8fe12bb8319245d20f29e3a86a61509cbd4e/Flask-Holster-0.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5868f559271dd3b3feb5619ad92e59dc", "sha256": "acbbf75cce0df474f469ed3af44199d2eb02ef519db0f6dc7e1d1ac80f538565" }, "downloads": -1, "filename": "Flask-Holster-0.3.4.tar.gz", "has_sig": false, "md5_digest": "5868f559271dd3b3feb5619ad92e59dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7528, "upload_time": "2013-08-12T00:09:36", "url": "https://files.pythonhosted.org/packages/1c/7f/74792c64952bd3a9640a606b8fe12bb8319245d20f29e3a86a61509cbd4e/Flask-Holster-0.3.4.tar.gz" } ] }