{ "info": { "author": "Carles Barrob\u00e9s", "author_email": "carles@barrobes.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries" ], "description": "[![Build Status](https://travis-ci.org/txels/ep.svg)](https://travis-ci.org/txels/ep)\n[![Code Health](https://landscape.io/github/txels/ep/master/landscape.svg)](https://landscape.io/github/txels/ep/master)\n[![Can I Use Python 3?](https://caniusepython3.com/check/00276696-d27c-46f0-b10e-0c7bd684f786.svg)](https://caniusepython3.com/check/00276696-d27c-46f0-b10e-0c7bd684f786)\n\n# ep\n\nA tool to support an explicit contract between application and plaftorm.\n\nInspired by Heroku's post about [an explicit contract between application and\nplatform](https://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts),\n`ep` aims to provide a reusable mechanism to cover that contract.\n\nAs a summary, Heroku's contract is based on:\n\n- Dependency management: declared as part of the codebase\n- Procfile: as a mechanism to specify what should be run\n- Web process binds to $PORT (an externally provided environment variable\n- stdout for logs\n- Resource handles in the environment: environment variables for configuration,\n in particular for connecting to external resources\n\n\n## What defines a contract in `ep`\n\nAn `ep`-based contract tries to cover these areas:\n\n- A defined way to specify your dependencies\n- A defined way to run your project\n- Configured purely via environment variables\n\nThe particulars of the contract are specified via a configuration file that\nlives on the root of your application's repository. This configuration file\nis in YAML format and is called `ep.yml` by default.\n\n\n### A defined way to specify dependencies\n\nDependencies can be of various types. `ep` aims to cover at least the\nfollowing:\n\n - `python`: via pip install of a requirements file. Defaults to\n `requirements.txt` at the root folder\n - `node`: via npm install of a package file. Defaults to `package.json` at\n the root\n\n> The root here refers to the directory where `ep.yml` lives.\n\n> Future extensions may cover ruby gems, bower packages, and even os-level\n> packages on some OSes\n\nThere are two types of dependencies from the PoV of `ep`:\n - Those that the tool will be able to install\n - Those that it will only verify, but not attempt to install. These include\n e.g. the version of Python in your system\n\nSome of these dependencies will have their defaults.\nThis could be a partial example of a `ep.yml`.\n\n```yaml\nep: 1.0.0\ndependencies:\n - python\n version: 2.7\n file: requirements/runtime.txt\n - npm\n```\n\nThe command to install dependencies via ep is:\n\n ep setup\n\n`ep` will always install dependencies in an isolated environment. This means\ne.g. a virtual environment in Python, local npm install etc. `ep` will manage\nthe creation of this isolated environment for you.\n\nYou can always delete installed dependencies for a fresh initial state:\n\n ep clear\n\n### A defined way to run your project\n\n`ep` doesn't force you to use `Procfile`, but lets you define your run\ncommand:\n\n```yaml\nrun: gunicorn myapp.wsgi\n```\n\nDefaults to running a `Procfile` in your root.\n\nRun your project using:\n\n ep run\n\nYou can also run multiple commands:\n\n```yaml\nrun:\n - echo \"Starting ...\"\n - gunicorn myapp.wsgi\n```\n\n\n### Configuration via environment variables\n\nYour app should be configurable via environment variables. Your `ep.yml` file\nprovides an explicit definition of what those variables are, and optional\ndefault values and help.\n\nYou should include in an `env` section the environment variables your system\nrelies on for running, add help text for them, and when applicable define\nsome defaults:\n\n```yaml\nenv:\n PORT:\n help: \"The port the web application will run on\"\n SOME_EXTERNAL_SERVICE_URL:\n help: \"URL to your external service blah.\"\n default: \"http://localhost:9000\"\n```\n\n`ep run` will complain if variables that do not have a default value are not\nprovided, and refuse to run.\n\n\n### Performing additional checks\n\nBesides default checks for dependency management and environment variables,\nyou can add custom check steps. As for `run`, these can be a single string\nor a list:\n\n\n```yaml\ncheck:\n - python -m unittest discover\n - flake8 ep\n```\n\n\n## Additional features\n\nBesides the basic explicit contract defined above, `ep` helps you with extra\nthings.\n\n### Some commands\n\n`ep shell` runs commands within ep's isolated environment. E.g.:\n\n ep shell \"pip list\"\n\n### Extra setup steps\n\nTODO: define a mechanism to have additional setup steps such as running\nmigrations on a django project, etc...", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/txels/ep", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "ep", "package_url": "https://pypi.org/project/ep/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ep/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/txels/ep" }, "release_url": "https://pypi.org/project/ep/0.2.4/", "requires_dist": null, "requires_python": null, "summary": "A tool to support an explicit contract between application and plaftorm", "version": "0.2.4" }, "last_serial": 1950032, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "09259363950e0aea64ade4e68a8c2831", "sha256": "d98028da97e592daa3f21d6999f8cc97e82681ba785399fc13c370bb5bdba1fc" }, "downloads": -1, "filename": "ep-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "09259363950e0aea64ade4e68a8c2831", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9047, "upload_time": "2015-04-10T11:09:42", "url": "https://files.pythonhosted.org/packages/98/ed/b315aa2f26b7bc98d4938c1ca58f1af8339b0c9a738b5d878239912a760c/ep-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d72babdf5bedf47235f928ee764f7f38", "sha256": "673c3c23d16b83afc8ebe62b5adfe4fc710576fc7280c455754ac30fdb1e49d6" }, "downloads": -1, "filename": "ep-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d72babdf5bedf47235f928ee764f7f38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4928, "upload_time": "2015-04-10T11:09:49", "url": "https://files.pythonhosted.org/packages/95/6f/f888f6f0160e43cdb97bc6e5985e883968a93db5e0e643368eaa6cdd4e6f/ep-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "034f0440afc611d22b5a059d7e7adb1d", "sha256": "4259c559edfb0a9b97f93ab4b5a2401e2243e403203e43e59369892e6891a38e" }, "downloads": -1, "filename": "ep-0.1.10-py2-none-any.whl", "has_sig": false, "md5_digest": "034f0440afc611d22b5a059d7e7adb1d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13909, "upload_time": "2016-02-05T13:01:43", "url": "https://files.pythonhosted.org/packages/33/b2/44af2dc27e6c7ea554fd6f96296bc79030a39d8863ffb1b1d241c8517a10/ep-0.1.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7964c90d9a3b72a00750354e755c9317", "sha256": "a176591dd451b1b45b8adad4867c595bbc842f8aa2663dcee3b196241cbec4d4" }, "downloads": -1, "filename": "ep-0.1.10.tar.gz", "has_sig": false, "md5_digest": "7964c90d9a3b72a00750354e755c9317", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9376, "upload_time": "2016-02-05T13:01:36", "url": "https://files.pythonhosted.org/packages/90/8a/416e531848eb937e2d2dc7e2cdf5d19547da3011aef589b4e672a010d5f4/ep-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "6ee520c5abd8072a70fdb64ca49da988", "sha256": "dae1fff11f27a50da66c7c6b1a7983eb1889fcf50d1bfb28ea3700b0a440ea2f" }, "downloads": -1, "filename": "ep-0.1.11-py2-none-any.whl", "has_sig": false, "md5_digest": "6ee520c5abd8072a70fdb64ca49da988", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13909, "upload_time": "2016-02-08T11:39:32", "url": "https://files.pythonhosted.org/packages/29/3c/8e2f1e2156210854bca1e4bf22edaf9d5418f792284aa334648ccb98f91a/ep-0.1.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf0faa032cbbfbd331a8991121b13c9a", "sha256": "d436ced50fdb2142bf7544cbbc57f0b0479239a2d8e1d733fe1f2dfe6da93656" }, "downloads": -1, "filename": "ep-0.1.11.tar.gz", "has_sig": false, "md5_digest": "bf0faa032cbbfbd331a8991121b13c9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9390, "upload_time": "2016-02-08T11:39:26", "url": "https://files.pythonhosted.org/packages/9e/41/a012cc962738b646ddf174084263937499ae329156363ca98305577c13aa/ep-0.1.11.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bc952a846c3fe322242f5e12479db851", "sha256": "cec117217dfc2dc742a9b801d78880bab4f40211a84358b40875b32c90fbe250" }, "downloads": -1, "filename": "ep-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "bc952a846c3fe322242f5e12479db851", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10169, "upload_time": "2015-04-11T00:19:31", "url": "https://files.pythonhosted.org/packages/56/05/234c29eaf2eccbb980fa5275deaa4b107e6834f689fb19677002a7a4cbb2/ep-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8921ff3a1e86bcd0f58ca92edcd16a2a", "sha256": "da02a5cf91b4a27afe83785734abf768f52817685decfe1b566e0ab30ad9942a" }, "downloads": -1, "filename": "ep-0.1.2.tar.gz", "has_sig": false, "md5_digest": "8921ff3a1e86bcd0f58ca92edcd16a2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5963, "upload_time": "2015-04-11T00:19:15", "url": "https://files.pythonhosted.org/packages/b6/ed/864d16a8ddef4fc1e251c006648468e9062c10a800f5342ed24a4cc43968/ep-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "9be9c5cbc60e1c75ae19cfb5249ac261", "sha256": "ddbeeda9c5d491bca7c57ba4b3d6b9bf5487675e08f2513869497616982dadca" }, "downloads": -1, "filename": "ep-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "9be9c5cbc60e1c75ae19cfb5249ac261", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11676, "upload_time": "2015-04-12T19:20:25", "url": "https://files.pythonhosted.org/packages/db/17/ce7e751a32ce97143053c665d5c60710bab0bbc27f274fffd096adb322a9/ep-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e59a04f5d12cde2ae4ba5853ff8f3fd", "sha256": "156b1103fb9ebea8bd0a30ecf96d79e172d57ac78c210ab3c56a6643a0f1302d" }, "downloads": -1, "filename": "ep-0.1.3.tar.gz", "has_sig": false, "md5_digest": "5e59a04f5d12cde2ae4ba5853ff8f3fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7083, "upload_time": "2015-04-12T19:19:32", "url": "https://files.pythonhosted.org/packages/c3/74/f0ed0832f17442433b3d80f5a951f579509f2e646b858aa958128524cda2/ep-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "cd883301b56273b5077fa2bf3ae6b463", "sha256": "65c46612c299cf0297b99a0c6d5a8750d04c46eda50fe0e94718de473776f035" }, "downloads": -1, "filename": "ep-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "cd883301b56273b5077fa2bf3ae6b463", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12613, "upload_time": "2015-04-18T11:38:40", "url": "https://files.pythonhosted.org/packages/89/30/8525cc1ec2bf21d3cb8d3e57c0579cb5ebe651c0e4c7d3062be8a3310eb9/ep-0.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "646bfb71da1f33e0f949a0f141d2fc32", "sha256": "5c04fa4b4607781a9efd54ae4cbf8fe97a128bc2c33a5c2f3f354b31c7f91879" }, "downloads": -1, "filename": "ep-0.1.4.tar.gz", "has_sig": false, "md5_digest": "646bfb71da1f33e0f949a0f141d2fc32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7679, "upload_time": "2015-04-18T11:38:35", "url": "https://files.pythonhosted.org/packages/59/66/1fda242105c2fb145d520fb1345cc6d37b452f0a21a043cacb84e4095759/ep-0.1.4.tar.gz" } ], "0.1.5": [], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ee81bc779d5bda2eef0c8798129f4a5c", "sha256": "548379180c19bbd5da8f77d1f56b25d978f97488af54bc91d21602aeb49e5dc5" }, "downloads": -1, "filename": "ep-0.1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "ee81bc779d5bda2eef0c8798129f4a5c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13001, "upload_time": "2015-04-23T08:46:37", "url": "https://files.pythonhosted.org/packages/08/36/9cfa1a1cac26fe5fa58ae656cf37e2dc2acfe9b5353eb0d2f0121b9e6d25/ep-0.1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe12ee18cf2f737df53a981fb2bf66ae", "sha256": "aa367dcff853fb92f7e87d673b3b5f9da5bcd80f2b0bb0c4c1bd3bf3aea1f2c7" }, "downloads": -1, "filename": "ep-0.1.6.tar.gz", "has_sig": false, "md5_digest": "fe12ee18cf2f737df53a981fb2bf66ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8022, "upload_time": "2015-04-23T08:46:33", "url": "https://files.pythonhosted.org/packages/a6/ab/12d19d27c6509f28b99597bdcec72ba3587c8ac58de2d1b83560274ef043/ep-0.1.6.tar.gz" } ], "0.1.7": [], "0.1.8": [ { "comment_text": "", "digests": { "md5": "dade1886a0914a76901fae87bd741427", "sha256": "504990ebed23b997e3593b39d9241b5dc464aa4c61c5a3184e6818c8dc1542f7" }, "downloads": -1, "filename": "ep-0.1.8-py2-none-any.whl", "has_sig": false, "md5_digest": "dade1886a0914a76901fae87bd741427", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13538, "upload_time": "2015-08-03T21:23:33", "url": "https://files.pythonhosted.org/packages/5d/8b/e4df44338f84bdbe0c11739593085b068473d97245c9b2452ce8bfdba842/ep-0.1.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3cf6d87d681e54a2a7298521344a669c", "sha256": "eba5b5d0f9dbfaa44bd806c4649408f41ffefff90866f813b1690b7fed476739" }, "downloads": -1, "filename": "ep-0.1.8.tar.gz", "has_sig": false, "md5_digest": "3cf6d87d681e54a2a7298521344a669c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9175, "upload_time": "2015-08-03T21:23:29", "url": "https://files.pythonhosted.org/packages/51/fa/1fa63a2e431ef5e896502eba7d3968bbc7cc615adb8edb08a864beaa53d5/ep-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "fe3373ef7e0e5af1faf23c922676cc32", "sha256": "23f0c85881b2ef11aead77b6df49095e4e381b413e40df570e6bb91d8e576e67" }, "downloads": -1, "filename": "ep-0.1.9-py2-none-any.whl", "has_sig": false, "md5_digest": "fe3373ef7e0e5af1faf23c922676cc32", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13757, "upload_time": "2015-08-14T21:35:43", "url": "https://files.pythonhosted.org/packages/ac/01/24e86917f17eb03bcf880b1e84dba494a5905d415102f8fe7f36b18886d8/ep-0.1.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e09c0012d503ce66a42df956e64939da", "sha256": "e8982771756fc11087335e26b6f6bc2288169ebe2371d00304b3db3d773dc2ad" }, "downloads": -1, "filename": "ep-0.1.9.tar.gz", "has_sig": false, "md5_digest": "e09c0012d503ce66a42df956e64939da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9255, "upload_time": "2015-08-14T21:35:35", "url": "https://files.pythonhosted.org/packages/e7/b5/27a0cf35f7c9fc07e23a0ff25c3fc524c2c84534b5c2d4f20991e90d9c88/ep-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cf14ab357d2cc20effb637dcbf480df1", "sha256": "e358e110c9e1481c1f588681e8843659ca84fa2dc5734f12f5fa711b4cd908cb" }, "downloads": -1, "filename": "ep-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cf14ab357d2cc20effb637dcbf480df1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13985, "upload_time": "2016-02-08T12:54:32", "url": "https://files.pythonhosted.org/packages/c7/3e/dca9282a97f8dfb211a09204e5627613ca0323aed58f5a9c328b9bf4586f/ep-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f3b24e0a7b5fbeb0a24553947d3cbb0", "sha256": "47a4e7731cf7a1210cbe557add157da8ee1abf9e29b7cbf4a47a235959ea43ac" }, "downloads": -1, "filename": "ep-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6f3b24e0a7b5fbeb0a24553947d3cbb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9467, "upload_time": "2016-02-08T12:54:04", "url": "https://files.pythonhosted.org/packages/60/d2/b580ad21ec5df24905e99ae8f7a2d96e977023b3704178fc142a06408de0/ep-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7a23582341201606184358f6836aad97", "sha256": "8912fa1dda8b0dcfa100fc899916c8fb578547acb9686d67576d8b6b8e5e90f3" }, "downloads": -1, "filename": "ep-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "7a23582341201606184358f6836aad97", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14026, "upload_time": "2016-02-09T20:27:45", "url": "https://files.pythonhosted.org/packages/f5/09/55e33f9cc48ad6f5cefb7b44ca20f33960ff6f953ee2813582c15549a775/ep-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ff4aae1820453a8b8bf2848258dc7cd", "sha256": "a8c56d872e7283304ed86d3ad45d5f8243d460cee1b39d986b8cd76dd90822cd" }, "downloads": -1, "filename": "ep-0.2.1.tar.gz", "has_sig": false, "md5_digest": "1ff4aae1820453a8b8bf2848258dc7cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9492, "upload_time": "2016-02-09T20:27:39", "url": "https://files.pythonhosted.org/packages/50/c4/5d174fb2d00732820e0ffb0ab855ffa03883cc28bb5ac2752a2743b5c341/ep-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f42af2d3d1b6e40539a365eecfb8bbdc", "sha256": "e06c6b7f80e16e1665576fc43d967ea16897e2d3f87de404552f7984ed182920" }, "downloads": -1, "filename": "ep-0.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "f42af2d3d1b6e40539a365eecfb8bbdc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14149, "upload_time": "2016-02-09T22:25:40", "url": "https://files.pythonhosted.org/packages/3a/aa/c93869b81d0af06862c78c3c3f29a220801a0883519c3860e4004fd71453/ep-0.2.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82a4ea3101764c09a6d3a84489523712", "sha256": "a6fb6e7e50a06434683f41b2fa294aab22b4850a7b30beddf9feeb943cd31f84" }, "downloads": -1, "filename": "ep-0.2.2.tar.gz", "has_sig": false, "md5_digest": "82a4ea3101764c09a6d3a84489523712", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9613, "upload_time": "2016-02-09T22:25:31", "url": "https://files.pythonhosted.org/packages/5a/7f/0f9f0dd1737d680b970aed576e2e5957131c17590026f8b05ed2c7825063/ep-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "67c44ab1f8d1921d7f8487c6787a6ec0", "sha256": "3dfcbc6674ebb37a03d503b3628f835f213b1d46ecb3fafc22639c88480c890d" }, "downloads": -1, "filename": "ep-0.2.3-py2-none-any.whl", "has_sig": false, "md5_digest": "67c44ab1f8d1921d7f8487c6787a6ec0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14149, "upload_time": "2016-02-09T23:36:59", "url": "https://files.pythonhosted.org/packages/c5/0c/56ab2d63d08c2c065ef84e568f9fa83b367d13d72d7904e030a1fca0a657/ep-0.2.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3faea67db3db3f8f264e41db15d6bdc8", "sha256": "32d5fbe48302e84f51641788d0958f1b4dafe2b8d3b94aa6848b1b3f32cc4ae9" }, "downloads": -1, "filename": "ep-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3faea67db3db3f8f264e41db15d6bdc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9592, "upload_time": "2016-02-09T23:36:54", "url": "https://files.pythonhosted.org/packages/5d/4d/f45337821c2ef16d9dcb7ecef415ca29f88cfe1d9cfc76247aa3eb422c56/ep-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "ab36d2da2be4c01600059f02902f8b09", "sha256": "981d700973c3b6a5982d56485890fdd78879ce92cd62edf4b55770f87d83ef03" }, "downloads": -1, "filename": "ep-0.2.4-py2-none-any.whl", "has_sig": false, "md5_digest": "ab36d2da2be4c01600059f02902f8b09", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14286, "upload_time": "2016-02-10T21:30:53", "url": "https://files.pythonhosted.org/packages/c3/6a/6c9588b9f701d4e6170e5bf22c23b07aefa0e465717551c203e245432396/ep-0.2.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a07ec6fdb96193dc3f70270558272e4a", "sha256": "6e36f3ff52169ecbcafb35111d1b27c0c1c81ea52ca6e2ecb29c53cb30f51477" }, "downloads": -1, "filename": "ep-0.2.4.tar.gz", "has_sig": false, "md5_digest": "a07ec6fdb96193dc3f70270558272e4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9694, "upload_time": "2016-02-10T21:30:47", "url": "https://files.pythonhosted.org/packages/00/44/72d3fc311451b4a2152c9f21505e692b8c5c9955feae1141424fac17df6f/ep-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ab36d2da2be4c01600059f02902f8b09", "sha256": "981d700973c3b6a5982d56485890fdd78879ce92cd62edf4b55770f87d83ef03" }, "downloads": -1, "filename": "ep-0.2.4-py2-none-any.whl", "has_sig": false, "md5_digest": "ab36d2da2be4c01600059f02902f8b09", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14286, "upload_time": "2016-02-10T21:30:53", "url": "https://files.pythonhosted.org/packages/c3/6a/6c9588b9f701d4e6170e5bf22c23b07aefa0e465717551c203e245432396/ep-0.2.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a07ec6fdb96193dc3f70270558272e4a", "sha256": "6e36f3ff52169ecbcafb35111d1b27c0c1c81ea52ca6e2ecb29c53cb30f51477" }, "downloads": -1, "filename": "ep-0.2.4.tar.gz", "has_sig": false, "md5_digest": "a07ec6fdb96193dc3f70270558272e4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9694, "upload_time": "2016-02-10T21:30:47", "url": "https://files.pythonhosted.org/packages/00/44/72d3fc311451b4a2152c9f21505e692b8c5c9955feae1141424fac17df6f/ep-0.2.4.tar.gz" } ] }