A collection of useful decorators for making AWS Lambda handlers
Project description
# lambda-handlers
[](https://img.shields.io/pypi/dd/lambda-handlers.svg) [](https://travis-ci.org/enter-at/lambda-handlers) [](https://codeclimate.com/github/enter-at/lambda-handlers/maintainability) [](https://codeclimate.com/github/enter-at/lambda-handlers/test_coverage) [](https://requires.io/github/enter-at/lambda-handlers/requirements/?branch=master) [](https://github.com/semantic-release/semantic-release)
An opinionated Python package that facilitates specifying AWS Lambda handlers including input validation, error handling and response formatting.
## Dependencies
This project uses [pipenv](https://pipenv.readthedocs.io) to manage its dependencies and Python environment. You can install it by:
`bash pip install --user pipenv `
We recommend using a Python virtual environment for each separate project you do. For that, we suggest using [pyenv](https://github.com/pyenv/pyenv-installer).
## Installation
For production, after you clone this repository, you can install this project plus dependencies with:
`bash cd <clone_dest> make install `
## Development
For development you should also install the development dependencies, so run instead:
`bash cd <clone_dest> make install-dev `
This will install all dependencies and this project in development mode.
### Testing
We use [tox](https://tox.readthedocs.io/en/latest/) to run the code checkers. Run it with:
`bash tox `
You can also run the tasks separately with make:
`bash make test `
will run the unit tests,
`bash make lint `
will run a linter,
`bash make mypy `
will run the static type checker, and
`bash make isort-check `
will run the import order checker.
## [1.0.2](https://github.com/enter-at/lambda-handlers/compare/v1.0.1…v1.0.2) (2019-07-02)
### Bug Fixes
packaging: add missing pypi configuration ([029524a](https://github.com/enter-at/lambda-handlers/commit/029524a))
## [1.0.1](https://github.com/enter-at/lambda-handlers/compare/v1.0.0…v1.0.1) (2019-07-02)
### Bug Fixes
makefile: remove tag target ([aefe5a6](https://github.com/enter-at/lambda-handlers/commit/aefe5a6))
# 1.0.0 (2019-07-01)
### Bug Fixes
handle import errors gracefully ([eea9f6f](https://github.com/enter-at/lambda-handlers/commit/eea9f6f))
formatters: add FormattingError exception ([8a94c66](https://github.com/enter-at/lambda-handlers/commit/8a94c66))
MarshmallowValidator: handler empty error messages ([0bf03b0](https://github.com/enter-at/lambda-handlers/commit/0bf03b0))
version: set the version used for pre-release ([3873a5f](https://github.com/enter-at/lambda-handlers/commit/3873a5f))
### Features
validator: add request and response validation ([0e0af4e](https://github.com/enter-at/lambda-handlers/commit/0e0af4e))
validator: add request and response validation ([0029a97](https://github.com/enter-at/lambda-handlers/commit/0029a97))
validator: extract validator abstraction ([bfc697e](https://github.com/enter-at/lambda-handlers/commit/bfc697e))