{ "info": { "author": "Pedro H.", "author_email": "pedro@digitalrounin.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "|Code Climate| |Build Status| |codecov| |PyPI version|\n\n================\npy-lambda-packer\n================\n\nA Python AWS Lambda packager. This projects is very loosely based on the\nwork in\n`serverless-wsgi `__.\n\n**NOTICE**: *This project is a work in progress and should be considered\nunstable.*\n\nFeatures:\n\n- Written to run under both *Python 3.6* and *2.7*.\n- Generates *Python 3.6* and *2.7* *AWS Lambda Deployment Packages*,\n user configurable.\n- *AWS Lambda Deployment Packages* are generated in isolated, temporary\n *virtualenvs*.\n- Per project configuration files to cut down on typing.\n- Can be easily be included and integrated into other projects as a\n library.\n\n-----\nUsage\n-----\n\nInstallation\n~~~~~~~~~~~~\n\nLatest stable\n^^^^^^^^^^^^^\n\n::\n\n $ pip install py-lambda-packer\n\nBleeding edge\n^^^^^^^^^^^^^\n\nTo install directly the bleeding edge version from *GitHub*:\n\n::\n\n $ pip install git+https://github.com/digitalrounin/py-lambda-packer.git@master#egg=py-lambda-packer\n\nTo install a specific tag or branch, replace ``master`` in the URL of\nthe previous command with the desired name.\n\nQuick start\n~~~~~~~~~~~\n\nQuick example command to generate ``py-lambda-package.zip`` for upload\nto *AWS* as a *Lambda Function*\n\n::\n\n $ py-lambda-packer --requirement requirements.txt --package . \\\n --python python3.6 --include LICENSE\n\nCommand help\n~~~~~~~~~~~~\n\nCommand help information:\n\n::\n\n $ py-lambda-packer --help\n\n usage: py-lambda-packer [-h] [--config-file CONFIG_FILE] [--include INCLUDES]\n [--exclude EXCLUDES] [--followlinks]\n [--virtualenv-dir VIRTUALENV_DIR] [--keep-virtualenv]\n [--python PYTHON] [--requirement REQUIREMENTS]\n [--package PACKAGES] [--output OUTPUT]\n [--archive-dir ARCHIVE_DIR] [--keep-archive]\n [--generate-config]\n\n optional arguments:\n -h, --help show this help message and exit\n --config-file CONFIG_FILE\n location of configuration file (default: ./py-lambda-\n packer.yaml)\n --include INCLUDES glob pattern of what to include, multiple allowed\n (default is empty)\n --exclude EXCLUDES glob pattern of what to exclude, multiple allowed\n (default is empty)\n --followlinks follows symbolic links (default=False)\n --virtualenv-dir VIRTUALENV_DIR\n directory to build the virtualenv in (default is a tmp\n dir)\n --keep-virtualenv do not delete virtualenv build directory when set\n (default=False)\n --python PYTHON version of python to build virtualenv with (default is\n python2.7)\n --requirement REQUIREMENTS, -r REQUIREMENTS\n pip requirements file to read, multiple allowed\n (default is empty)\n --package PACKAGES, -p PACKAGES\n pip package index options, multiple allowed (default\n is empty)\n --output OUTPUT, -o OUTPUT\n name of output zip file (default is py-lambda-\n packer.zip)\n --archive-dir ARCHIVE_DIR\n directory to build the archive in (default is a tmp\n dir)\n --keep-archive do not delete archive build directory when set\n (default=False)\n --generate-config prints thedefault configuration to help create one\n\nProject configuration\n~~~~~~~~~~~~~~~~~~~~~\n\nProject configuration file are named ``py-lambda-packer.yaml`` in the\nbase directory of your project. Here is an example:\n\n::\n\n virtualenv:\n python: python2.7\n pip:\n requirements:\n - requirements.txt\n packages:\n - .\n - Flask\n\n packager:\n target: py-lambda-package.zip\n followlinks: true\n includes:\n - LICENSE\n - static/**\n - templates/**/*.html\n excludes:\n - static/**/*.tmp\n\nTo generate a configuration file, try the\n``py-lambda-packer --generate-config`` command.\n\n---------\nTodo list\n---------\n\n- Bump up code coverage limit back up to 80% and fix failing source\n files.\n- Add comments to configuration file created by\n ``py-lambda-packer --generate-config``.\n- Document the *py-lambda-packer* API so that it can be imported as a\n library into other projects.\n- Make the ``colorlog`` Python package optional to allow\n *py-lambda-packer* to be imported into other projects as a library\n more cleanly.\n- Plugin support.\n- Support building packages with C and C++ Python extensions. Thinking\n out loud... Spin up an EC2 instance on the fly via something\n like `HashiCorp Packer `__, build, package,\n destroy instance.\n- Clean up *Windows* compatibility. (I do not have access to a\n *Windows* based system, so any contributions here would be greatly\n appreciated.)\n- Support packaging for other Function as a Service (FaaS) platforms\n provided by : *Azure*, *Google Cloud*, etc.\n\n----------\nReferences\n----------\n\nFor more information\n~~~~~~~~~~~~~~~~~~~~\n\n- `AWS Documentation - Creating a Deployment Package\n (Python) `__\n- `Stackoverflow\n answer `__ - The\n question pertains to AWS lambda function for Alexa, but the answer is\n generally relevant to packaging Python AWS Lambdas.\n\nRelated projects\n~~~~~~~~~~~~~~~~\n\nIf you are working with the `Serverless\nFramework `__ the following plugins might be of\ninterest to you:\n\n- `serverless-wsgi `__ -\n \"Serverless plugin to deploy WSGI applications (Flask/Django/Pyramid\n etc.) and bundle Python packages\". This *py-lambda-packer* is loosely\n based on this project. Many thanks to the contributors of that\n project.\n- `serverless-python-requirements `__\n - \"Serverless plugin to bundle Python packages\".\n\nFor a full list of *Serverless Framework* plugins, refer to\n`serverless/plugins `__.\n\nOther frameworks that are worth investigating are:\n\n- `AWS Labs Chalice `__ - \"Python\n Serverless Microframework for AWS\".\n- `Zappa `__ - \"Serverless Python\n Web Services\".\n\nPlease keep in mind that this list is not intended to be extensive. It\nis only here to help folks branch out their investigations.\n\n.. |Code Climate| image:: https://codeclimate.com/github/codeclimate/codeclimate/badges/gpa.svg\n :target: https://codeclimate.com/github/digitalrounin/py-lambda-packer\n.. |Build Status| image:: https://travis-ci.org/digitalrounin/py-lambda-packer.svg?branch=master\n :target: https://travis-ci.org/digitalrounin/py-lambda-packer\n.. |codecov| image:: https://codecov.io/gh/digitalrounin/py-lambda-packer/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/digitalrounin/py-lambda-packer\n.. |PyPI version| image:: https://badge.fury.io/py/py-lambda-packer.svg\n :target: https://badge.fury.io/py/py-lambda-packer\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/digitalrounin/py-lambda-packer.git", "keywords": "aws lambda", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "py-lambda-packer", "package_url": "https://pypi.org/project/py-lambda-packer/", "platform": "", "project_url": "https://pypi.org/project/py-lambda-packer/", "project_urls": { "Homepage": "https://github.com/digitalrounin/py-lambda-packer.git" }, "release_url": "https://pypi.org/project/py-lambda-packer/0.1.0/", "requires_dist": [ "PyYAML (>=3.12)", "colorlog (>=2.10.0)", "future (>=0.16.0)" ], "requires_python": "", "summary": "Helps build AWS Lambda zip files for Python projects.", "version": "0.1.0" }, "last_serial": 2913048, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "4866367fbb196aaae6cb2c01c228ff63", "sha256": "568cef9151e18d0d588dee82e78c2e0c3b371efd46edfd65e555fac658f63001" }, "downloads": -1, "filename": "py_lambda_packer-0.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4866367fbb196aaae6cb2c01c228ff63", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11801, "upload_time": "2017-05-28T10:44:44", "url": "https://files.pythonhosted.org/packages/10/dc/8bed5c57991913b9e2cec72591a1d27e8af306d493af5fee75798ef5ced7/py_lambda_packer-0.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4300f1ab62539ef36a0b60ac8df1903e", "sha256": "31ff3cee1c65c69d8c404bfe2e0df3a38ec83af66a9a943f7aa8cea0c726c24c" }, "downloads": -1, "filename": "py-lambda-packer-0.0.0.tar.gz", "has_sig": false, "md5_digest": "4300f1ab62539ef36a0b60ac8df1903e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7661, "upload_time": "2017-05-28T10:44:46", "url": "https://files.pythonhosted.org/packages/1d/6d/e2d8c3520e21ee1a22be3149a5c5de5dc9beb785a7963fd72c5099c069f3/py-lambda-packer-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c99855706cb13cfba8b5946ad0882825", "sha256": "34bf4f16290e88c8855ab4d3a19b0d4380f5722e3deb7b51e99ede7b9d901803" }, "downloads": -1, "filename": "py_lambda_packer-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c99855706cb13cfba8b5946ad0882825", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17005, "upload_time": "2017-05-31T10:04:29", "url": "https://files.pythonhosted.org/packages/15/d9/5d1a32c7e9de3c20c72a2d8a41e23ffc861a1548db30d4484273fd1a3ced/py_lambda_packer-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f02b5ccd47a78949712132bf0206b821", "sha256": "a5cdd79abab4bca660f5275a1707d3075edf71342a6845c5eddd5a45fdc4844f" }, "downloads": -1, "filename": "py-lambda-packer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f02b5ccd47a78949712132bf0206b821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13295, "upload_time": "2017-05-31T10:04:31", "url": "https://files.pythonhosted.org/packages/be/6f/fc8045721882ab1a47d8c78f6098f923019060649985abf7056b0ebf9113/py-lambda-packer-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c99855706cb13cfba8b5946ad0882825", "sha256": "34bf4f16290e88c8855ab4d3a19b0d4380f5722e3deb7b51e99ede7b9d901803" }, "downloads": -1, "filename": "py_lambda_packer-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c99855706cb13cfba8b5946ad0882825", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17005, "upload_time": "2017-05-31T10:04:29", "url": "https://files.pythonhosted.org/packages/15/d9/5d1a32c7e9de3c20c72a2d8a41e23ffc861a1548db30d4484273fd1a3ced/py_lambda_packer-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f02b5ccd47a78949712132bf0206b821", "sha256": "a5cdd79abab4bca660f5275a1707d3075edf71342a6845c5eddd5a45fdc4844f" }, "downloads": -1, "filename": "py-lambda-packer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f02b5ccd47a78949712132bf0206b821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13295, "upload_time": "2017-05-31T10:04:31", "url": "https://files.pythonhosted.org/packages/be/6f/fc8045721882ab1a47d8c78f6098f923019060649985abf7056b0ebf9113/py-lambda-packer-0.1.0.tar.gz" } ] }