{ "info": { "author": "Kevin Conway", "author_email": "kevinjacobconway@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "======\nRESTpy\n======\n\n**Werkzeug utilities for building RESTful services.**\n\nWhat is RESTpy?\n===============\n\nRESTpy is a small set of utilities built on Werkzeug that make it a little\neasier to roll out a RESTful web service. This project defines very few unique\nfeatures outside of Werkzeug itself. Think of it like flask but with even\n*less* features.\n\nSimple Usage Example\n====================\n\n.. code-block:: python\n\n from restpy.api import Application\n from restpy.api import Endpoint\n\n from werkzeug.routing import Map\n from werkzeug.routing import Rule\n from werkzeug.wrappers import Response\n\n\n # Endpoints define HTTP verb methods to handle requests.\n class IndexEndpoint(Endpoint):\n\n def get(self, request):\n return Response(\"get\")\n\n def post(self, request):\n return Response(\"post\")\n\n def put(self, request):\n return Response(\"put\")\n\n def delete(self, request):\n return Response(\"delete\")\n\n # URL mappings are normal Werkzeug routing Maps.\n urls = Map([\n Rule(\"/\", endpoint=IndexEndpoint)\n ])\n\n # This object can be exposed to any WSGI server.\n application = Application(urls)\n\nRequest/Response Hooks\n======================\n\nRESTpy, in addition to supporting any standard WSGI middleware, supports the\nregistration of global request and response hooks. Request hooks are any Python\ncallable which accepts the current request as a first argument. Response hooks,\nlikewise, accept the request and response as arguments. These can be used to\ninject generic functionality, like authentication, without writing your own\nmiddlewares.\n\n.. code-block:: python\n\n import logging\n from werkzueg.exceptions import Unauthorized\n\n LOG = logging.getLogger(__name__)\n\n\n def authenticate(request):\n \"\"\"A hook which checks for the secret key.\"\"\"\n if request.headers.get('Secrete-Token', None) != 42:\n\n raise Unauthorized()\n\n\n def log_complete(request, response):\n \"\"\"Log a message after every request.\"\"\"\n LOG.debug('Request complete!')\n\n application = Application(\n urls,\n before=(authenticate,),\n after=(log_complete,)\n )\n\nThe 'before' and 'after' keyword arguments will accept any iterable of hooks.\nThese hooks will be executed on each request.\n\nThread-Local Storage\n====================\n\nSharing data between middlewares, hooks, and endpoints can be difficult in\nmulti-threaded, or green-threaded, environments. To assist, this package makes\nit easy to use the Werkzueg local objects to share data globally within a\nthread.\n\n.. code-block:: python\n\n import uuid\n\n from restpy.api import Application\n from restpy.api import ContextClearMiddleware\n from restpy.api import Endpoint\n from restpy import context\n\n from werkzeug.routing import Map\n from werkzeug.routing import Rule\n from werkzeug.wrappers import Response\n\n class ThreadedEndpoint(Endpoint):\n\n def get(self, request):\n return Response(context.storage.unique_value)\n\n def unique_value(request):\n \"\"\"Set a random to the context storage.\"\"\"\n context.storage.unique_value = (uuid.uuid4())\n\n urls = Map([\n Rule(\"/\", endpoint=ThreadedEndpoint)\n ])\n\n # Set the thread context to clear after each request.\n application = ContextClearMiddleware(\n Application(urls, before=(unique_value,))\n )\n\nThe above example will generate a unique value for each request and return it\nin a GET request. If the WSGI application is run in a multi-threaded\nenvironment, using eventlet or gevent for example, the value will be unique to\nthe thread which is executing. The ContextClearMiddleware helps ensure that\nstale data doesn't stick around after a thread is complete.\n\nUnique Request ID's\n===================\n\nBundled with this project are a middleware and request hook which work together\nto provide a UUID for each request that hits an application. These helpers make\nuse of the context storage to allow for easy logging of the request id as well.\n\n.. code-block:: python\n\n import logging\n\n from restpy.api import Application\n from restpy.api import ContextClearMiddleware\n from restpy.api import Endpoint\n from restpy.api import RequestLogger\n from restpy.api import unique_request\n from restpy.api import UniqueEnvironMiddleware\n\n from werkzeug.routing import Map\n from werkzeug.routing import Rule\n from werkzeug.wrappers import Response\n\n class UniqueEndpoint(Endpoint):\n\n def get(self, request):\n return Response(request.uuid)\n\n urls = Map([\n Rule(\"/\", endpoint=UniqueEndpoint)\n ])\n\n # Set the thread context to clear after each request.\n application = ContextClearMiddleware(\n UniqueEnvironMiddleware(\n Application(urls, before=(unique_request))\n )\n )\n\n logging.basicConfig(\n format='%(levelname)s:%(request_id)s:%(message)s',\n level=logging.DEBUG,\n )\n logging.setLoggerClass(RequestLogger)\n\nThe above example configures the application to generate a new UUID for every\nrequest, store this uuid on the request object and context storage, and\nconfigure logging to include the unique request id in every log message.\n\nLicense\n=======\n\nThis project is released under the same BSD license as Werkzeug::\n\n Copyright (c) 2013 by Kevin Conway\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n\n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nContributor's Agreement\n=======================\n\nAll contributions to this project are protected by the contributors agreement\ndetailed in the CONTRIBUTING file. All contributors should read the file before\ncontributing, but as a summary::\n\n You give us the rights to distribute your code and we promise to maintain\n an open source release of anything you contribute.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kevinconway/rest.py", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "RESTpy", "package_url": "https://pypi.org/project/RESTpy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/RESTpy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/kevinconway/rest.py" }, "release_url": "https://pypi.org/project/RESTpy/0.7.1/", "requires_dist": null, "requires_python": null, "summary": "Werkzeug extensions for building RESTful services.", "version": "0.7.1" }, "last_serial": 1414601, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d42bfa3ce0598b90a0dc518321ba6aac", "sha256": "acc96e89ec760cc254e7be2b9de5ac97dee345006c65370f16ad5c5975603d71" }, "downloads": -1, "filename": "RESTpy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d42bfa3ce0598b90a0dc518321ba6aac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11629, "upload_time": "2013-06-21T12:25:00", "url": "https://files.pythonhosted.org/packages/f6/12/9dd2d6d4f107473733a344754f1818efa67b9a7668846027059512112c42/RESTpy-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7cd7f7148decb257c7363371de156807", "sha256": "1c7b34eddacd380000df19c5e3438e66074420e4675c8137b207a896293d8c44" }, "downloads": -1, "filename": "RESTpy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "7cd7f7148decb257c7363371de156807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15149, "upload_time": "2013-06-22T02:47:24", "url": "https://files.pythonhosted.org/packages/1e/2b/697412365b99c1135209e1c9e6fa11f9e1a82c28c9e4b0646d32a0cf1937/RESTpy-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "db542f2b84d069706c828f04d29980c5", "sha256": "6edb44a60f863b8679cb1ef4f07749316b928e80f66eec1803792c0cb7bbfbb3" }, "downloads": -1, "filename": "RESTpy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "db542f2b84d069706c828f04d29980c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15078, "upload_time": "2013-06-22T03:28:52", "url": "https://files.pythonhosted.org/packages/ee/37/520dfe1c416a920efb46532dfc4debb6fe35f86ee05a36b4e7398e0a1a45/RESTpy-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "332b3dbec870eac80ebd30c05adc154b", "sha256": "5d6fb4263d6145a113eff8928c66dfb8f2d012e755db065867847f3bd2665223" }, "downloads": -1, "filename": "RESTpy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "332b3dbec870eac80ebd30c05adc154b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15079, "upload_time": "2013-06-22T03:34:16", "url": "https://files.pythonhosted.org/packages/b4/6b/5313aff322f024a5637b8c060ad291e8a8f85a87c381e331bab0f7a9399f/RESTpy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "83c29b5a0408151307cd35bda3b11ba9", "sha256": "4afff3587f306964f593f84f14d8a5e2b9ab3b1cb475c054ca8b74b8696d9281" }, "downloads": -1, "filename": "RESTpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "83c29b5a0408151307cd35bda3b11ba9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15507, "upload_time": "2013-06-22T03:43:30", "url": "https://files.pythonhosted.org/packages/4d/92/f104da78335373e169aee8d27bcaee78638cfc179eb3ea53aba8bda00f28/RESTpy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "72c1721e36026221c734d1e0976a3647", "sha256": "d2a03efdf870b5fdcb778bfd16781742d86f61d5df1708be1bac8c8867df0241" }, "downloads": -1, "filename": "RESTpy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "72c1721e36026221c734d1e0976a3647", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15488, "upload_time": "2013-06-22T16:29:26", "url": "https://files.pythonhosted.org/packages/7f/e0/06f908fac4922db150172382d7bc5cecbe252d4c8170fcea3d5cc5f92588/RESTpy-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5cb66f1e6034f04704a49b88b220aab9", "sha256": "1738a446e79bcec45eb84702eb8ae37441a78ab2aaa3a837b3f1a595156ab53d" }, "downloads": -1, "filename": "RESTpy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5cb66f1e6034f04704a49b88b220aab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15772, "upload_time": "2013-06-22T19:41:35", "url": "https://files.pythonhosted.org/packages/c7/0c/1fbd85af28e6adcd3e6091dabb26cbd6f07694fcecc23f53dc012f6485b7/RESTpy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1fa28001cf02969a5d5298228c76500e", "sha256": "e40d55ae9dccc864588748fd386049a4ff2e2205c8c246f04447834a74c835f7" }, "downloads": -1, "filename": "RESTpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "1fa28001cf02969a5d5298228c76500e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15786, "upload_time": "2013-06-22T19:48:38", "url": "https://files.pythonhosted.org/packages/26/bc/9dc18377bcad1d159cb572f673475260f06c2dc1bc43dddbb9acc95d04a1/RESTpy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d855e22d58f949e366e82128fffb9f93", "sha256": "09888c23cf5381fa3ba6369630a0bebfb10daf6c18af9eca1f0f6858a537a443" }, "downloads": -1, "filename": "RESTpy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "d855e22d58f949e366e82128fffb9f93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15851, "upload_time": "2013-06-22T20:14:48", "url": "https://files.pythonhosted.org/packages/3d/0e/e9fb5997c1d627ed1bd6bd419a36e555be213c3156065444f42b5c8b80cd/RESTpy-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "8c6030eaf007606319599ab98ce35224", "sha256": "129e257a598be162b5eedae68792b28d8e6e078b602fcf0ff581cdbe9909caff" }, "downloads": -1, "filename": "RESTpy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8c6030eaf007606319599ab98ce35224", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15853, "upload_time": "2013-06-22T20:17:42", "url": "https://files.pythonhosted.org/packages/74/15/de994d8f73fb729511d96265d59db5a536df23ecdc4abcd6dc9b99261b0d/RESTpy-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "b4f0b944801080acfe50beb360a59fac", "sha256": "7dd441b9cc36dd6bbdbcb8e6ced87e1c1f5a1ce4a390966085cc9df006d2e752" }, "downloads": -1, "filename": "RESTpy-0.2.4.tar.gz", "has_sig": false, "md5_digest": "b4f0b944801080acfe50beb360a59fac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15864, "upload_time": "2013-06-22T20:27:04", "url": "https://files.pythonhosted.org/packages/30/2c/e38ec73905981373bc8f1e7bd9ca84a83023a4d1cbfca4cd859799c4e59e/RESTpy-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "7bf910911eb128212a8cfd146dd58bb2", "sha256": "ec18deb2cd07bb6f85ccc5ae8aa364b6a8d0be95867a571ee29cb41684bbfdd8" }, "downloads": -1, "filename": "RESTpy-0.2.5.tar.gz", "has_sig": false, "md5_digest": "7bf910911eb128212a8cfd146dd58bb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15865, "upload_time": "2013-06-22T20:37:16", "url": "https://files.pythonhosted.org/packages/9d/b2/7f557b08d7a3c74558d23383b74314faeb546268fe1207af150b5ff36351/RESTpy-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6814ac1029d63d6079f1f7d380f052e4", "sha256": "20be46eaa3184b30cca82ae9f2fbb42f055e2d54d3fb26718becef449f0e3d45" }, "downloads": -1, "filename": "RESTpy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6814ac1029d63d6079f1f7d380f052e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15547, "upload_time": "2013-06-27T01:12:02", "url": "https://files.pythonhosted.org/packages/30/2e/a26ee0d224ca288e04f0b255a062938a3aa8c481fc823818e5fd034c354b/RESTpy-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "54961e86dbe99f5de22baf21b96e1bcc", "sha256": "3ad58dc920473e4590d30a83b07734bfa039fa08567010ec92d6943a9e9f1e15" }, "downloads": -1, "filename": "RESTpy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "54961e86dbe99f5de22baf21b96e1bcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15542, "upload_time": "2013-06-27T01:14:33", "url": "https://files.pythonhosted.org/packages/1e/72/05a3270be95c269204efc569fc9447aa2a359b56e405f6e9203e50eb0c95/RESTpy-0.3.1.tar.gz" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "8bcff2c8415a1efb22d273b160e20c4a", "sha256": "3a0fa8fe84dd22ff16201c664ee6f12049e1741ca3a4af28012f9404684e0ba1" }, "downloads": -1, "filename": "RESTpy-0.3.11.tar.gz", "has_sig": false, "md5_digest": "8bcff2c8415a1efb22d273b160e20c4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15912, "upload_time": "2013-06-27T11:37:27", "url": "https://files.pythonhosted.org/packages/bd/18/a6a23e98199a5e7a0e8dc9070149389aa8dcbd67c16386144a3991da924a/RESTpy-0.3.11.tar.gz" } ], "0.3.12": [ { "comment_text": "", "digests": { "md5": "aad4e8e29cc33a334a679dd055a249bc", "sha256": "5b427039cf5a97544a6816f655dfabd43adfe912dd5325dfafda8013eef48a33" }, "downloads": -1, "filename": "RESTpy-0.3.12.tar.gz", "has_sig": false, "md5_digest": "aad4e8e29cc33a334a679dd055a249bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15766, "upload_time": "2013-06-27T11:40:08", "url": "https://files.pythonhosted.org/packages/2e/3b/0fb233313dfac48ffb1f3d68795df3ba4fc2f06b79e6fdef382dd56df5d7/RESTpy-0.3.12.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8bd8a8380275d412df9dba1bfd40a466", "sha256": "bb81c391d2350af5c9df04ce4ac2bb2a9bdc0043793db158fbba4908504068b5" }, "downloads": -1, "filename": "RESTpy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8bd8a8380275d412df9dba1bfd40a466", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15441, "upload_time": "2013-06-27T01:27:43", "url": "https://files.pythonhosted.org/packages/4b/f6/39cbcf0b470b494673344731365f5a7d6c206d09523a6376e70c0254b565/RESTpy-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "2741106713ed79e2e2269d661398d3a0", "sha256": "f8694c0fc7663672aa8d7bc77bde9ae027b8a89c8ae571b015b2dcce31845001" }, "downloads": -1, "filename": "RESTpy-0.3.3.tar.gz", "has_sig": false, "md5_digest": "2741106713ed79e2e2269d661398d3a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15764, "upload_time": "2013-06-27T01:54:21", "url": "https://files.pythonhosted.org/packages/89/13/144d3dfcbdfb9c6151055766693e7a8cdb0c72fdd92b46492b4c7d51c5b3/RESTpy-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "772b562e3c68e2169ea089a1a1933097", "sha256": "3be5866faef3352b39b09b455265eb63b55c84db087228b45904fefd2e4eb182" }, "downloads": -1, "filename": "RESTpy-0.3.4.tar.gz", "has_sig": false, "md5_digest": "772b562e3c68e2169ea089a1a1933097", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15659, "upload_time": "2013-06-27T02:06:49", "url": "https://files.pythonhosted.org/packages/c5/89/48bafda6ab96dd5e8e4b34cbe5000374c3e2172bac07b6c588d28688af59/RESTpy-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "386d4736efa442a0691098c5ebcf8b58", "sha256": "921212e8fe16e1ff3a6ab4aa93790005d0a10850bc0c3dd0a441a2776e90848d" }, "downloads": -1, "filename": "RESTpy-0.3.5.tar.gz", "has_sig": false, "md5_digest": "386d4736efa442a0691098c5ebcf8b58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15665, "upload_time": "2013-06-27T10:04:06", "url": "https://files.pythonhosted.org/packages/e9/5e/1fb6f52b578b3d7349d63539b6386ee77d8859f09730f37bec066c48d5f9/RESTpy-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "9286b3eba1fce001af295749ec62d98e", "sha256": "588df647d930cb9f40aa57f7635466b667844e5e1c391fa67bb32ea91f356e0d" }, "downloads": -1, "filename": "RESTpy-0.3.6.tar.gz", "has_sig": false, "md5_digest": "9286b3eba1fce001af295749ec62d98e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15661, "upload_time": "2013-06-27T10:14:27", "url": "https://files.pythonhosted.org/packages/26/86/722cb9ec8da081037fc819cd805142f6e43c21e46204ea026941acebd866/RESTpy-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "3314ae3a9a79db9ee02f239c6047d836", "sha256": "46b4b55e9507f46cba6c5c4f155abf54c407d0a57de1d280e59687b17c1ac16c" }, "downloads": -1, "filename": "RESTpy-0.3.7.tar.gz", "has_sig": false, "md5_digest": "3314ae3a9a79db9ee02f239c6047d836", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15654, "upload_time": "2013-06-27T10:24:32", "url": "https://files.pythonhosted.org/packages/55/f7/3f0a338ff80282b8e5313257d67449d2a8ab73dd5fdebb45710dd4b266bd/RESTpy-0.3.7.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "768ee6f0a64f8b125659ba90d9addc89", "sha256": "10f4d286dd27cd03fff64297b237273c221b13a5f82b3fb1eb466c0f2756a5d6" }, "downloads": -1, "filename": "RESTpy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "768ee6f0a64f8b125659ba90d9addc89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16005, "upload_time": "2013-06-30T03:14:34", "url": "https://files.pythonhosted.org/packages/22/9e/7b9e4b768c165047027429616aa6550890897f56aa8ea0ae48c00e02493e/RESTpy-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "1815eec3a12916076e591e6d33bd4f25", "sha256": "3f969daa5c3a943fe9b58541b451ac06c324cfd3a5edb78f151c0ee99f67bef0" }, "downloads": -1, "filename": "RESTpy-0.4.1.tar.gz", "has_sig": false, "md5_digest": "1815eec3a12916076e591e6d33bd4f25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16008, "upload_time": "2013-06-30T03:15:35", "url": "https://files.pythonhosted.org/packages/bd/91/79a7db765483a9fad6655f0e6a46373044fc98645934c2338e776b84c730/RESTpy-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "852cf6808f6067d243913c0efe738ac1", "sha256": "171fb8992e472380e7f7297247243eb89186dd8c16823451f0c13f6fe1207117" }, "downloads": -1, "filename": "RESTpy-0.4.2.tar.gz", "has_sig": false, "md5_digest": "852cf6808f6067d243913c0efe738ac1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15887, "upload_time": "2013-06-30T15:29:49", "url": "https://files.pythonhosted.org/packages/fc/00/67e9ecd054f0b9e32b6084dbb7cae1790ba514ebbbee4b6cd6dc51946d95/RESTpy-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b8c96ddfd3af162a05442fc8601975d6", "sha256": "8bdb49b38ad8333b46a293f3030b63e1fba13127882b172d8181b9ad3655f585" }, "downloads": -1, "filename": "RESTpy-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b8c96ddfd3af162a05442fc8601975d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11234, "upload_time": "2013-07-14T01:00:59", "url": "https://files.pythonhosted.org/packages/b3/ff/1cd093ccd0d285dad2ae2f7323a94c843cef7e5f3eb0e1ad0ee6ade98b70/RESTpy-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "494e5fb5bdea11630541e5b86d91e6a2", "sha256": "784407c83fc5864ecc1ecf23f4d7ac3313394d2cfe4156075e812e8a60757cec" }, "downloads": -1, "filename": "RESTpy-0.5.1.tar.gz", "has_sig": false, "md5_digest": "494e5fb5bdea11630541e5b86d91e6a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13234, "upload_time": "2013-07-14T01:39:42", "url": "https://files.pythonhosted.org/packages/e7/1d/0872be40331ac5dc98468b0a1f38a8e342f319cb87ba84176699485552d5/RESTpy-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "51e76bd27ffb3d0ea7b39cdc689b03b4", "sha256": "2d13ff4d9b8a5755edae9bcbe35582701d354851211fc31e645fe0c9d57edeeb" }, "downloads": -1, "filename": "RESTpy-0.5.2.tar.gz", "has_sig": false, "md5_digest": "51e76bd27ffb3d0ea7b39cdc689b03b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13382, "upload_time": "2013-07-14T01:41:17", "url": "https://files.pythonhosted.org/packages/94/7f/f86100d14c567e21621f4e23fdc15996693d842c945189189df5fac317ad/RESTpy-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "7a63125cca41991def189e35a23a3272", "sha256": "5732aa416ab789ac3d09e2434493769ca7e41cb60c81173bf96b33ed1359e008" }, "downloads": -1, "filename": "RESTpy-0.5.3.tar.gz", "has_sig": false, "md5_digest": "7a63125cca41991def189e35a23a3272", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13459, "upload_time": "2013-07-14T06:03:44", "url": "https://files.pythonhosted.org/packages/97/64/dc4b52a8c86a78ac1de47cbcdcbf0f3fd1ae2754b7f56a7820c6ea4e53d4/RESTpy-0.5.3.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "f7ed104961b1aef256a373018da5d10f", "sha256": "9b2a627618c332d461e8fb665d33635a9c7c9388e3d64b18951186cf2b40747f" }, "downloads": -1, "filename": "RESTpy-0.6.0.tar.gz", "has_sig": false, "md5_digest": "f7ed104961b1aef256a373018da5d10f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8394, "upload_time": "2013-08-09T01:35:07", "url": "https://files.pythonhosted.org/packages/4b/bc/21dd15c9b2ef48b8617488229f10956caeb4b604e2936479608045e3d648/RESTpy-0.6.0.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "035ceb454d48b4c75c959df3adc8a041", "sha256": "caca42130e6e7a978915143a4e3c760f1c30d95e30d67b7a05c51fb5a422fcda" }, "downloads": -1, "filename": "RESTpy-0.6.3.tar.gz", "has_sig": false, "md5_digest": "035ceb454d48b4c75c959df3adc8a041", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8219, "upload_time": "2014-02-01T22:21:55", "url": "https://files.pythonhosted.org/packages/34/cb/b551fb8ece06096bde02ab271ced9ae0ff0c9777e566f88ab041cc8c8447/RESTpy-0.6.3.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "1e707ebee517c9652c4e26bab6b446c0", "sha256": "d2dc3d7f09beb3ed10664a9ccb9544a751385bfd7b279a44ffde8b448803c27b" }, "downloads": -1, "filename": "RESTpy-0.7.0.tar.gz", "has_sig": false, "md5_digest": "1e707ebee517c9652c4e26bab6b446c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14042, "upload_time": "2015-02-07T21:54:51", "url": "https://files.pythonhosted.org/packages/7c/b0/63abfddee66136908861adb9e9ae50e4e15920126c5b465bc4a1f3b0b683/RESTpy-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "13898f68bece66053e7d6653082b904d", "sha256": "e1188dbb753875b0027ee1bb7f6b5923d872b2c822ffbc9ebeaaae6942cf1a88" }, "downloads": -1, "filename": "RESTpy-0.7.1.tar.gz", "has_sig": false, "md5_digest": "13898f68bece66053e7d6653082b904d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14057, "upload_time": "2015-02-08T06:16:09", "url": "https://files.pythonhosted.org/packages/53/3d/09b7e97f28612e28c84ae9586f3c4db4704e3e754e3723a27bd3d3b9ef23/RESTpy-0.7.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "13898f68bece66053e7d6653082b904d", "sha256": "e1188dbb753875b0027ee1bb7f6b5923d872b2c822ffbc9ebeaaae6942cf1a88" }, "downloads": -1, "filename": "RESTpy-0.7.1.tar.gz", "has_sig": false, "md5_digest": "13898f68bece66053e7d6653082b904d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14057, "upload_time": "2015-02-08T06:16:09", "url": "https://files.pythonhosted.org/packages/53/3d/09b7e97f28612e28c84ae9586f3c4db4704e3e754e3723a27bd3d3b9ef23/RESTpy-0.7.1.tar.gz" } ] }