{ "info": { "author": "Daniel Schep", "author_email": "dschep@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "\n\ud83d\udc0d\u03bb\u2728 - lambda_decorators\n=========================\n|Version|_ |Docs|_ |Build|_ |SayThanks|_\n\nA collection of useful decorators for making AWS Lambda handlers\n\n``lambda_decorators`` is a collection of useful decorators for writing Python\nhandlers for `AWS Lambda `_. They allow you to\navoid boiler plate for common things such as CORS headers, JSON serialization,\netc.\n\nQuick example\n-------------\n.. code:: python\n\n # handler.py\n\n from lambda_decorators import json_http_resp, load_json_body\n\n @json_http_resp\n @load_json_body\n def handler(event, context):\n return {'hello': event['body']['name']}\n\nWhen deployed to Lambda behind API Gateway and cURL'd:\n\n.. code:: shell\n\n $ curl -d '{\"name\": \"world\"}' https://example.execute-api.us-east-1.amazonaws.com/dev/hello\n {\"hello\": \"world\"}\n\nInstall\n-------\nIf you are using `the serverless framework `_\nI recommend using\n`serverless-python-requirements `_\n\n.. code:: shell\n\n sls plugin install -n serverless-python-requirements\n echo lambda-decorators >> requirements.txt\n\nOr if using some other deployment method to AWS Lambda you can just download\nthe entire module because it's only one file.\n\n.. code:: shell\n\n curl -O https://raw.githubusercontent.com/dschep/lambda-decorators/master/lambda_decorators.py\n\nIncluded Decorators:\n--------------------\n``lambda_decorators`` includes the following decorators to avoid boilerplate\nfor common usecases when using AWS Lambda with Python.\n\n* `async_handler `_ - support for async handlers\n* `cors_headers `_ - automatic injection of CORS headers\n* `dump_json_body `_ - auto-serialization of http body to JSON\n* `load_json_body `_ - auto-deserialize of http body from JSON\n* `json_http_resp `_ - automatic serialization of python object to HTTP JSON response\n* `json_schema_validator `_ - use JSONSchema to validate request&response payloads\n* `load_urlencoded_body `_ - auto-deserialize of http body from a querystring encoded body\n* `no_retry_on_failure `_ - detect and stop retry attempts for scheduled lambdas\n* `ssm_parameter_store `_ - fetch parameters from the AWS SSM Parameter Store\n* `secret_manager `_ - fetch secrets from the AWS Secrets Manager\n\nSee each individual decorators for specific usage details and the example_\nfor some more use cases. This library is also meant to serve as an example for how to write\ndecorators for use as lambda middleware. See the recipes_ page for some more niche examples of\nusing decorators as middleware for lambda.\n\n.. _example: https://github.com/dschep/lambda-decorators/tree/master/example\n.. _recipes: recipes.rst\n\nWriting your own\n----------------\n``lambda_decorators`` includes utilities to make building your own decorators\neasier. The `before `_, `after `_, and `on_exception `_ decorators\ncan be applied to your own functions to turn them into decorators for your\nhandlers. For example:\n\n\n.. code:: python\n\n import logging\n from lambda_decorators import before\n\n @before\n def log_event(event, context):\n logging.debug(event)\n return event, context\n\n @log_event\n def handler(event, context):\n return {}\n\nAnd if you want to make a decorator that provides two or more of\nbefore/after/on_exception functionality, you can use\n`LambdaDecorator `_:\n\n.. code:: python\n\n import logging\n from lambda_decorators import LambdaDecorator\n\n class log_everything(LambdaDecorator):\n def before(event, context):\n logging.debug(event, context)\n return event, context\n def after(retval):\n logging.debug(retval)\n return retval\n def on_exception(exception):\n logging.debug(exception)\n return {'statusCode': 500}\n\n @log_everything\n def handler(event, context):\n return {}\n\n\nWhy\n---\nInitially, I was inspired by `middy `_ which\nI like using in JavaScript. So naturally, I thought I'd like to have something similar in Python\ntoo. But then as I thought about it more, it seemed that when thinking of functions as the compute\nunit, when using python, `decorators `_\npretty much are middleware! So instead of building a middleware engine and a few middlewares, I\njust built a few useful decorators and utilities to build them.\n\n-----\n\n.. |Version| image:: https://img.shields.io/pypi/v/lambda-decorators.svg\n.. _Version: https://pypi.org/project/lambda-decorators\n.. |Docs| image:: http://readthedocs.org/projects/lambda-decorators/badge/?version=latest\n.. _Docs: http://lambda-decorators.readthedocs.org/en/latest\n.. |Build| image:: https://img.shields.io/travis/dschep/lambda-decorators/master.svg\n.. _Build: https://travis-ci.org/dschep/lambda-decorators\n.. |SayThanks| image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg\n.. _SayThanks: https://saythanks.io/to/dschep\n\n\n`Full API Documentation `_\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://lambda-decorators.readthedocs.io", "keywords": "serverless lambda decorator aws", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "lambda-decorators", "package_url": "https://pypi.org/project/lambda-decorators/", "platform": "", "project_url": "https://pypi.org/project/lambda-decorators/", "project_urls": { "Homepage": "http://lambda-decorators.readthedocs.io" }, "release_url": "https://pypi.org/project/lambda-decorators/0.3.0/", "requires_dist": [ "boto3", "jsonschema" ], "requires_python": "", "summary": "A collection of useful decorators for making AWS Lambda handlers", "version": "0.3.0" }, "last_serial": 5816496, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "a66be65a72b7febb0f5751d6347be97c", "sha256": "1bc738b53a144b0775ee9a68a7b83e1c857230fb9f72e1416bd72fb70a03a8ad" }, "downloads": -1, "filename": "lambda_decorators-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a66be65a72b7febb0f5751d6347be97c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11357, "upload_time": "2018-02-04T17:02:24", "url": "https://files.pythonhosted.org/packages/3c/5f/5b733f7129149251cf12f09ea666f2d187a3f618d5b6889ee764a12b387a/lambda_decorators-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49046461808b22287447c1cb1ede08a1", "sha256": "7651fc6a825c9c92f689d2d6f1a7313bf98a6d2a1a896ad431e97eb06f765a58" }, "downloads": -1, "filename": "lambda-decorators-0.1.tar.gz", "has_sig": false, "md5_digest": "49046461808b22287447c1cb1ede08a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7213, "upload_time": "2018-02-04T17:02:23", "url": "https://files.pythonhosted.org/packages/03/ba/254ff5bf576fbd54966d8fa9436e874b0e5e7744dcf9efbaa7bc29eaafc2/lambda-decorators-0.1.tar.gz" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "319087215f934bd36f32a3aa2661d861", "sha256": "78bbbc92050fe200dc32de622458d9769f6341e7fbb6d9cba0ff4129444bbb60" }, "downloads": -1, "filename": "lambda_decorators-0.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "319087215f934bd36f32a3aa2661d861", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7286, "upload_time": "2017-12-23T21:56:12", "url": "https://files.pythonhosted.org/packages/8e/94/76a0e334a219118b6656acc49c8468674ffbbb24d1d485ad26e56980d22e/lambda_decorators-0.1a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "418110d8304d48ae5d943b991edc5e6e", "sha256": "d9e595df74ee5ff4b6284ea936f1b76bfa80f7d617a9c40fcec50787fdfcdd01" }, "downloads": -1, "filename": "lambda-decorators-0.1a1.tar.gz", "has_sig": false, "md5_digest": "418110d8304d48ae5d943b991edc5e6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3886, "upload_time": "2017-12-23T21:56:10", "url": "https://files.pythonhosted.org/packages/aa/b0/5acbfe71f2e7a6a585b59f48a515c59d2d346c1d23a1d48c6c810febdc06/lambda-decorators-0.1a1.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "b31d041d63c946243e08e13312f73de3", "sha256": "348e3aa3e92b2926ac82cc8a3982b090f560c03089ca1541f3256d01374c0a14" }, "downloads": -1, "filename": "lambda_decorators-0.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "b31d041d63c946243e08e13312f73de3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7286, "upload_time": "2017-12-23T21:57:52", "url": "https://files.pythonhosted.org/packages/6d/29/279d12d3862612eacf39cb2a2908e7b1f624291b5c8c8404d8caaf986dd1/lambda_decorators-0.1a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e25edda127045ff63ffcd8cc93b805b8", "sha256": "8443b6fc39edcab67a3f7aa081a4dd8091f52d5fb72e3e433972cd1bef9025ca" }, "downloads": -1, "filename": "lambda-decorators-0.1a2.tar.gz", "has_sig": false, "md5_digest": "e25edda127045ff63ffcd8cc93b805b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3885, "upload_time": "2017-12-23T21:57:49", "url": "https://files.pythonhosted.org/packages/e0/53/d67173687aab10321a536692dc7ce91aeabe4af016b3fd4110af01b77d38/lambda-decorators-0.1a2.tar.gz" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "76f8953e2e042f4ac162cc89039d66e0", "sha256": "9e36923fa329b95f2ea281e8409518405a1d6e5d0afff08f3ae40e6b488d1107" }, "downloads": -1, "filename": "lambda_decorators-0.1a3-py3-none-any.whl", "has_sig": false, "md5_digest": "76f8953e2e042f4ac162cc89039d66e0", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7149, "upload_time": "2017-12-26T20:37:31", "url": "https://files.pythonhosted.org/packages/75/5d/9374409ffe12a99d62942d414b3e7ec9030e1e617b536190e6e6b65c4f37/lambda_decorators-0.1a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcd16d4ebf6fcda946c80a46e753acd6", "sha256": "bb5c3683b4aac9c280333effd4e3d2c0fe94b899f1a67f376da07d63f7bd4857" }, "downloads": -1, "filename": "lambda-decorators-0.1a3.tar.gz", "has_sig": false, "md5_digest": "fcd16d4ebf6fcda946c80a46e753acd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3903, "upload_time": "2017-12-26T20:37:30", "url": "https://files.pythonhosted.org/packages/2a/30/bf248dc8e9881c6a17cdf0afe24f8ae8c48826c52f6df445378921dca1ec/lambda-decorators-0.1a3.tar.gz" } ], "0.1a4": [ { "comment_text": "", "digests": { "md5": "9a043f4f618ac58ad3f2c18d62160c1c", "sha256": "0748e2896ea34401d24446dbf89c789c779d20eba706935a198c05d5b9b029d6" }, "downloads": -1, "filename": "lambda_decorators-0.1a4-py3-none-any.whl", "has_sig": false, "md5_digest": "9a043f4f618ac58ad3f2c18d62160c1c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7344, "upload_time": "2017-12-26T23:53:36", "url": "https://files.pythonhosted.org/packages/6d/66/490dd76f4675ca1a5fb5937a64dab0948509005febc625025e511712c009/lambda_decorators-0.1a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f215df003bc9331dc39c7eab5cb6983", "sha256": "a922208a110047e92e815addd8f78fdc380b04d458102652b52968f70544bc46" }, "downloads": -1, "filename": "lambda-decorators-0.1a4.tar.gz", "has_sig": false, "md5_digest": "0f215df003bc9331dc39c7eab5cb6983", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3967, "upload_time": "2017-12-26T23:53:35", "url": "https://files.pythonhosted.org/packages/e1/a2/48dea721a2f2bf221b2391a47378641c39c8d2ef12e2756f9f9c64c6370d/lambda-decorators-0.1a4.tar.gz" } ], "0.1b0": [ { "comment_text": "", "digests": { "md5": "e63ed06cb4960644fa17c3b6ff53c110", "sha256": "28732a6d011f0495d71319341b068c0b3e3a6faa455024cc134575868729471d" }, "downloads": -1, "filename": "lambda_decorators-0.1b0-py3-none-any.whl", "has_sig": false, "md5_digest": "e63ed06cb4960644fa17c3b6ff53c110", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9517, "upload_time": "2017-12-29T00:35:05", "url": "https://files.pythonhosted.org/packages/e5/92/3d06659fbd454e47399e0cb49e58381baf539c48545623bfd3892875e5c0/lambda_decorators-0.1b0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92b88be13ea81f31023c1f047d09c0a8", "sha256": "51ad3cfea14b6dc667b1f07fbd504160ff0dbac51b2920f066dd981ffee429c3" }, "downloads": -1, "filename": "lambda-decorators-0.1b0.tar.gz", "has_sig": false, "md5_digest": "92b88be13ea81f31023c1f047d09c0a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5736, "upload_time": "2017-12-29T00:35:03", "url": "https://files.pythonhosted.org/packages/bd/82/21ca1bf05047b8c3d2b45d092cbff3465fed960759ef870e2057c511cb66/lambda-decorators-0.1b0.tar.gz" } ], "0.1b1": [ { "comment_text": "", "digests": { "md5": "66d9a2527d17aefd5ebd428c78422749", "sha256": "0b4e7096c0ea1e9f1dc56349424cf07581a19e045a9d454c45f9a6baa815c1b2" }, "downloads": -1, "filename": "lambda_decorators-0.1b1-py3-none-any.whl", "has_sig": false, "md5_digest": "66d9a2527d17aefd5ebd428c78422749", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10168, "upload_time": "2017-12-29T21:55:16", "url": "https://files.pythonhosted.org/packages/19/20/72708cb12b8ccfe1561e604227fae044c0e6eabf9b82df4763aceee44fce/lambda_decorators-0.1b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62455ba2ea75325aa514bad22b77df1f", "sha256": "e464b92871d38862da0d2bc741ce23b7d0afb214ea5d09c393600549b140c078" }, "downloads": -1, "filename": "lambda-decorators-0.1b1.tar.gz", "has_sig": false, "md5_digest": "62455ba2ea75325aa514bad22b77df1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6009, "upload_time": "2017-12-29T21:55:14", "url": "https://files.pythonhosted.org/packages/ae/64/561fd7720113d793aeda3321f99f69ec5ef6a96a03d070b9eef23a42da57/lambda-decorators-0.1b1.tar.gz" } ], "0.1b2": [ { "comment_text": "", "digests": { "md5": "d50c83caec95c33bc14523c1a74c003f", "sha256": "49096c2ea756980318eb429063fc037c81d5d7fc607dc1bc7d1d37179c999521" }, "downloads": -1, "filename": "lambda_decorators-0.1b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d50c83caec95c33bc14523c1a74c003f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11012, "upload_time": "2018-01-05T23:21:01", "url": "https://files.pythonhosted.org/packages/d3/28/62f8bec5dc9651281849296ca9b86e8ceb441974accb8fa0fd00da0dc483/lambda_decorators-0.1b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a21f12c9866b5d8498fe8cebc863bd4f", "sha256": "480fe180c57440b168abdd7730eab5735e1f556be8aabfdb320b92b21110d16d" }, "downloads": -1, "filename": "lambda-decorators-0.1b2.tar.gz", "has_sig": false, "md5_digest": "a21f12c9866b5d8498fe8cebc863bd4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7011, "upload_time": "2018-01-05T23:21:00", "url": "https://files.pythonhosted.org/packages/20/98/8f1e0cf0f049e5766edbb0cd3636f452e3097732791b0f66b040c544c42e/lambda-decorators-0.1b2.tar.gz" } ], "0.1b3": [ { "comment_text": "", "digests": { "md5": "9dabce135729553e3aeb7488f16488d9", "sha256": "28b27af621f4756366567ffb8eceeabc29288acafdff0d4250518eecdcd45e97" }, "downloads": -1, "filename": "lambda_decorators-0.1b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9dabce135729553e3aeb7488f16488d9", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11331, "upload_time": "2018-01-25T01:39:54", "url": "https://files.pythonhosted.org/packages/2e/76/672199b84a34333261527b26cc0abea9e9e71713d91ef05c0e892ee275bd/lambda_decorators-0.1b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4814f816603c81ef7088eb9da3156cff", "sha256": "5b63c020eeb6946e4d0b85c03ac91b8483271cfb27ad7abc1b94f816e04299c7" }, "downloads": -1, "filename": "lambda-decorators-0.1b3.tar.gz", "has_sig": false, "md5_digest": "4814f816603c81ef7088eb9da3156cff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7172, "upload_time": "2018-01-25T01:39:53", "url": "https://files.pythonhosted.org/packages/c4/e4/e79d547d2b8b14664b11e383e477552b2362b84c39b7fcd39ea73ef19006/lambda-decorators-0.1b3.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "da3b92d85bc632f9f89b5a549661ff00", "sha256": "6af196f79e02b2129961c1e4394b6e9dc4b4d0899f552279650bb1f1e0d61f94" }, "downloads": -1, "filename": "lambda_decorators-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da3b92d85bc632f9f89b5a549661ff00", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12106, "upload_time": "2018-04-06T19:48:45", "url": "https://files.pythonhosted.org/packages/fb/6b/4469c019699f615e3f11d69ac65597bc476c71774ada2c5ce663bac72675/lambda_decorators-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0869c61251373099316d95e65d2717e8", "sha256": "906aa60049c594c7363f0bb10ebb6911cd4ef3a345b4572dfdc64e835fe95c6f" }, "downloads": -1, "filename": "lambda-decorators-0.2.tar.gz", "has_sig": false, "md5_digest": "0869c61251373099316d95e65d2717e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7818, "upload_time": "2018-04-06T19:48:44", "url": "https://files.pythonhosted.org/packages/0a/84/84b62f0b30e1f82d0a670f9ef1e750ba6a7f84bcfb79a0d3b691f93cf74d/lambda-decorators-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "75b2b627a9d874becf83f2ab390688d7", "sha256": "24528158ed8002af34c9894176addb2d05aa625be6321ee9e348584f49b7af09" }, "downloads": -1, "filename": "lambda_decorators-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "75b2b627a9d874becf83f2ab390688d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10181, "upload_time": "2019-08-30T21:06:27", "url": "https://files.pythonhosted.org/packages/50/2a/12ce97364a0d976822f57e9d0b26633b31a3f92589b511022cbca8a8ce15/lambda_decorators-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89767af420720acf88c40fc59de4a127", "sha256": "6f979cacbd096fd5f844e1793bbc4456f3f887fa5ca225c23c92e2f2e7b6b66b" }, "downloads": -1, "filename": "lambda-decorators-0.2.1.tar.gz", "has_sig": false, "md5_digest": "89767af420720acf88c40fc59de4a127", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7837, "upload_time": "2019-08-30T21:06:29", "url": "https://files.pythonhosted.org/packages/89/65/34071b6233dee2d74b9eb1f6d6049fbb73fc3b80f8ba04aa54f2f240f3b6/lambda-decorators-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "54326cb271d471bf011ff146c791b899", "sha256": "67339231ba522f2516dd7a41d046ddcdae8f1a770e30d2291a4a7652e06831d6" }, "downloads": -1, "filename": "lambda_decorators-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "54326cb271d471bf011ff146c791b899", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10226, "upload_time": "2019-09-11T19:20:51", "url": "https://files.pythonhosted.org/packages/a0/85/fbac2a3076082203d995b62700507596a7a1358fcaf9625586397ae02906/lambda_decorators-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "abef3db8333f126a331f05943827ed3c", "sha256": "416cbef7f944e7aaaf576f270eccebbf2034d81ca85226e3ea702e3a8b2788ed" }, "downloads": -1, "filename": "lambda-decorators-0.3.0.tar.gz", "has_sig": false, "md5_digest": "abef3db8333f126a331f05943827ed3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7871, "upload_time": "2019-09-11T19:20:52", "url": "https://files.pythonhosted.org/packages/24/91/5c2977833227a1f948343251a308d3eaa2353eae63232ceb66119176ad06/lambda-decorators-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "54326cb271d471bf011ff146c791b899", "sha256": "67339231ba522f2516dd7a41d046ddcdae8f1a770e30d2291a4a7652e06831d6" }, "downloads": -1, "filename": "lambda_decorators-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "54326cb271d471bf011ff146c791b899", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10226, "upload_time": "2019-09-11T19:20:51", "url": "https://files.pythonhosted.org/packages/a0/85/fbac2a3076082203d995b62700507596a7a1358fcaf9625586397ae02906/lambda_decorators-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "abef3db8333f126a331f05943827ed3c", "sha256": "416cbef7f944e7aaaf576f270eccebbf2034d81ca85226e3ea702e3a8b2788ed" }, "downloads": -1, "filename": "lambda-decorators-0.3.0.tar.gz", "has_sig": false, "md5_digest": "abef3db8333f126a331f05943827ed3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7871, "upload_time": "2019-09-11T19:20:52", "url": "https://files.pythonhosted.org/packages/24/91/5c2977833227a1f948343251a308d3eaa2353eae63232ceb66119176ad06/lambda-decorators-0.3.0.tar.gz" } ] }