{ "info": { "author": "metadeta96", "author_email": "fernando.settijunior@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# flask-wrappers\n\nDecorators to facilitate flask enpoints implementation\n\n```python\nimport flask_wrappers as wrappers\n```\n\n## Decorators\n\n### @catch\n\nDecorator to catch exceptions and return a meaningful traceback\n\n```python\n@wrappers.catch\ndef my_endpoint():\n raise ValueError()\n```\n\n### json_request\n\nDecorator to pass the decoded json body of the request as a dict to the endpoint method.\n\n```python\n@wrappers.json_request\ndef my_endpoint(body):\n return body.get(\"property_1\")\n```\n\n### json_request_required:\n\nDecorator to pass the decoded json body of the request as a dict to the endpoint method.\n\tValidate that the json body contains at least the required properties.\n\n```python\t\n@wrappers.json_request_required(\"str:name\", \"str:job\", \"int:age\", \"float:cash\")\ndef my_endpoint(body):\n return body[\"name\"] # safe\n```\n### querystring_request\n\nDecorator to pass the querystring dict to the endpoint method.\n\t\n```python\n@wrappers.querystring_request\ndef my_endpoint(querystring):\n return querystring.get(\"property_1\")\n```\n\n### headers_request\n\nDecorator to pass the headers dict to the endpoint method.\n\t\n```python\n@wrappers.headers_request\ndef my_endpoint(headers):\n return headers.get(\"property_1\")\n```\n\n### cookies_request\n\nDecorator to pass the cookies dict to the endpoint method.\n\t\n```python\n@wrappers.cookies_request\ndef my_endpoint(cookies):\n return cookies.get(\"property_1\")\n```\n\n### body_request\n\nDecorator to pass the raw body to the endpoint method.\n\t\n```python\n@wrappers.body_request\ndef my_endpoint(body):\n return body.get(\"property_1\")\n```\n\n### json_response\n\nDecorator to return the appropriate json response object from anything decodable to json.\n\t\n```python\n@wrappers.json_response\ndef my_endpoint(body):\n l = [10, 8, 5]\n return {'name': 'Test', 'grades': l}, 200\n```\n\n### RouteFactory\n\nClass to generate routes for http methods and paths from a flask app or blueprint.\n\n```python\nfrom flask import Blueprint, Flask\nimport flask_wrappers as wrappers\n\n# create a flask app\napp = Flask(__name__)\n# or create a blueprint\n## app = Blueprint(\"blueprint_name\", __name__)\n\n# create a route_factory from the app\nroute_factory = wrappers.RouteFactory(app)\n```\n\n#### options(route, **options)\n\nCreate an endpoint for the route and method OPTIONS\n\n```python\n@route_factory.options(\"/names\")\ndef my_endpoint():\n # logic here\n```\n\n#### get(route, **options)\n\nCreate an endpoint for the route and method GET\n\n```python\n@route_factory.get(\"/names\")\n@wrappers.json_response\ndef my_endpoint():\n return [\"Anna\", \"Alice\", \"Shila\"], 200\n```\n\t\t\n#### post(route, **options)\n\nCreate an endpoint for the route and method POST\n\n```python\n@route_factory.post(\"/names\")\n@wrappers.json_request\n@wrappers.json_response\ndef my_endpoint(body):\n # logic here \n return \"ok\", 200\n```\n\n#### put(route, **options)\n\nCreate an endpoint for the route and method PUT\n\n```python\n@route_factory.put(\"/names\")\n@wrappers.json_request\n@wrappers.json_response\ndef my_endpoint(body):\n # logic here \n return \"ok\", 200\n```\n\n#### delete(route, **options)\n\nCreate an endpoint for the route and method DELETE\n\n```python\n@route_factory.post(\"/names/\")\n@wrappers.json_response\ndef my_endpoint(name):\n # logic here \n return \"ok\", 200\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/metadeta96/flask-wrappers", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/metadeta96/flask-wrappers", "keywords": "flask,decorator,route,wrapper", "license": "", "maintainer": "", "maintainer_email": "", "name": "flask-wrappers", "package_url": "https://pypi.org/project/flask-wrappers/", "platform": "", "project_url": "https://pypi.org/project/flask-wrappers/", "project_urls": { "Download": "https://github.com/metadeta96/flask-wrappers", "Homepage": "https://github.com/metadeta96/flask-wrappers" }, "release_url": "https://pypi.org/project/flask-wrappers/1.0.2/", "requires_dist": null, "requires_python": ">=3", "summary": "Decorators to facilitate flask enpoints implementation", "version": "1.0.2" }, "last_serial": 5855749, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "bc3d6f31b3350670149257322cbc48ae", "sha256": "f57eb525e7b9418c24413fbbc961a71369f36c28961ac91e5d77051d8ef3c12a" }, "downloads": -1, "filename": "flask_wrappers-1.0.2.tar.gz", "has_sig": false, "md5_digest": "bc3d6f31b3350670149257322cbc48ae", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4407, "upload_time": "2019-09-19T11:41:25", "url": "https://files.pythonhosted.org/packages/e0/63/83533f1efd69ca2c2a1bb3fe74705770683098f752d7b48020ae261ab304/flask_wrappers-1.0.2.tar.gz" } ], "v1.0": [ { "comment_text": "", "digests": { "md5": "3c9010dae3487598b2b89d32b54c07ff", "sha256": "20842bd02eae1e1ba43934a9895dbe54241340a4726a3f6db0c0792f3b0259b2" }, "downloads": -1, "filename": "flask_wrappers-v1.0.tar.gz", "has_sig": false, "md5_digest": "3c9010dae3487598b2b89d32b54c07ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3243, "upload_time": "2018-06-24T15:34:50", "url": "https://files.pythonhosted.org/packages/bd/59/623723f7e78ab605567fbc3be9a535f29cbfc6fddfe645fe3587e7bdbe9d/flask_wrappers-v1.0.tar.gz" } ], "v1.0.1": [ { "comment_text": "", "digests": { "md5": "06615b604616623d434ff4bc6187a900", "sha256": "3e9cc2ad2bbcee4842a29a24cab81b3580d89e0e20a3bd0d3dfa131569642d58" }, "downloads": -1, "filename": "flask_wrappers-v1.0.1.tar.gz", "has_sig": false, "md5_digest": "06615b604616623d434ff4bc6187a900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3446, "upload_time": "2018-06-25T13:23:13", "url": "https://files.pythonhosted.org/packages/c7/0b/eb3c4ff3e350c6d2538d7e5cfdd03dfdfde361fdfeb38de0bdcae7152585/flask_wrappers-v1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bc3d6f31b3350670149257322cbc48ae", "sha256": "f57eb525e7b9418c24413fbbc961a71369f36c28961ac91e5d77051d8ef3c12a" }, "downloads": -1, "filename": "flask_wrappers-1.0.2.tar.gz", "has_sig": false, "md5_digest": "bc3d6f31b3350670149257322cbc48ae", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4407, "upload_time": "2019-09-19T11:41:25", "url": "https://files.pythonhosted.org/packages/e0/63/83533f1efd69ca2c2a1bb3fe74705770683098f752d7b48020ae261ab304/flask_wrappers-1.0.2.tar.gz" } ] }