{ "info": { "author": "Hadrien David", "author_email": "hadrien@ectobal.com", "bugtrack_url": null, "classifiers": [], "description": "Pyramid REST\n============\n\nOverview\n--------\n\n* First draft of a pyramid extension to build RESTful web application.\n* Features included:\n\n * resource definition which configure routes/views, i.e:\n\n * a resource 'application':\n\n * route [GET/POST] /applications\n * route [GET/DELETE/PUT] /applications/{application_id}\n * route GET /applications/{application_id}/new\n * route GET /applications/{application_id}/edit\n\n * a resource 'application.user':\n\n * route [GET/POST] /applications/{application_id}/users\n * route [GET/DELETE/PUT] /applications/{application_id}/users/{user_id}\n * route GET /applications/{application_id}/users/new\n * route GET /applications/{application_id}/users/edit\n\n * a singular resource 'application.user.score':\n\n * route [GET/PUT] /applications/{application_id}/users/{user_id}/score\n * route GET /applications/{application_id}/users/{user_id}/score/edit\n\n * resources are added to config introspector and related to their routes,\n views, sub-resource and parent resource;\n * end user defines REST methods (index, create, show, update, delete, new,\n edit);\n * by default:\n\n * HTTP 405 is returned for any method not provided;\n * permissions 'index, create, show, update, delete, new, edit' are\n associated to respective method;\n\n* 3 ways to configure resource:\n\n #. Imperative using `config.add_resource`, it will associate class in views module to resource\n\n .. code-block:: python\n\n config.add_resource('application') # .views.applications:ApplicationsView\n config.add_resource('application.user') # .views.application_users:ApplicationUsersView\n\n #. Declarative using `Resource` class (cornice style)\n\n .. code-block:: python\n\n app_users = Resource('application.user')\n\n @app_users.index()\n def index(context, request, application_id):\n pass\n\n @app_users.show()\n def show(context, request, application_id, id):\n pass\n\n #. Declarative using `resource_config` decorator\n\n .. code-block:: python\n\n @resource_config('application.user')\n class AppUsers(object):\n\n def __init__(self, context, request):\n pass\n\n def index(self, application_id):\n return {}\n\n @method_config(renderer='example.mako')\n def edit(self, application_id, id):\n return {}\n\n\nWhat next?\n----------\n\n#. HTTP PATCH method: http://tools.ietf.org/html/rfc5789\n#. Resource Scaffolding command;\n#. Links;\n#. Validation;\n#. Pagination;\n#. Automatic resource definition of SQLAlchemy entities;\n#. Have a view parameter in add_resource to override view definition;\n\n\nCode/Feedbacks\n--------------\n\nhttps://github.com/hadrien/pyramid_rest\n\nChangelog\n=========\n\nDevelopment\n-----------\n\n\n0.2.8\n-----\n\n* Compatibility with updated zope.interfaces\n* Using last functionality of pyramid_mongokit\n* No more distribute in setup.py\n\n\n0.2.5\n-----\n\n* Moved mongo connection to pyramid_mongokit.\n\n\n0.2.4\n-----\n\n* Switch to github.\n* Add support for mongo database:\n\n * Setting in ini file ``pyramid_rest.mongo`` considered true by default\n * ``MongoConnection`` is registered to registry\n * Two properties added to ``request``: ``mongo_connection`` and ``mongo_db``\n * Mongo connection gets uri from ``os.environ['MONGO_URI']``\n * Database name comes from ``os.environ['MONGO_DB_NAME']``\n * Any resource view with a ``model_class`` class attribute with value being\n a definition of a ``mongokit.Document`` can inherit ``pyramid_rest.mongo.DocumentView``\n to inherit all default actions.\n\n* Add custom renderer which adapts output format depending on accept headers,\n format supported are ``application/json``\u00a0& ``application/bson``\n\n\n0.1.0\n-----\n\n* Rename ResourceUtility to ResourceConfigurator to make its role clearer.\n* Force human-friendly names for route pattern variables and view callable\n parameters, e.g. /applications/{application_id}/users/{id} and\n show(context, request, application_id, id)\n* Remove ability to configure resource separator in resource names: it's always\n '.'\n* Singular resources via *add_singular_resource* directive or *singular=True*\n keyword argument on *Resource* or *resource_config*\n* Moved example from tests directory to root directory: used in test and useful\n for documentation.\n\n\n0.0.1\n-----\n\n* Collection resource only\n* Imperative mode via *add_resource* directive\n* Declarative mode via *Resource* class\n* Declarative mode view *resource_config* decorator", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pyramid_rest", "package_url": "https://pypi.org/project/pyramid_rest/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyramid_rest/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/pyramid_rest/0.2.8/", "requires_dist": null, "requires_python": null, "summary": "Pyramid Rest Extension", "version": "0.2.8" }, "last_serial": 1062689, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8d724d3de72335d47ddb0d05e081e730", "sha256": "b06234982c45ca952b4296e5f0711186cd794d61cb4969da055381ee84220e92" }, "downloads": -1, "filename": "pyramid_rest-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8d724d3de72335d47ddb0d05e081e730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9647, "upload_time": "2012-10-25T20:46:19", "url": "https://files.pythonhosted.org/packages/c1/39/4b3e5d1e7cc6162f4fa7e0777501933718c233bf8e98ddfe5db54802b878/pyramid_rest-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "4099e918e32e45c8e807e411a9c4c65a", "sha256": "ca21c44ab75d46a535848d494911aafe1c5e05c8895864d752835568459d83d4" }, "downloads": -1, "filename": "pyramid_rest-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4099e918e32e45c8e807e411a9c4c65a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11589, "upload_time": "2012-11-17T20:11:22", "url": "https://files.pythonhosted.org/packages/cf/06/91c95dd011de30e9bf8aeaee1fb41a24cfc1178ee6aa1f0091cfe85d519e/pyramid_rest-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2dbc5124add0bfbf3dcbb255d7df6a52", "sha256": "2914074a8cdeb3119d2d55322cdd116a677992f8e1faee941c0330f796e9125a" }, "downloads": -1, "filename": "pyramid_rest-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2dbc5124add0bfbf3dcbb255d7df6a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17654, "upload_time": "2012-12-04T13:54:31", "url": "https://files.pythonhosted.org/packages/c2/2a/c71630333a4674573baef3404baa63bc321775e7b865916a83f92308e8b8/pyramid_rest-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "46875268274fc966b1b1a567a46ed43a", "sha256": "72d2a7e2438ede075612464527bfb6d37fcc6d36627c3f0dab65f78bb95bf05b" }, "downloads": -1, "filename": "pyramid_rest-0.2.1.tar.gz", "has_sig": false, "md5_digest": "46875268274fc966b1b1a567a46ed43a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17660, "upload_time": "2012-12-04T13:58:10", "url": "https://files.pythonhosted.org/packages/fe/73/9e89d32886be59df55dbd589888af1490673cb282efe3692c068b1ea7953/pyramid_rest-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "e57cbe03a27e7f747375c4aa7663ad09", "sha256": "705a5f267e15a9f259332cc7fb936067e45d45e5d7fcb8490be01c1205b6634e" }, "downloads": -1, "filename": "pyramid_rest-0.2.2.tar.gz", "has_sig": false, "md5_digest": "e57cbe03a27e7f747375c4aa7663ad09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17667, "upload_time": "2012-12-05T12:42:08", "url": "https://files.pythonhosted.org/packages/14/f7/a21b3a2c56e979ebc5f7792e3e883e14e91b397f13d9cccf1e7b8ccf3147/pyramid_rest-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "d57aacc00846788b2ddffc5f53da00d0", "sha256": "2dab1e2b1cc21099bb1b2a47cfbc059b4c0b354fd38049369ce0cf914be166d8" }, "downloads": -1, "filename": "pyramid_rest-0.2.3.tar.gz", "has_sig": false, "md5_digest": "d57aacc00846788b2ddffc5f53da00d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17655, "upload_time": "2012-12-05T13:41:32", "url": "https://files.pythonhosted.org/packages/30/c2/7c753bf875a8cfa24b05fa81dedd23820b39d7cac03376e1e86cd01c1358/pyramid_rest-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "6099beb139247af121a9b8e514cb3dd6", "sha256": "d00d07f6eaf90016e781436db0ed11bc51bc112d9461ee4d9a775a7ec5582dda" }, "downloads": -1, "filename": "pyramid_rest-0.2.4.tar.gz", "has_sig": false, "md5_digest": "6099beb139247af121a9b8e514cb3dd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17502, "upload_time": "2013-01-11T16:55:14", "url": "https://files.pythonhosted.org/packages/50/59/f9c5c282ad5c86627f092beea4d2f5895f9b8e3bdfbf6d921f1532fbedb8/pyramid_rest-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "a13cbd200d7b15a26af4eda733eb195f", "sha256": "6c1a6450bb3e3eee8811cc6d46c32cc93041f37a24c65746514eef44da72a633" }, "downloads": -1, "filename": "pyramid_rest-0.2.5.tar.gz", "has_sig": false, "md5_digest": "a13cbd200d7b15a26af4eda733eb195f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17599, "upload_time": "2013-01-20T23:11:11", "url": "https://files.pythonhosted.org/packages/c0/b8/5256ffb824f0c9bc6d9996a4b3fc539d09adc72a9d311cba098ac4c041ed/pyramid_rest-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "c204bdd2fef75f0700dd0212bec2334f", "sha256": "a76d1bd8112c828637dc8db6da59f910f9136e6544fae7268d1695f61420ce1f" }, "downloads": -1, "filename": "pyramid_rest-0.2.6.tar.gz", "has_sig": false, "md5_digest": "c204bdd2fef75f0700dd0212bec2334f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17665, "upload_time": "2013-01-31T19:54:22", "url": "https://files.pythonhosted.org/packages/14/4b/1fa7025b7dbeb2a03556a5f58c9c26d5e669e772e969e7423460f68d59f8/pyramid_rest-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "7022f0a0331b9cd1ebc8e4600ae77d2c", "sha256": "35125ea7ddd2442921062656f2e5e3282e571329bf486fa3f0c3fb61169af11c" }, "downloads": -1, "filename": "pyramid_rest-0.2.7.tar.gz", "has_sig": false, "md5_digest": "7022f0a0331b9cd1ebc8e4600ae77d2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17534, "upload_time": "2013-03-21T20:07:42", "url": "https://files.pythonhosted.org/packages/68/ee/114a0a784fc1f4d6ae95b447218dca164e0dc1f0753e8600ddc1f33604c5/pyramid_rest-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "8ebe2c1d28088c77191088effd7f26c4", "sha256": "d9f990bdec7cb2fb54a66d129e72d53b6848aa63bfe0743042eef28213cdd7df" }, "downloads": -1, "filename": "pyramid_rest-0.2.8.tar.gz", "has_sig": false, "md5_digest": "8ebe2c1d28088c77191088effd7f26c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18530, "upload_time": "2014-04-16T18:55:53", "url": "https://files.pythonhosted.org/packages/c4/a7/d825037bf1b4eb267756076574246f9a522c4bea56451b72c8e535facf1e/pyramid_rest-0.2.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ebe2c1d28088c77191088effd7f26c4", "sha256": "d9f990bdec7cb2fb54a66d129e72d53b6848aa63bfe0743042eef28213cdd7df" }, "downloads": -1, "filename": "pyramid_rest-0.2.8.tar.gz", "has_sig": false, "md5_digest": "8ebe2c1d28088c77191088effd7f26c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18530, "upload_time": "2014-04-16T18:55:53", "url": "https://files.pythonhosted.org/packages/c4/a7/d825037bf1b4eb267756076574246f9a522c4bea56451b72c8e535facf1e/pyramid_rest-0.2.8.tar.gz" } ] }