{ "info": { "author": "Vincent Sarago", "author_email": "vincent.sarago@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# lambda-proxy\n\n[![Packaging status](https://badge.fury.io/py/lambda-proxy.svg)](https://badge.fury.io/py/lambda-proxy)\n[![CircleCI](https://circleci.com/gh/vincentsarago/lambda-proxy.svg?style=svg)](https://circleci.com/gh/vincentsarago/lambda-proxy)\n[![codecov](https://codecov.io/gh/vincentsarago/lambda-proxy/branch/master/graph/badge.svg)](https://codecov.io/gh/vincentsarago/lambda-proxy)\n\nA zero-requirement proxy linking AWS API Gateway `{proxy+}` requests and AWS Lambda.\n\n\"\"\n\n## Install\n\n```bash\n$ pip install -U pip\n$ pip install lambda-proxy\n```\n\nOr install from source:\n\n```bash\n$ git clone https://github.com/vincentsarag/lambda-proxy.git\n$ cd lambda-proxy\n$ pip install -U pip\n$ pip install -e .\n```\n\n# Usage\n\nWith GET request\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test/tests/', methods=['GET'], cors=True)\ndef print_id(id):\n return ('OK', 'plain/text', id)\n```\n\nWith POST request\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test/tests/', methods=['POST'], cors=True)\ndef print_id(id, body):\n return ('OK', 'plain/text', id)\n```\n\n## Binary body\n\nStarting from version 5.0.0, lambda-proxy will decode base64 encoded body on POST message.\n\nPre 5.0.0\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test', methods=['POST']e)\ndef print_id(body):\n body = json.loads(base64.b64decode(body).decode())\n```\n\nPost 5.0.0\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test', methods=['POST']e)\ndef print_id(body):\n body = json.loads(body)\n```\n\n# Routes \n\nRoute schema is simmilar to the one used in [Flask](http://flask.pocoo.org/docs/1.0/api/#url-route-registrations)\n\n> Variable parts in the route can be specified with angular brackets `/user/`. By default a variable part in the URL accepts any string without a slash however a different converter can be specified as well by using ``.\n\nConverters:\n- `int`: integer\n- `string`: string\n- `float`: float number\n- `uuid`: UUID\n\nexample: \n- `/app//` (`user` and `id` are variables)\n- `/app//` (`value` will be a string, while `num` will be a float)\n\n## Regex\nYou can also add regex parameters descriptions using special converter `regex()`\n\nexample: \n```python\n@APP.route(\"/app/\", methods=['GET'])\ndef print_user(regularuser):\n return ('OK', 'plain/text', f\"regular {regularuser}\")\n\n@APP.route(\"/app/\", methods=['GET'])\ndef print_user(capitaluser):\n return ('OK', 'plain/text', f\"CAPITAL {capitaluser}\")\n```\n\n#### Warning\n\nwhen using **regex()** you must use different variable names or the route might not show up in the documentation.\n\n```python\n@APP.route(\"/app/\", methods=['GET'])\ndef print_user(user):\n return ('OK', 'plain/text', f\"regular {user}\")\n\n@APP.route(\"/app/\", methods=['GET'])\ndef print_user(user):\n return ('OK', 'plain/text', f\"CAPITAL {user}\")\n```\nThis app will work but the documentation will only show the second route because in `openapi.json`, route names will be `/app/{user}` for both routes.\n\n# Route Options \n\n- **path**: the URL rule as string\n- **methods**: list of HTTP methods allowed, default: [\"GET\"]\n- **cors**: allow CORS, default: `False`\n- **token**: set `access_token` validation \n- **payload_compression_method**: Enable and select an output body compression\n- **binary_b64encode**: base64 encode the output body (API Gateway)\n- **ttl**: Cache Control setting (Time to Live)\n- **description**: route description (for documentation)\n- **tag**: list of tags (for documentation)\n\n## Cache Control\n\t\nAdd a Cache Control header with a Time to Live (TTL) in seconds.\n\n```python\nfrom lambda_proxy.proxy import API\nAPP = API(app_name=\"app\")\n\n@APP.route('/test/tests/', methods=['GET'], cors=True, ttl=3600)\ndef print_id(id):\n return ('OK', 'plain/text', id)\n```\n\nNote: If function returns other then \"OK\", Cache-Control will be set to `no-cache`\n\n## Binary responses\n\nWhen working with binary on API-Gateway we must return a base64 encoded string\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test/tests/.jpg', methods=['GET'], cors=True, binary_b64encode=True)\ndef print_id(filename):\n with open(f\"{filename}.jpg\", \"rb\") as f:\n return ('OK', 'image/jpeg', f.read())\n```\n\n## Compression\n\nEnable compression if \"Accept-Encoding\" if found in headers.\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route(\n '/test/tests/.jpg',\n methods=['GET'],\n cors=True,\n binary_b64encode=True,\n payload_compression_method=\"gzip\"\n)\ndef print_id(filename):\n with open(f\"{filename}.jpg\", \"rb\") as f:\n return ('OK', 'image/jpeg', f.read())\n```\n\n## Simple Auth token\n\nLambda-proxy provide a simple token validation system.\n\n- a \"TOKEN\" variable must be set in the environment\n- each request must provide a \"access_token\" params (e.g curl\n http://myurl/test/tests/myid?access_token=blabla)\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test/tests/', methods=['GET'], cors=True, token=True)\ndef print_id(id):\n return ('OK', 'plain/text', id)\n```\n\n## URL schema and request parameters\n\nQueryString parameters are passed as function's options.\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/', methods=['GET'], cors=True)\ndef print_id(id, name=None):\n return ('OK', 'plain/text', f\"{id}{name}\")\n```\n\nrequests:\n\n```bash\n$ curl /000001\n 0001\n\n$ curl /000001?name=vincent\n 0001vincent\n```\n\n## Multiple Routes\n\n```python\nfrom lambda_proxy.proxy import API\nAPP = API(name=\"app\")\n\n@APP.route('/', methods=['GET'], cors=True)\n@APP.route('//', methods=['GET'], cors=True)\ndef print_id(id, number=None, name=None):\n return ('OK', 'plain/text', f\"{id}-{name}-{number}\")\n```\nrequests:\n\n```bash\n\n$ curl /000001\n 0001--\n\n$ curl /000001?name=vincent\n 0001-vincent-\n\n$ curl /000001/1?name=vincent\n 0001-vincent-1\n```\n\n# Advanced features\n\n## Context and Event passing\n\nPass event and context to the handler function.\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route(\"/\", methods=[\"GET\"], cors=True)\n@APP.pass_event\n@APP.pass_context\ndef print_id(ctx, evt, id):\n print(ctx)\n print(evt)\n return ('OK', 'plain/text', f\"{id}\")\n```\n\n# Automatic OpenAPI documentation\n\nBy default the APP (`lambda_proxy.proxy.API`) is provided with three (3) routes: \n- `/openapi.json`: print OpenAPI JSON definition \n\n- `/docs`: swagger html UI \n![swagger](https://user-images.githubusercontent.com/10407788/58707335-9cbb0480-8382-11e9-927f-8d992cf2531a.jpg)\n\n- `/redoc`: Redoc html UI \n![redoc](https://user-images.githubusercontent.com/10407788/58707338-9dec3180-8382-11e9-8dec-18173e39258f.jpg)\n\n**Function annotations**\n\nTo be able to render full and precise API documentation, lambda_proxy uses python type hint and annotations [link](https://www.python.org/dev/peps/pep-3107/).\n\n```python\nfrom lambda_proxy.proxy import API\n\nAPP = API(name=\"app\")\n\n@APP.route('/test/', methods=['GET'], cors=True)\ndef print_id(id: int, num: float = 0.2) -> Tuple(str, str, str):\n return ('OK', 'plain/text', id)\n```\n\nIn the example above, our route `/test/` define an input `id` to be a `INT`, while we also add this hint to the function `print_id` we also specify the type (and default) of the `num` option. \n\n# Custom Domain and path mapping\n\nSince version 4.1.1, lambda-proxy support custom domain and path mapping (see https://github.com/vincentsarago/lambda-proxy/issues/16).\n\nNote: When using path mapping other than `root` (`/`), `/` route won't be available.\n\n```python\nfrom lambda_proxy.proxy import API\n\napi = API(name=\"api\", debug=True)\n\n\n# This route won't work when using path mapping\n@api.route(\"/\", methods=[\"GET\"], cors=True)\n# This route will work only if the path mapping is set to /api\n@api.route(\"/api\", methods=[\"GET\"], cors=True)\ndef index():\n html = \"\"\"\n \n
This is title
\n \n Hello world\n \n \"\"\"\n return (\"OK\", \"text/html\", html)\n\n\n@api.route(\"/yo\", methods=[\"GET\"], cors=True)\ndef yo():\n return (\"OK\", \"text/plain\", \"YOOOOO\")\n```\n\n# Plugin\n\n- Add cache layer: https://github.com/vincentsarago/lambda-proxy-cache\n\n\n# Examples\n\n- https://github.com/vincentsarago/lambda-proxy/tree/master/example\n- https://github.com/RemotePixel/remotepixel-tiler\n\n\n# Contribution & Devellopement\n\nIssues and pull requests are more than welcome.\n\n**Dev install & Pull-Request**\n\n```bash\n$ git clone https://github.com/vincentsarago/lambda-proxy.git\n$ cd lambda-proxy\n$ pip install -e .[dev]\n```\n\nThis repo is set to use pre-commit to run *flake8*, *pydocstring* and *black* (\"uncompromising Python code formatter\") when committing new code.\n\n```bash\n$ pre-commit install\n$ git add .\n$ git commit -m'my change'\n black.........................Passed\n Flake8........................Passed\n Verifying PEP257 Compliance...Passed\n$ git push origin\n```\n\n### License\n\nSee [LICENSE.txt](/LICENSE.txt>).\n\n### Authors\n\nSee [AUTHORS.txt](/AUTHORS.txt>).\n\n### Changes\n\nSee [CHANGES.txt](/CHANGES.txt>).", "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/vincentsarago/lambda-proxy", "keywords": "AWS-Lambda API-Gateway Request Proxy", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "lambda-proxy", "package_url": "https://pypi.org/project/lambda-proxy/", "platform": "", "project_url": "https://pypi.org/project/lambda-proxy/", "project_urls": { "Homepage": "https://github.com/vincentsarago/lambda-proxy" }, "release_url": "https://pypi.org/project/lambda-proxy/5.0.1/", "requires_dist": null, "requires_python": ">=3", "summary": "Simple AWS Lambda proxy to handle API Gateway request", "version": "5.0.1" }, "last_serial": 5960332, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "854a1f37ec0714e027e0641a2448ad76", "sha256": "061578c0f7ba4b6fecf1a748565af990ef69a513ab9347ef4c6074ace4a85754" }, "downloads": -1, "filename": "lambda_proxy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "854a1f37ec0714e027e0641a2448ad76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4872, "upload_time": "2017-11-26T18:50:35", "url": "https://files.pythonhosted.org/packages/63/33/eb03307cc158e7322991b61bef05afe1e70971ac355d013a225c883d47df/lambda_proxy-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c8c0e1684be14ea5e0084ffc47f3f70e", "sha256": "d12933f37cb2bf279bc51e91281d92d637ab24d7ff7f111170c961aee203c830" }, "downloads": -1, "filename": "lambda_proxy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c8c0e1684be14ea5e0084ffc47f3f70e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4882, "upload_time": "2017-12-24T18:35:50", "url": "https://files.pythonhosted.org/packages/8a/ff/54cd09a8c34a60a16cb8672f597aaf2ad8a101005f12cc466e932e14bc6a/lambda_proxy-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "66ff52472eacd481a82e5b505ede9c3c", "sha256": "855251ca4ac715c6a2718b6a131fa10faf0b1c03b3dae23af6d098735d1998ef" }, "downloads": -1, "filename": "lambda_proxy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "66ff52472eacd481a82e5b505ede9c3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4913, "upload_time": "2018-02-02T17:44:05", "url": "https://files.pythonhosted.org/packages/5e/d0/7ceee1b12fe7732ee56d4e1c9133d5cabec4dbe64f33a825e0f3b895252c/lambda_proxy-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "36b2360fd6e23814f6d0e32a3e97d25b", "sha256": "5b807287df2e081a7285947f08bd2bd8bd426ad04a81eac7ec2105eb3f696664" }, "downloads": -1, "filename": "lambda_proxy-0.0.4.tar.gz", "has_sig": false, "md5_digest": "36b2360fd6e23814f6d0e32a3e97d25b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4966, "upload_time": "2018-03-30T14:09:57", "url": "https://files.pythonhosted.org/packages/18/36/8e7609d4c363e0cb21ecf361ddced9ad9e4fb37b83153a2e770a54442759/lambda_proxy-0.0.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "925c414c82e9103d2f937609d738497b", "sha256": "51b40b67d17fe7460ac0a75e50747e6047d817a3523850221cfce4a40a4031e5" }, "downloads": -1, "filename": "lambda_proxy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "925c414c82e9103d2f937609d738497b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5837, "upload_time": "2018-09-05T15:40:22", "url": "https://files.pythonhosted.org/packages/b8/22/863c7c9ee8f92945cb95e5d27524af6335e3b81a886fff9f001c6513365d/lambda_proxy-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6f4384ee0627a9055ba44c0f26180f99", "sha256": "4b1e58df1f41b7a3edca95cd77cb5f356f167bb79abc474d532132653928a714" }, "downloads": -1, "filename": "lambda_proxy-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6f4384ee0627a9055ba44c0f26180f99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6011, "upload_time": "2018-09-06T06:55:01", "url": "https://files.pythonhosted.org/packages/c6/ef/2df48356d7a1d2b659cc984397df1e91889e316c932a9638175bb23b38ae/lambda_proxy-1.1.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "56929f9311ef34cd3749c9a69644668a", "sha256": "259a502348bef14d8c32c92bf2af0a0981e41c375e5ef2f7e43fff5d7cf6e810" }, "downloads": -1, "filename": "lambda_proxy-2.0.0.tar.gz", "has_sig": false, "md5_digest": "56929f9311ef34cd3749c9a69644668a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6954, "upload_time": "2019-01-29T19:20:28", "url": "https://files.pythonhosted.org/packages/bc/d5/bf67c5c3006811d9890cec95003ceceaf79d5434aea67555c9d9caa10f83/lambda_proxy-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c277d474783d86d3e8f2819aa403f15c", "sha256": "bbe6faf40c44d658fc4500ddabbef342c82e7900346686878585d812ad081135" }, "downloads": -1, "filename": "lambda_proxy-2.0.1.tar.gz", "has_sig": false, "md5_digest": "c277d474783d86d3e8f2819aa403f15c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8106, "upload_time": "2019-02-03T06:24:10", "url": "https://files.pythonhosted.org/packages/6e/06/e9cfcfba7455595add4397fedb5460a5bc69483092befcd400d9b7ada949/lambda_proxy-2.0.1.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "8f8eb3d01a462fc146ba59e1ebd3074a", "sha256": "6a2ab92bd3ef807fb21d1d8fc660706ea60aaf5d6c8ac7ca6848bda54894f57f" }, "downloads": -1, "filename": "lambda_proxy-2.0.3.tar.gz", "has_sig": false, "md5_digest": "8f8eb3d01a462fc146ba59e1ebd3074a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8095, "upload_time": "2019-02-21T20:26:19", "url": "https://files.pythonhosted.org/packages/5a/61/ad127a845bc615de7146ad42fcf44a51c3392ef99e2a7c5cfeead07f003b/lambda_proxy-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "42d0af67eb7cf7eabe0e77f9e39a2120", "sha256": "65e476312dc11e4b75a49344c468572a88875aa2faa771a2b5ab37cf235aea0b" }, "downloads": -1, "filename": "lambda_proxy-2.0.4.tar.gz", "has_sig": false, "md5_digest": "42d0af67eb7cf7eabe0e77f9e39a2120", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8983, "upload_time": "2019-02-26T19:57:56", "url": "https://files.pythonhosted.org/packages/1b/16/e2d16d982216ceec42cfdd1ec523d42d208005f047941cd792a22936cceb/lambda_proxy-2.0.4.tar.gz" } ], "2.0b1": [ { "comment_text": "", "digests": { "md5": "a4af118dfb8e006f647fff62671ccd8c", "sha256": "87dbe0e5b3333790f108c296f928b4c7362e4ab19219717a8f628d2905bde114" }, "downloads": -1, "filename": "lambda_proxy-2.0b1.tar.gz", "has_sig": false, "md5_digest": "a4af118dfb8e006f647fff62671ccd8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6478, "upload_time": "2019-01-28T03:39:17", "url": "https://files.pythonhosted.org/packages/64/0e/c46454aae3f39f8483bdec241fd045381fab99ebac0d814d6b20affc0373/lambda_proxy-2.0b1.tar.gz" } ], "2.0b2": [ { "comment_text": "", "digests": { "md5": "d29448aa936d9245a28fa459cfddb791", "sha256": "1eed4e4f3a0fa127dfe3fd1e0324bd5d3fe96db8e76aef30ed5ff4a6fea0a2c9" }, "downloads": -1, "filename": "lambda_proxy-2.0b2.tar.gz", "has_sig": false, "md5_digest": "d29448aa936d9245a28fa459cfddb791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6633, "upload_time": "2019-01-28T05:25:07", "url": "https://files.pythonhosted.org/packages/dc/1f/422738229b6f90d59e113174083fb81b0f3662b290351add4639cb3507e2/lambda_proxy-2.0b2.tar.gz" } ], "2.0b3": [ { "comment_text": "", "digests": { "md5": "ff8e9573bffb26a10705bd51996c8693", "sha256": "d5b8950b369977d7427673115e6ef81d72dace51d61cd27661d3bc5da959a273" }, "downloads": -1, "filename": "lambda_proxy-2.0b3.tar.gz", "has_sig": false, "md5_digest": "ff8e9573bffb26a10705bd51996c8693", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6658, "upload_time": "2019-01-28T14:36:34", "url": "https://files.pythonhosted.org/packages/8e/93/bcf581bf02410dba858679d525b6ad865360b0dbd4355a2b03a3dc83e406/lambda_proxy-2.0b3.tar.gz" } ], "2.0b4": [ { "comment_text": "", "digests": { "md5": "d15d97713d49023e5884a7d0b4e5e139", "sha256": "10d33e0ddac86c056e27a5d842705a1d769ba8d2dc83f886529bd68625713cb4" }, "downloads": -1, "filename": "lambda_proxy-2.0b4.tar.gz", "has_sig": false, "md5_digest": "d15d97713d49023e5884a7d0b4e5e139", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6731, "upload_time": "2019-01-28T21:33:39", "url": "https://files.pythonhosted.org/packages/b0/2e/9551fb198e8f3463a02c6825a1b5685e15a13c2b174573c3a55a16a9db2d/lambda_proxy-2.0b4.tar.gz" } ], "2.0b5": [ { "comment_text": "", "digests": { "md5": "00c97188b750111b040ddabe0821b308", "sha256": "a117248923bc5fcfe2cb2513a4863899ef2a0a81f86d635154dbacc940ebdf7f" }, "downloads": -1, "filename": "lambda_proxy-2.0b5.tar.gz", "has_sig": false, "md5_digest": "00c97188b750111b040ddabe0821b308", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6765, "upload_time": "2019-01-28T22:21:50", "url": "https://files.pythonhosted.org/packages/50/96/dc6f19aa59076315bff82e88cc5d1381166a1e292f96767f47253a642e0d/lambda_proxy-2.0b5.tar.gz" } ], "2.0b6": [ { "comment_text": "", "digests": { "md5": "2e08be1084a6471bd0696da382af817e", "sha256": "b63db64ed9cb4a165f5879e28ef8dc017691ecf37215b55d8d159649190381ca" }, "downloads": -1, "filename": "lambda_proxy-2.0b6.tar.gz", "has_sig": false, "md5_digest": "2e08be1084a6471bd0696da382af817e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6768, "upload_time": "2019-01-28T22:35:53", "url": "https://files.pythonhosted.org/packages/dd/9a/1259ae596b5bb920847f0f9fb82fe5c4b1d48db6b7b98ee3bdf16395f46a/lambda_proxy-2.0b6.tar.gz" } ], "2.0b8": [ { "comment_text": "", "digests": { "md5": "db438762d1783366d54092fe7f6ede5b", "sha256": "696835581a608738916a52d0bc5f5ae4517f8d75bee34a1ac4b5ec4204b29504" }, "downloads": -1, "filename": "lambda_proxy-2.0b8.tar.gz", "has_sig": false, "md5_digest": "db438762d1783366d54092fe7f6ede5b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6950, "upload_time": "2019-01-29T03:42:49", "url": "https://files.pythonhosted.org/packages/99/3e/5e703cd56a4eaf5fca8cd9089825947be2696fcab3c68d7a896249dfabf9/lambda_proxy-2.0b8.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "922b48608de7ed16fa61f831f9cb576f", "sha256": "73f86178cfdebe4b9c82b11ffe9d81239168873884482005ee1592e8a7200650" }, "downloads": -1, "filename": "lambda_proxy-3.0.0.tar.gz", "has_sig": false, "md5_digest": "922b48608de7ed16fa61f831f9cb576f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7714, "upload_time": "2019-03-06T00:42:50", "url": "https://files.pythonhosted.org/packages/8e/f5/0afd9555a7343a6e65a2fad941b9cac84bb72729edd7f7edba2b385238ac/lambda_proxy-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "edf53ac0f90044b645a05312084de045", "sha256": "8241f9abec73d899ee3deac161747b8ec7b2ddc26ea1ae7d81a99adea29643d7" }, "downloads": -1, "filename": "lambda_proxy-3.0.1.tar.gz", "has_sig": false, "md5_digest": "edf53ac0f90044b645a05312084de045", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7899, "upload_time": "2019-04-25T17:13:41", "url": "https://files.pythonhosted.org/packages/34/f0/3d9495e63d8484a4de8d97eff413867b850ca9ab671888187a84d174b60e/lambda_proxy-3.0.1.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "42efe90bb2f578cb3e52b11af867f08e", "sha256": "196f9fc040582b7842f62257bc85e1bd4b6e1aa60413eeff0b2c2fdf9c8863ea" }, "downloads": -1, "filename": "lambda-proxy-4.0.0.tar.gz", "has_sig": false, "md5_digest": "42efe90bb2f578cb3e52b11af867f08e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 14066, "upload_time": "2019-06-03T17:27:58", "url": "https://files.pythonhosted.org/packages/aa/85/90cec88c03f2836904bf7e19c248c975d4c3e6d89338736a096327733995/lambda-proxy-4.0.0.tar.gz" } ], "4.0rc0": [ { "comment_text": "", "digests": { "md5": "d7a7bc578b78f1b22458e3feed4114bc", "sha256": "439f7702ed76b426060f65d6e505c50c288246f737b8be2b8430c95ef5f42179" }, "downloads": -1, "filename": "lambda_proxy-4.0rc0.tar.gz", "has_sig": false, "md5_digest": "d7a7bc578b78f1b22458e3feed4114bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 12298, "upload_time": "2019-05-31T14:34:59", "url": "https://files.pythonhosted.org/packages/2a/6f/1c310b20d98c3ef3010418bf0ac184c6ef64bee5540ace88ab87dfa6d93b/lambda_proxy-4.0rc0.tar.gz" } ], "4.0rc1": [ { "comment_text": "", "digests": { "md5": "da6c3ff144dbbab20380c8a39642c0b1", "sha256": "6a5a985e330ba296bcc3ec04977132724f17f63c6bda698b1f20fd056b745a84" }, "downloads": -1, "filename": "lambda_proxy-4.0rc1.tar.gz", "has_sig": false, "md5_digest": "da6c3ff144dbbab20380c8a39642c0b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 12302, "upload_time": "2019-05-31T15:00:29", "url": "https://files.pythonhosted.org/packages/d9/39/060617f6456276bad6424e281633cbd075ed7d494ad020f8b9d240f10bf8/lambda_proxy-4.0rc1.tar.gz" } ], "4.0rc2": [ { "comment_text": "", "digests": { "md5": "bb53007f9736b0f2d62e89c80b9badfe", "sha256": "890a9b64b89d7b14443ae427afbfb76fb18857bc1c806b8147e998c2265d0913" }, "downloads": -1, "filename": "lambda_proxy-4.0rc2.tar.gz", "has_sig": false, "md5_digest": "bb53007f9736b0f2d62e89c80b9badfe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 12309, "upload_time": "2019-05-31T18:02:59", "url": "https://files.pythonhosted.org/packages/b7/6f/a04b1768eb8811eb4a8ea5cf76c6f44ede25c15479f4d34e6b12277760e1/lambda_proxy-4.0rc2.tar.gz" } ], "4.0rc3": [ { "comment_text": "", "digests": { "md5": "90f433580502a1e9e7ed1ff55e08918e", "sha256": "73f870bf4ae83544952a5ff1f27a93a4dc26836c630e1bc8ec56fee0be98aee2" }, "downloads": -1, "filename": "lambda_proxy-4.0rc3.tar.gz", "has_sig": false, "md5_digest": "90f433580502a1e9e7ed1ff55e08918e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 14067, "upload_time": "2019-06-01T03:06:22", "url": "https://files.pythonhosted.org/packages/7c/d2/24b56f98b31a1e09c5765df97d38dfd77fdd8e07b61e5c7f63adf12f737b/lambda_proxy-4.0rc3.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "ee86bf18e56784323a95f06ee0967d08", "sha256": "cb66c362d9e69244b2f113e34ecf9c80d7044601264fca4982881f3b3b486586" }, "downloads": -1, "filename": "lambda-proxy-4.1.0.tar.gz", "has_sig": false, "md5_digest": "ee86bf18e56784323a95f06ee0967d08", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 14886, "upload_time": "2019-06-21T01:46:25", "url": "https://files.pythonhosted.org/packages/76/19/90fa893ae194370929c9ed075d9b5d08fdf1c325433fcfa3071275f1e533/lambda-proxy-4.1.0.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "401e1874c655de6c4dbed9e727fcd683", "sha256": "4b2b2adfe73da803cedb80f3b3dde4a886c7a34daf360b012ae004149dd578ca" }, "downloads": -1, "filename": "lambda-proxy-4.1.1.tar.gz", "has_sig": false, "md5_digest": "401e1874c655de6c4dbed9e727fcd683", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 15709, "upload_time": "2019-08-01T06:51:25", "url": "https://files.pythonhosted.org/packages/19/4f/7739780123de02f30f54a7df4387d7f45d7d5c16b0dfacb1bdf724c3f978/lambda-proxy-4.1.1.tar.gz" } ], "4.1.2": [ { "comment_text": "", "digests": { "md5": "11c5d49f5591bd7b2b40c5b949cb90c1", "sha256": "68d43aaf41daa54d351e862557f054f018cf0897dad57d3e008b4cc6fa4d36f1" }, "downloads": -1, "filename": "lambda-proxy-4.1.2.tar.gz", "has_sig": false, "md5_digest": "11c5d49f5591bd7b2b40c5b949cb90c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 15730, "upload_time": "2019-08-01T09:27:46", "url": "https://files.pythonhosted.org/packages/e2/1a/0974f895058f48865885f9f7b9f75bb12c1312863c7317e6be7c19e466b0/lambda-proxy-4.1.2.tar.gz" } ], "4.1.3": [ { "comment_text": "", "digests": { "md5": "9fb87e97f40ae6602b33200fbef325a5", "sha256": "f91924fdcc173cc1eadaf1ebf06307869df9ce866260d7920dda1c53756d72c9" }, "downloads": -1, "filename": "lambda-proxy-4.1.3.tar.gz", "has_sig": false, "md5_digest": "9fb87e97f40ae6602b33200fbef325a5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16017, "upload_time": "2019-08-01T22:59:26", "url": "https://files.pythonhosted.org/packages/1a/79/f3d0f40a4562d7933cfc9a55e1b188e401897a9a654153c5dc3a6b3fb1f4/lambda-proxy-4.1.3.tar.gz" } ], "4.1.4": [ { "comment_text": "", "digests": { "md5": "7aa5e21a8faa89d24a58c170bea21a0f", "sha256": "4d1a710175f20d39bce33e99ba069a6a037649eb99351b2b5c4f4bd2f3b27d76" }, "downloads": -1, "filename": "lambda-proxy-4.1.4.tar.gz", "has_sig": false, "md5_digest": "7aa5e21a8faa89d24a58c170bea21a0f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16222, "upload_time": "2019-08-19T13:16:07", "url": "https://files.pythonhosted.org/packages/27/e0/beae2f668296c7730776ab83da7a6afd249e570f3636ec4af85cf13fb82f/lambda-proxy-4.1.4.tar.gz" } ], "5.0.0": [ { "comment_text": "", "digests": { "md5": "d2f4d4f177ac3a6fbf46a278f233d696", "sha256": "2ba3bbce874022882d722571d2e6c4e0d9f69216a43a4140493dd9d1ab8e088d" }, "downloads": -1, "filename": "lambda-proxy-5.0.0.tar.gz", "has_sig": false, "md5_digest": "d2f4d4f177ac3a6fbf46a278f233d696", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16581, "upload_time": "2019-09-27T20:06:48", "url": "https://files.pythonhosted.org/packages/c8/1e/2868a9b7e707304b9f8c00287f82c4a50336c4f68c87e60b39c931f9d50e/lambda-proxy-5.0.0.tar.gz" } ], "5.0.1": [ { "comment_text": "", "digests": { "md5": "019d8376839f27960d44d32d2fdfab87", "sha256": "23b9e0d8cb126ce82675a62ec979bc78b9a7d59f103368ab0633e8a85d04a66e" }, "downloads": -1, "filename": "lambda-proxy-5.0.1.tar.gz", "has_sig": false, "md5_digest": "019d8376839f27960d44d32d2fdfab87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16512, "upload_time": "2019-10-11T13:29:55", "url": "https://files.pythonhosted.org/packages/af/be/84e1e18107e0648d4ff785fe14cb1717eb1b99f37701db17fb4cadd2b72e/lambda-proxy-5.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "019d8376839f27960d44d32d2fdfab87", "sha256": "23b9e0d8cb126ce82675a62ec979bc78b9a7d59f103368ab0633e8a85d04a66e" }, "downloads": -1, "filename": "lambda-proxy-5.0.1.tar.gz", "has_sig": false, "md5_digest": "019d8376839f27960d44d32d2fdfab87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16512, "upload_time": "2019-10-11T13:29:55", "url": "https://files.pythonhosted.org/packages/af/be/84e1e18107e0648d4ff785fe14cb1717eb1b99f37701db17fb4cadd2b72e/lambda-proxy-5.0.1.tar.gz" } ] }