{
"info": {
"author": "Ingo Heimbach",
"author_email": "i.heimbach@fz-juelich.de",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Framework :: Flask",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Internet :: WWW/HTTP"
],
"description": "Flask-RESTful-HAL\n=================\n\nIntroduction\n------------\n\n*Flask-RESTful-HAL* is an extension for\n`Flask-RESTful `__. It\nadds support for building `HAL\nAPIs `__.\n\nInstallation\n------------\n\nThe latest version can be obtained from PyPI:\n\n.. code:: python\n\n pip install flask-restful-hal\n\nUsage\n-----\n\n*Flask-RESTful-HAL* extends the ``Resource`` base class of\nFlask-RESTful. Instead of defining a ``get`` method, a ``data`` method\nmust be implemented which returns the contents of the resource class. In\naddition the two optional methods ``embedded`` and ``links`` can be\ndefined to describe which resources are embedded and linked to the\ncurrent resource. All three methods can be defined as ``staticmethod``\nif no data needs to be shared between the method invocations (see the\n`section about data sharing <#sharing-data-between-methods>`__ for more\ninformation).\n\nExample of a minimal resource class\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from flask import Flask\n from flask_restful_hal import Api, Resource\n\n TODOS = {\n 'todo1': {\n 'task': 'build an API'\n },\n 'todo2': {\n 'task': '?????'\n },\n 'todo3': {\n 'task': 'profit!'\n },\n }\n\n\n class Todo(Resource):\n @staticmethod\n def data(todo):\n return TODOS[todo]\n\n\n app = Flask(__name__)\n api = Api(app)\n api.add_resource(Todo, '/todos/')\n app.run()\n\nIn this example, the only required method ``data`` is implemented and\nreturns the requested todo entry as a Python dictionary. By default,\nthis dictionary is parsed to a json string and returned in an HTTP\nresponse with content type ``application/hal+json``. If the Python\npackage ``json2html`` is installed, the client can request an HTML\noutput as an alternative (by sending ``Accept: text/html``).\n\nWhen requesting the resource, the client may add the query string\n``links=true`` to get linked resources. Since no ``links`` method is\nimplemented, only the default ``self`` link will be included in the\nresponse.\n\nExample of a resource class with embedded and linked resources\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from flask import Flask\n from flask_restful_hal import Api, Embedded, Link, Resource\n\n TODOS = {\n 'todo1': {\n 'task': 'build an API'\n },\n 'todo2': {\n 'task': '?????'\n },\n 'todo3': {\n 'task': 'profit!'\n },\n }\n\n\n class Todo(Resource):\n @staticmethod\n def data(todo):\n return TODOS[todo]\n\n @staticmethod\n def links(todo):\n return Link('collection', '/todos')\n\n\n class TodoList(Resource):\n @staticmethod\n def data():\n return {'size': len(TODOS)}\n\n @staticmethod\n def embedded():\n arguments_list = [(todo, ) for todo in sorted(TODOS.keys())]\n return Embedded('items', Todo, *arguments_list)\n\n @staticmethod\n def links():\n arguments_list = [('/todos/{}'.format(todo), {'title': todo}) for todo in sorted(TODOS.keys())]\n return Link('items', *arguments_list)\n\n\n app = Flask(__name__)\n api = Api(app)\n api.add_resource(TodoList, '/todos')\n api.add_resource(Todo, '/todos/')\n app.run()\n\n1. Links can be added by returning one or multiple ``Link`` objects from\n a static ``links`` routine. The ``Link`` constructor takes a\n relationship (e.g. ``collection``, ``up`` or ``item``) and one or\n multiple link targets. Link targets can either be expressed as a\n string (href attribute) or as a tuple consisting of a href string and\n a dictionary with extra attributes. In the example ``title`` is used\n as an extra attribute.\n2. Embedded resources are expressed with one or multiple ``Embedded``\n objects. Again, the first parameter is a relationship. The second\n parameter is the embedded resource class and the following parameters\n are tuples with constructor arguments for that class.\n\nBy default, no resources are embedded. Embedding resources can be\nrequested with the query string ``embed=true`` which affects all\nresources recursively (embedded resources can embed resources as well).\nThis behavior can be changed by specifying a concrete level of embedding\n(e.g. ``embed=2`` would only embed two levels of resources).\n\nSharing data between methods\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn most cases, the ``data``, ``embedded`` and ``links`` methods need\naccess to the same data source. In order to avoid accessing the data\nbackend (for example a database) three times with similar queries you\ncan define a forth ``pre_hal`` method which is called on every ``GET``\nrequest before ``data``, ``embedded`` or ``links`` are executed. In\n``pre_hal`` you can access the data backend and cache the result in\ninstance variables of the current resource object.\n\n.. code:: python\n\n class TodoList(Resource):\n def pre_hal(self, embed, include_links, todo):\n self.todos = db.query(...)\n\n def data(self):\n return {'size': len(self.todos)}\n\n def embedded(self):\n arguments_list = [(todo, ) for todo in sorted(self.todos.keys())]\n return Embedded('items', Todo, *arguments_list)\n\n def links(self):\n arguments_list = [('/todos/{}'.format(todo), {'title': todo}) for todo in sorted(self.todos.keys())]\n return Link('items', *arguments_list)\n\nSecuring API endpoints\n~~~~~~~~~~~~~~~~~~~~~~\n\n*Flask-RESTful-HAL* does not include any authorization mechanisms to\nsecure your api endpoints. However, you can easily integrate available\nFlask extensions by overriding the ``Resource`` class. The following\nexample uses\n`Flask-JWT-Extended `__\nto secure ``GET`` requests with *JSON Web Tokens*. Tokens are generated\nby a special endpoint ``/auth_token`` that is secured with *basic auth*:\n\n.. code:: python\n\n from flask import Flask, g\n from flask_httpauth import HTTPBasicAuth\n from flask_jwt_extended import create_access_token, jwt_required\n from flask_restful import Resource as RestResource\n from flask_restful_hal import Api, Embedded, Link, Resource as HalResource\n\n TODOS = {\n 'todo1': {\n 'task': 'build an API'\n },\n 'todo2': {\n 'task': '?????'\n },\n 'todo3': {\n 'task': 'profit!'\n },\n }\n\n http_basic_auth = HTTPBasicAuth()\n\n\n @http_basic_auth.verify_password\n def verify_password(username, password):\n g.username = username\n # TODO: implement some check here...\n return True\n\n\n class SecuredHalResource(HalResource):\n @jwt_required\n def get(self, **kwargs):\n return super().get(**kwargs)\n\n\n class AuthToken(RestResource):\n @http_basic_auth.login_required\n def get(self):\n auth_token = create_access_token(identity=g.username)\n return jsonify({'auth_token': auth_token})\n\n\n class Todo(SecuredHalResource):\n @staticmethod\n def data(todo):\n return TODOS[todo]\n\n\n app = Flask(__name__)\n app.config['JWT_SECRET_KEY'] = 'use your super secret key here!'\n api = Api(app)\n api.add_resource(AuthToken, '/auth_token')\n api.add_resource(Todo, '/todos/')\n app.run()\n\nTokens requested with the ``/auth_token`` endpoint can then be used in\nthe HTTP authorization header with the *Bearer* scheme to gain access to\nsecured resources:\n\n.. code:: http\n\n Authorization: Bearer \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/sciapp/flask-restful-hal",
"keywords": "Flask,RESTful,HAL",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "flask-restful-hal",
"package_url": "https://pypi.org/project/flask-restful-hal/",
"platform": "",
"project_url": "https://pypi.org/project/flask-restful-hal/",
"project_urls": {
"Homepage": "https://github.com/sciapp/flask-restful-hal"
},
"release_url": "https://pypi.org/project/flask-restful-hal/0.2.1/",
"requires_dist": [
"Flask",
"Flask-RESTful",
"future"
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4",
"summary": "HAL extension for Flask-RESTful",
"version": "0.2.1"
},
"last_serial": 3927514,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "aff94eecddb131ac1172284678351729",
"sha256": "a835070b958e4155b73708a53a3bbb440c778888acf0177918b72a36d0c89348"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "aff94eecddb131ac1172284678351729",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9648,
"upload_time": "2018-03-21T16:38:41",
"url": "https://files.pythonhosted.org/packages/06/b2/5d944b9fb648ccb1f61740a19ca1625564bdc2991961b1daa862ef2dde82/flask_restful_hal-0.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0284806783caeaa193a37fc018572dc0",
"sha256": "591a68b16f526f41f3a8443a684e6679a75308fa8dc6e67edd17d659346d3d2b"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0284806783caeaa193a37fc018572dc0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9643,
"upload_time": "2018-03-21T16:33:08",
"url": "https://files.pythonhosted.org/packages/9b/74/baac3d2ef68735501a348cbec0a63b80b16983e700847e208fcf191b9d47/flask_restful_hal-0.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b7dc009aabccf6877ed5af9ce818e393",
"sha256": "6d09853bf7a92c878781d41e02e169bc83eeac7c58a02fa3c455c3cebb6970fc"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b7dc009aabccf6877ed5af9ce818e393",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6304,
"upload_time": "2018-03-21T16:33:09",
"url": "https://files.pythonhosted.org/packages/2b/7e/13dec4e8218f77f241b1016e3966141629d0c7ca8f9ebdf2025cedc4735d/flask-restful-hal-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "eb02c95cdcdb34b0c7542f767d0f8bdc",
"sha256": "bd907d771390940d395d57b23fe121f79432636872125490558f2243b7ee6a0c"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "eb02c95cdcdb34b0c7542f767d0f8bdc",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10863,
"upload_time": "2018-03-22T09:25:19",
"url": "https://files.pythonhosted.org/packages/42/57/37cde7dd290aeaa494290e9f0ce62937ef0c267e0ac4db7f5f0bdd9c5368/flask_restful_hal-0.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "db66a2eccc60ff541e6d2707fa453944",
"sha256": "f97db2274f821ba7ded77f2ba276806b99296d1cd754fd69c376b42f502b39bf"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "db66a2eccc60ff541e6d2707fa453944",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7146,
"upload_time": "2018-03-22T09:25:21",
"url": "https://files.pythonhosted.org/packages/99/1f/39410c9184d01dd791433883bbf45358e76a3a3a4ed3d1278606f5c15c23/flask-restful-hal-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "75d821f1d0d5894069b1aab66d597585",
"sha256": "f3f9c977092c2129d404c51297072e5565a9d8bef06a4beac03002a0116e0590"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "75d821f1d0d5894069b1aab66d597585",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10857,
"upload_time": "2018-03-22T10:16:37",
"url": "https://files.pythonhosted.org/packages/0f/ee/5128b9f195e5a98fcf4cc5467a035a2bc7d37cfa5ac431868a6c902f2fe3/flask_restful_hal-0.1.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b66b95c6f9631d38a3a6e116f501567d",
"sha256": "8f94377394c9b791df5474d910c5005a58e17e231c6f0f82949f35efcd56f36d"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "b66b95c6f9631d38a3a6e116f501567d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7156,
"upload_time": "2018-03-22T10:16:39",
"url": "https://files.pythonhosted.org/packages/e0/4b/3f8cae79f7ce50860afa9f49982c46be89c10b64d9b7e7476a79e265f8e4/flask-restful-hal-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "2fda9adc01725f5744a2cf6a0408b553",
"sha256": "22e58b0725b200dc5acec835e6e6e9658c2b001c61806289280cf0d89195dce4"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "2fda9adc01725f5744a2cf6a0408b553",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10824,
"upload_time": "2018-03-23T13:40:27",
"url": "https://files.pythonhosted.org/packages/af/b7/deb0f0662691e9b99eb4f2160246938b4f7b7bbd91b7a5a123329c4e73c6/flask_restful_hal-0.1.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9121238cf56f113e07abfafd6e89021e",
"sha256": "1a204556998ed3c4a13a9ef6f3994a1a14d1b7287ad19b5bfa22462cc8c3b372"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "9121238cf56f113e07abfafd6e89021e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7137,
"upload_time": "2018-03-23T13:40:28",
"url": "https://files.pythonhosted.org/packages/f7/da/83818593723b459b3dbce2d887de67ba7e138e2f2abf25211adca3734fda/flask-restful-hal-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "a2a00e086777b0c07b2f6b0179f50a8c",
"sha256": "c174623a30fc1c1412fc985cecf525f4fd856c63f30c3337e72c2e511cafcf89"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a2a00e086777b0c07b2f6b0179f50a8c",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10878,
"upload_time": "2018-03-23T15:02:02",
"url": "https://files.pythonhosted.org/packages/5c/83/375b0ffcb07dbf4a37237e9f827f2b801a86e4415e2c81c5f4db0b653477/flask_restful_hal-0.1.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5dc3e2f5434e7a66a2e116589ce7fa3d",
"sha256": "b769e69186f941ed69048dc9b54ad3f273983e055f4e5da32e9ee2ae58d3804a"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "5dc3e2f5434e7a66a2e116589ce7fa3d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7252,
"upload_time": "2018-03-23T15:02:03",
"url": "https://files.pythonhosted.org/packages/56/1c/45a0eaaa4158a6b1d00d2c9f2b8c481293d0258b561afb31b2764ef2d55c/flask-restful-hal-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "2266aeabd026f774a92a4fc45c1bf350",
"sha256": "dc50a1e52e9e5dbfce01367e5fed0dafce04190d3284859bd650636b4ef5fb34"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "2266aeabd026f774a92a4fc45c1bf350",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10879,
"upload_time": "2018-03-28T08:30:27",
"url": "https://files.pythonhosted.org/packages/cc/02/53c7a7bfe6bddb566be8c42a96c761f8919426a9c6c06737365f293ae70e/flask_restful_hal-0.1.5-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9b1b22ec57730a82858712584084145f",
"sha256": "91ed140f9c93a49c14c048e924be42e23edbfbb154d3607d1f6ca15c455e07f8"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "9b1b22ec57730a82858712584084145f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8119,
"upload_time": "2018-03-28T08:30:28",
"url": "https://files.pythonhosted.org/packages/62/c0/f60ec99e73d8ac05c8cbe77de86d41307a9c75be407f00ecd62e0b06859c/flask-restful-hal-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "58e953b5e27f3ec81cb776e0d648fddd",
"sha256": "e73fa6cd3bbd049e30e0838a3708a6de83301fd435a78f5292703677ae594c6b"
},
"downloads": -1,
"filename": "flask_restful_hal-0.1.6-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "58e953b5e27f3ec81cb776e0d648fddd",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7820,
"upload_time": "2018-04-05T09:12:50",
"url": "https://files.pythonhosted.org/packages/9d/1f/5635c646fc96b2326675ae4463670d5025c583f0c94d33d359ce944b82eb/flask_restful_hal-0.1.6-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5b42cff46fba17d6b523c758149588fe",
"sha256": "7bdbb850e3b799bb821a7985051e7dadb8387910e0c878c3e91375a049845ed9"
},
"downloads": -1,
"filename": "flask-restful-hal-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "5b42cff46fba17d6b523c758149588fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8144,
"upload_time": "2018-04-05T09:12:51",
"url": "https://files.pythonhosted.org/packages/cc/7f/3b025732a616c3ea5f562e79533a3bf2d0e6b8fcfe5ac85891a2e47af711/flask-restful-hal-0.1.6.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "92216b812f7fcbd8867391daaea17769",
"sha256": "032a615af2d5102ebf9894417a6619aa426a4688fd00f6d6aad4ac0ab206a434"
},
"downloads": -1,
"filename": "flask_restful_hal-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "92216b812f7fcbd8867391daaea17769",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8227,
"upload_time": "2018-06-04T07:54:57",
"url": "https://files.pythonhosted.org/packages/55/75/df9caca6349a654adc416833999c7dde9f79ca0370b7eb119a66fc0f97f3/flask_restful_hal-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "32d2e984a700bba6468e947dae67b167",
"sha256": "1f80818d9c346188f2d54ada6b28cedfdc7c84a3450a37d0048822e06f50a52c"
},
"downloads": -1,
"filename": "flask-restful-hal-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "32d2e984a700bba6468e947dae67b167",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9768,
"upload_time": "2018-06-04T07:54:58",
"url": "https://files.pythonhosted.org/packages/36/75/28c66adfcc76739526e7f32d416d5d0463b0036579869a556c852cb587f9/flask-restful-hal-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "f8b1d7bff8b2460aada80f7d4ba53341",
"sha256": "f9d0a22d4c409a2f63bc48db32bbe8fb45611c2bac3d933c70ef66d13f9bdf92"
},
"downloads": -1,
"filename": "flask_restful_hal-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "f8b1d7bff8b2460aada80f7d4ba53341",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4",
"size": 8249,
"upload_time": "2018-06-04T09:51:07",
"url": "https://files.pythonhosted.org/packages/86/71/1363a98c88b45ecd1c2c0f63ebdec44628757a1fcc007bfcc688bd58a64a/flask_restful_hal-0.2.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3d90d029908573a96e4cf833dc45a66a",
"sha256": "0a9819870187001e387a8b3a6f38e66c456311bf83dc28ad3ac966c2e87831d6"
},
"downloads": -1,
"filename": "flask-restful-hal-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "3d90d029908573a96e4cf833dc45a66a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4",
"size": 9817,
"upload_time": "2018-06-04T09:51:08",
"url": "https://files.pythonhosted.org/packages/ef/6e/354e70b688aa422002406dabb18f837a053f9f863efffed817f517555c31/flask-restful-hal-0.2.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f8b1d7bff8b2460aada80f7d4ba53341",
"sha256": "f9d0a22d4c409a2f63bc48db32bbe8fb45611c2bac3d933c70ef66d13f9bdf92"
},
"downloads": -1,
"filename": "flask_restful_hal-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "f8b1d7bff8b2460aada80f7d4ba53341",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4",
"size": 8249,
"upload_time": "2018-06-04T09:51:07",
"url": "https://files.pythonhosted.org/packages/86/71/1363a98c88b45ecd1c2c0f63ebdec44628757a1fcc007bfcc688bd58a64a/flask_restful_hal-0.2.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3d90d029908573a96e4cf833dc45a66a",
"sha256": "0a9819870187001e387a8b3a6f38e66c456311bf83dc28ad3ac966c2e87831d6"
},
"downloads": -1,
"filename": "flask-restful-hal-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "3d90d029908573a96e4cf833dc45a66a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4",
"size": 9817,
"upload_time": "2018-06-04T09:51:08",
"url": "https://files.pythonhosted.org/packages/ef/6e/354e70b688aa422002406dabb18f837a053f9f863efffed817f517555c31/flask-restful-hal-0.2.1.tar.gz"
}
]
}