{ "info": { "author": "Keming Yang", "author_email": "kemingy94@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": "# Flaskerk\n\n[![Build Status](https://travis-ci.com/kemingy/flaskerk.svg?branch=master)](https://travis-ci.com/kemingy/flaskerk)\n![GitHub](https://img.shields.io/github/license/kemingy/flaskerk)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flaskerk)\n\nProvide OpenAPI document and validation for flask service.\n\nMainly built for Machine Learning Model services.\n\nIf you're using Falcon, check my another library [Falibrary](https://github.com/kemingy/falibrary).\n\n## Features\n\n- [x] JSON data(request&response) validation with [pydantic](https://github.com/samuelcolvin/pydantic/)\n- [x] support HTTP exceptions (default&customized)\n- [x] [OpenAPI spec](https://github.com/OAI/OpenAPI-Specification)\n- [x] [Redoc UI](https://github.com/Redocly/redoc)\n- [x] [Swagger UI](https://github.com/swagger-api/swagger-ui)\n- [x] support flask url path validation\n- [ ] support header validation\n- [ ] support cookie validation\n\n## Quick Start\n\ninstall with `pip install flaskerk` (Python 3.6+)\n\n### Simple demo\n\n```py\nfrom flask import Flask, request, jsonify\nfrom flaskerk import Flaskerk\nfrom pydantic import BaseModel\n\nclass Query(BaseModel):\n text: str\n\napp = Flask(__name__)\napi = Flaskerk()\n\n@app.route('/api/classify')\n@api.validate(query=Query)\ndef classify():\n print(request.query)\n return jsonify(label=0)\n\nif __name__ == \"__main__\":\n api.register(app)\n app.run()\n```\n\nChanges you need to make:\n\n* create model with [`pydantic`](https://github.com/samuelcolvin/pydantic/)\n* decorate the route function with `Flaskerk.validate()`\n* specify which part you need in `validate`\n * `query` (args in url)\n * `data` (JSON data)\n * `resp` (response)\n * `x` (HTTP Exceptions)\n* register to Flask application\n\nAfter that, this library will help you validate the incoming request and provide API document in `/docs`.\n\nFor more details, check the [document](https://kemingy.github.io/flaskerk).\n\n\n### More feature\n\n```py\nfrom flask import Flask, request\nfrom pydantic import BaseModel, Schema\nfrom random import random\nfrom flaskerk import Flaskerk, HTTPException\n\napp = Flask(__name__)\napi = Flaskerk()\n\nclass Query(BaseModel):\n text: str\n\nclass Response(BaseModel):\n label: int\n score: float = Schema(\n ...,\n gt=0,\n lt=1,\n )\n\nclass Data(BaseModel):\n uid: str\n limit: int\n vip: bool\n\ne403 = HTTPException(code=403, msg='lucky for you')\n\n@app.route('/api/predict//', methods=['POST'])\n@api.validate(query=Query, data=Data, resp=Response, x=[e403])\ndef predict(source, target):\n print(f'=> from {source} to {target}') # path\n print(f'Data: {request.json_data}') # Data\n print(f'Query: {request.query}') # Query\n if random() < 0.5:\n e403.abort()\n return Response(label=int(10 * random()), score=random())\n\nif __name__ == '__main__':\n api.register(app)\n app.run()\n```\n\ntry it with `http POST ':5000/api/predict/zh/en?text=hello' uid=0b01001001 limit=5 vip=true`\n\nOpen the docs in http://127.0.0.1:5000/docs .\n\nFor more examples, check [examples](/examples).\n\n## FAQ\n\n> Can I just do the validation without generating API document?\n\nSure. If you don't register it to Flask application, there won't be document routes.\n\n> \n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kemingy/flaskerk", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "flaskerk", "package_url": "https://pypi.org/project/flaskerk/", "platform": "", "project_url": "https://pypi.org/project/flaskerk/", "project_urls": { "Homepage": "https://github.com/kemingy/flaskerk" }, "release_url": "https://pypi.org/project/flaskerk/0.5.3/", "requires_dist": [ "flask", "pydantic" ], "requires_python": "", "summary": "", "version": "0.5.3" }, "last_serial": 5954670, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "80ce4d29b958086f7c96f56916ea1486", "sha256": "b328ef6481e1084518bf03a9d614bbf32548d1b3b1745e2e52fc32234d00670f" }, "downloads": -1, "filename": "flaskerk-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "80ce4d29b958086f7c96f56916ea1486", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4892, "upload_time": "2019-08-20T08:32:28", "url": "https://files.pythonhosted.org/packages/52/18/92a17029f16e76fa438659704b94de9bae267f064ca9a8a2f52c65fc162f/flaskerk-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24a70531c0b967cd29a7ade11b789855", "sha256": "43cbaeaa68e17fa1333e65deb2f5e99caab2c9af36562a8a42e55285e35b2c68" }, "downloads": -1, "filename": "flaskerk-0.1.0.tar.gz", "has_sig": false, "md5_digest": "24a70531c0b967cd29a7ade11b789855", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3811, "upload_time": "2019-08-20T08:32:30", "url": "https://files.pythonhosted.org/packages/61/12/e5d9a6884337d8e938b4630a81025581541d5104165e9e827d7557404fba/flaskerk-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0685d6e470eca3c5b3d94ac5c1118807", "sha256": "db23d5017c3c2086ae6a45b921e145b0a552d0943d80c64f1df325f37403ee70" }, "downloads": -1, "filename": "flaskerk-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0685d6e470eca3c5b3d94ac5c1118807", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6083, "upload_time": "2019-08-22T07:22:52", "url": "https://files.pythonhosted.org/packages/33/ca/b2254e9251e92d06f05abaa2be6f188d38e1841d262179cb4eced9344120/flaskerk-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "972310872d35b81935e3c3f6f1122514", "sha256": "3ea1658ea88feec0eb5f0a12ff276ea2461377860938cfaf939d4f5a9ff5e7e4" }, "downloads": -1, "filename": "flaskerk-0.2.0.tar.gz", "has_sig": false, "md5_digest": "972310872d35b81935e3c3f6f1122514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5032, "upload_time": "2019-08-22T07:22:54", "url": "https://files.pythonhosted.org/packages/93/da/f0be66d3938d7d92c17aa55f1a38a52937c864ffa658b1d1ab796d0a7192/flaskerk-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ce20d235a32cff466fd9fa2ce6ea6a60", "sha256": "a269b4a59c4b4289c8c5aec7367e5865e330571014b838be3b64f2573355e9eb" }, "downloads": -1, "filename": "flaskerk-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ce20d235a32cff466fd9fa2ce6ea6a60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7697, "upload_time": "2019-08-26T01:48:10", "url": "https://files.pythonhosted.org/packages/fc/da/6a79e009678bbd966ed07289d133d92d1d09fe4d4c9014aaf0ee4962e883/flaskerk-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5bc7f6a498a934875a071e8ed240565", "sha256": "b598e51f570b6e6275cd048e59094027b9548441da8437b9f8e3d2c5ad8e1132" }, "downloads": -1, "filename": "flaskerk-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c5bc7f6a498a934875a071e8ed240565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6182, "upload_time": "2019-08-26T01:48:12", "url": "https://files.pythonhosted.org/packages/07/e0/531b2ef62aa3d738af9f23b7b71d225233c8bdf0b262c260bd5700c685f1/flaskerk-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c96e30f2a6213e4d34c60189ea07426a", "sha256": "5f14f8a1c3dfc32454ac2d76d80c4390e23aa307b2ecf066551dba8e09944412" }, "downloads": -1, "filename": "flaskerk-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c96e30f2a6213e4d34c60189ea07426a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7827, "upload_time": "2019-08-26T02:15:42", "url": "https://files.pythonhosted.org/packages/c7/30/1b4e9100222a13e2571094229601d39069479bcc1c0e880acdf44e6d9cad/flaskerk-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8caa7e7362551a408e665f0477fcf3c", "sha256": "c254c2febd2e9bc879e6c4101cf17c56cc46089f7c1da66d86f2fdd3a235091d" }, "downloads": -1, "filename": "flaskerk-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e8caa7e7362551a408e665f0477fcf3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6301, "upload_time": "2019-08-26T02:15:44", "url": "https://files.pythonhosted.org/packages/49/03/5480363a4c0313ee83a72457230057053a6fe525ef5d72d7313d498f7762/flaskerk-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "f721fc29cbdb1c4cb1290b020fe2a6b6", "sha256": "3020e4e0d64463bfc321954dcb92b0b66becfa202ea37f484b8e56de35741111" }, "downloads": -1, "filename": "flaskerk-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f721fc29cbdb1c4cb1290b020fe2a6b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8401, "upload_time": "2019-08-28T11:17:29", "url": "https://files.pythonhosted.org/packages/5f/d7/82ba104ab73d8bb036f973971eac0030fd1d49d164653c52028163657f52/flaskerk-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e262bdf709965e703cb340ba3807823c", "sha256": "420004c030973fb7f30eaad633f4afc972b5594a4339fc8823e5e0d08be7d774" }, "downloads": -1, "filename": "flaskerk-0.3.2.tar.gz", "has_sig": false, "md5_digest": "e262bdf709965e703cb340ba3807823c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6779, "upload_time": "2019-08-28T11:17:30", "url": "https://files.pythonhosted.org/packages/74/c7/b863b069f2cc7e13b4a3abe44d0a7386c1aa19411ecd1f44bc5712016a4a/flaskerk-0.3.2.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "94ef5e9f7664d0f93b5a115f311fe8ed", "sha256": "6ef69571761fdd31c7e6f632584623ff4c5c9613cd3ce466b450c9507184026f" }, "downloads": -1, "filename": "flaskerk-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "94ef5e9f7664d0f93b5a115f311fe8ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8470, "upload_time": "2019-08-30T03:51:38", "url": "https://files.pythonhosted.org/packages/d7/22/d3187eceb69bea63ab8f4fbdaf98a88c35c4560517fd1b2cfe75dd3bc93e/flaskerk-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30703c6b0a2af51bd2f638c6dfee01ae", "sha256": "6d6bf3704b03dc352c1603586058ac5f3e17384adce5ca678cebbb4241e0c1ca" }, "downloads": -1, "filename": "flaskerk-0.3.4.tar.gz", "has_sig": false, "md5_digest": "30703c6b0a2af51bd2f638c6dfee01ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6819, "upload_time": "2019-08-30T03:51:40", "url": "https://files.pythonhosted.org/packages/76/f2/c9569f2fe00578c0aeed3e866074672c983c0ed8434a5329d33110181dd4/flaskerk-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "3cc9fca1c163edbe2654945bca813dff", "sha256": "ebec302e2befe5569fc274c66a8d6db734e2a199cb12a81c6a971a624baa27e4" }, "downloads": -1, "filename": "flaskerk-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3cc9fca1c163edbe2654945bca813dff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8526, "upload_time": "2019-09-18T02:04:21", "url": "https://files.pythonhosted.org/packages/d9/53/040cc4a9f125d668183c070133927cd83e38479f35017c1398d5fb45a862/flaskerk-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7bb1b054521743ca6338adcdf8e0509", "sha256": "e46a160687f2f517f8a1d771928df9abfbb7dc9a4991264dcfdc23ff169e6add" }, "downloads": -1, "filename": "flaskerk-0.3.5.tar.gz", "has_sig": false, "md5_digest": "c7bb1b054521743ca6338adcdf8e0509", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6886, "upload_time": "2019-09-18T02:04:23", "url": "https://files.pythonhosted.org/packages/4a/40/46330596737bbfbcaf4f0426c748b68df366105a9b2b903cb6e5234821b5/flaskerk-0.3.5.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "dba435a15e1ac5c4cea6edcac665b68c", "sha256": "8fdf0f8388d1fff1d8da5a7d53a3152c56f3cedc6b68f72b95a1846b46486fc8" }, "downloads": -1, "filename": "flaskerk-0.3.7-py3-none-any.whl", "has_sig": false, "md5_digest": "dba435a15e1ac5c4cea6edcac665b68c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8505, "upload_time": "2019-09-25T04:01:56", "url": "https://files.pythonhosted.org/packages/80/6e/366bcf24fe11bec7fb3a5ed805313c7f3581e5da9cf9a80bdd6a43d332b2/flaskerk-0.3.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2584b1bb52580f52d8c20448fd45c5ca", "sha256": "a9cc83192dc036a883ce6520318b3de98f25b0f8ec84e1a942da04c4d81232c7" }, "downloads": -1, "filename": "flaskerk-0.3.7.tar.gz", "has_sig": false, "md5_digest": "2584b1bb52580f52d8c20448fd45c5ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6863, "upload_time": "2019-09-25T04:01:58", "url": "https://files.pythonhosted.org/packages/4a/16/ce7f7225f2fad3a3dee3173e5bcb80af0c2dab8fb4fcafb4d1e39e6f6314/flaskerk-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "4548f42a91193084a8664278dbdf81a4", "sha256": "5db93db924aa78d95e4135878fbe214aaf14755f71d7d220694bacd126fa721b" }, "downloads": -1, "filename": "flaskerk-0.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "4548f42a91193084a8664278dbdf81a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8518, "upload_time": "2019-09-25T07:12:13", "url": "https://files.pythonhosted.org/packages/08/11/f14d56a54c6b8b5b619ec624ee9226ae3ae3169609210c965160599450aa/flaskerk-0.3.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c825132f13c8da5483973899f1affa0", "sha256": "082c78d853570b36d0822619452d1a6e1cb0caee100843d93e605fff45a62029" }, "downloads": -1, "filename": "flaskerk-0.3.8.tar.gz", "has_sig": false, "md5_digest": "8c825132f13c8da5483973899f1affa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6875, "upload_time": "2019-09-25T07:12:15", "url": "https://files.pythonhosted.org/packages/cf/55/430c3084a972b6d2a5e48dedc26459907ae0e2fa17730f6609b5804e0acb/flaskerk-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "cf8c2c7af70ff5537a95a89515b96332", "sha256": "0fb98c8c29626fd585014f87af9d22b8f7e070987daf594658bb1201101b1761" }, "downloads": -1, "filename": "flaskerk-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "cf8c2c7af70ff5537a95a89515b96332", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8577, "upload_time": "2019-09-25T08:37:54", "url": "https://files.pythonhosted.org/packages/d7/9e/3fec841c355164841224949bf415eff99de17c54de98577f2142907acdcd/flaskerk-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5719c05235945405683bb30ca686adb", "sha256": "7e09eed1e510ce23cfd2c96191b1f44b3a23f45a01ca25978902e02c619b424e" }, "downloads": -1, "filename": "flaskerk-0.3.9.tar.gz", "has_sig": false, "md5_digest": "f5719c05235945405683bb30ca686adb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6931, "upload_time": "2019-09-25T08:37:55", "url": "https://files.pythonhosted.org/packages/a5/52/a4c2638222f4584c7781192b26bb897b31852dac53e53bdac959e41f20e2/flaskerk-0.3.9.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "071490121bb1308f384bbc2274798876", "sha256": "6ac9d0df3504c508009ced20ff9f2e0d4d534bfe0054127bed0ca6f93aca274f" }, "downloads": -1, "filename": "flaskerk-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "071490121bb1308f384bbc2274798876", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8644, "upload_time": "2019-09-26T02:39:39", "url": "https://files.pythonhosted.org/packages/d5/3c/17b9188ceb615f37933134e2df23f6a0f505b164aa85bf619fa3e12b16b1/flaskerk-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85fb0a8dfeb92230b6c5812391387a5e", "sha256": "a8be7282fac51a391aef9eaced159659a721fd3ba71043f8271937308c689bd2" }, "downloads": -1, "filename": "flaskerk-0.4.0.tar.gz", "has_sig": false, "md5_digest": "85fb0a8dfeb92230b6c5812391387a5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6998, "upload_time": "2019-09-26T02:39:41", "url": "https://files.pythonhosted.org/packages/36/17/7ba6fb46afc3ab92f3483c3e5414c0a486bfcaaeca70a10ab29378df536f/flaskerk-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1ac6a431c1aa5a4c0ea9556837915d05", "sha256": "dfccd8daa763abd5483056bd330b2945b28a9b8f1ee74fbb769273f7a52360ba" }, "downloads": -1, "filename": "flaskerk-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1ac6a431c1aa5a4c0ea9556837915d05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9457, "upload_time": "2019-10-01T09:05:56", "url": "https://files.pythonhosted.org/packages/12/05/e3669e535b6f3fb235a608e171c6887fcea3ae21a11d3b626e28659dd7b1/flaskerk-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aeea581a16c6860136c4043d11825f5d", "sha256": "7eb6bf1da1baccb2e9b9f2daf8816636ea539dee3ae8a4add5f4ea65706cd09a" }, "downloads": -1, "filename": "flaskerk-0.5.0.tar.gz", "has_sig": false, "md5_digest": "aeea581a16c6860136c4043d11825f5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7496, "upload_time": "2019-10-01T09:05:58", "url": "https://files.pythonhosted.org/packages/e3/73/63724d66b9b79215edc3f92a314e544de293e5687609d4e40d02a6ac9d96/flaskerk-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "fbbee7e6c2f4ef09cedd2c39357a0014", "sha256": "93abda40fdf5b4f7de031acfe3e5119594bc464db8d0cd37fca0e23abdfd6c3e" }, "downloads": -1, "filename": "flaskerk-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fbbee7e6c2f4ef09cedd2c39357a0014", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10348, "upload_time": "2019-10-08T02:04:20", "url": "https://files.pythonhosted.org/packages/e7/9f/a8a8799e4c87cf3782e37fc2c873f697294355baf3fd3bba096cbd0cfb5c/flaskerk-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ab052dab8667af45d81d88adc979310", "sha256": "f65f02cea460d2e03461b8e3872c5f653753ac3654b23814530b570e7045eb2c" }, "downloads": -1, "filename": "flaskerk-0.5.1.tar.gz", "has_sig": false, "md5_digest": "9ab052dab8667af45d81d88adc979310", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8773, "upload_time": "2019-10-08T02:04:21", "url": "https://files.pythonhosted.org/packages/60/ca/6d5a8aa8eac74d025cbfb21cf61c88264b72cf57dcb220665bd077bee6f9/flaskerk-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "ff63b1d92e897ec2a403c5e4b6b7064a", "sha256": "88784b9002170be86fd6151d73ea1694e3c48a04f1509e36193a08d2c356b25e" }, "downloads": -1, "filename": "flaskerk-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ff63b1d92e897ec2a403c5e4b6b7064a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10755, "upload_time": "2019-10-10T12:26:24", "url": "https://files.pythonhosted.org/packages/0a/0e/09fcef1d3519217c947cad634a16076a3decb1e03b38a3c00317d8e55318/flaskerk-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95f65ec70cd2fd7edda554f015eaf1dd", "sha256": "02362ccfd9ae3e223a4ebe468d22376469be8c45e9f7bfe7ecb56d970d307b8b" }, "downloads": -1, "filename": "flaskerk-0.5.2.tar.gz", "has_sig": false, "md5_digest": "95f65ec70cd2fd7edda554f015eaf1dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9798, "upload_time": "2019-10-10T12:26:26", "url": "https://files.pythonhosted.org/packages/0e/e2/491244fda8ddddf4c53abfb9c32d33b0c9fed1070cfc2dd8722d979ae78e/flaskerk-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "d1095c35323e7682a83665bcf784f7d0", "sha256": "0065da950cfd1122010defeb5ace547aa14f1a3e70eb8b5752fcd027f4926d1f" }, "downloads": -1, "filename": "flaskerk-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d1095c35323e7682a83665bcf784f7d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10826, "upload_time": "2019-10-10T13:09:57", "url": "https://files.pythonhosted.org/packages/42/9b/fe76f612f64509609af238c89791fdfc646194208e357fff5a70e1c0b1e7/flaskerk-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b2fbe871bfae381fd240ead0dfcb748", "sha256": "39e5daa03d24567631c2d9c88d8497e444640b00c091aefc2dcf478916790117" }, "downloads": -1, "filename": "flaskerk-0.5.3.tar.gz", "has_sig": false, "md5_digest": "0b2fbe871bfae381fd240ead0dfcb748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9865, "upload_time": "2019-10-10T13:09:59", "url": "https://files.pythonhosted.org/packages/66/ee/4cbbf6117e17f9a94f9dbc16fdc52138831fda843bf65db64d3884f6fe64/flaskerk-0.5.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d1095c35323e7682a83665bcf784f7d0", "sha256": "0065da950cfd1122010defeb5ace547aa14f1a3e70eb8b5752fcd027f4926d1f" }, "downloads": -1, "filename": "flaskerk-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d1095c35323e7682a83665bcf784f7d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10826, "upload_time": "2019-10-10T13:09:57", "url": "https://files.pythonhosted.org/packages/42/9b/fe76f612f64509609af238c89791fdfc646194208e357fff5a70e1c0b1e7/flaskerk-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b2fbe871bfae381fd240ead0dfcb748", "sha256": "39e5daa03d24567631c2d9c88d8497e444640b00c091aefc2dcf478916790117" }, "downloads": -1, "filename": "flaskerk-0.5.3.tar.gz", "has_sig": false, "md5_digest": "0b2fbe871bfae381fd240ead0dfcb748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9865, "upload_time": "2019-10-10T13:09:59", "url": "https://files.pythonhosted.org/packages/66/ee/4cbbf6117e17f9a94f9dbc16fdc52138831fda843bf65db64d3884f6fe64/flaskerk-0.5.3.tar.gz" } ] }