{ "info": { "author": "Dave Shawley", "author_email": "daveshawley@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Setuptools Plugin", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Pip Setuptools Extension\n========================\n\n|Version| |Downloads| |Status| |License|\n\nA `setuptools`_ extension that installs requirements based on `pip`_\nrequirements files.\n\nWait... Why? What??\n-------------------\n\nInstalling runtime dependencies is already handled by setuptools right?\nIt's as easy as running ``python setup.py develop``?! Not quite...\n\n*setup.py* is a great tool and the *develop* command is useful for setting\nup basic development and installing the dependencies identified by the\n``setup_requires`` keyword. What it does not do is install any tools that\nare used for actually hacking on the code base. Many projects include a\n`pip-formatted requirements file`_ named *requirements.txt* for this very\npurposes. It contains the dependencies that you need to have installed to\nwork on the project instead of use it. This extension aims to automate\nthat pattern and make it easier to set up a development environment by\nproviding a new setup command named *requirements*.\n\nHaving a separate *requirements.txt* is a good pattern but it is not\nwithout its flaws. Having dependencies identified in two places is an\noutright violation of the *Don't Repeat Yourself* principle. That is\nsomething else that we can solve pretty easily with a function that you\ncan read a pip-formatted requirements file and generate a list that is\nusable as the setup ``setup_requires``, ``install_requires``, or\n``tests_require`` keywords. This is where the\n``setupext.pip.read_requirements_from_file`` function comes in.\nYou can use this function to populate the ``setup_requires``,\n``tests_require``, and ``extras_require`` keywords.\n\nOk... Where?\n------------\n+---------------+-------------------------------------------------+\n| Source | https://github.com/dave-shawley/setupext-pip |\n+---------------+-------------------------------------------------+\n| Status | https://travis-ci.org/dave-shawley/setupext-pip |\n+---------------+-------------------------------------------------+\n| Download | https://pypi.python.org/pypi/setupext-pip |\n+---------------+-------------------------------------------------+\n| Documentation | http://setupext-pip.readthedocs.org/en/latest/ |\n+---------------+-------------------------------------------------+\n| Issues | https://github.com/dave-shawley/setupext-pip |\n+---------------+-------------------------------------------------+\n\n\n.. _setuptools: https://pythonhosted.org/setuptools/\n.. _pip: https://pip.pypa.io/en/latest/\n.. _pip-formatted requirements file:\n https://pip.pypa.io/en/latest/reference/pip_install.html\n #requirements-file-format\n.. |Version| image:: https://badge.fury.io/py/setupext-pip.svg\n :target: https://badge.fury.io/\n.. |Downloads| image:: https://pypip.in/d/setupext-pip/badge.svg?\n :target: https://pypi.python.org/pypi/setupext-pip\n.. |Status| image:: https://travis-ci.org/dave-shawley/setupext-pip.svg\n :target: https://travis-ci.org/dave-shawley/setupext-pip\n.. |License| image:: https://pypip.in/license/setupext-pip/badge.svg?\n :target: https://setupext-pip.readthedocs.org/", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/dave-shawley/setupext-pip", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "setupext-pip", "package_url": "https://pypi.org/project/setupext-pip/", "platform": "any", "project_url": "https://pypi.org/project/setupext-pip/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/dave-shawley/setupext-pip" }, "release_url": "https://pypi.org/project/setupext-pip/1.0.5/", "requires_dist": null, "requires_python": null, "summary": "Setuptools extension for installing requirements", "version": "1.0.5" }, "last_serial": 1191396, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "c8695c27a4ca7edaaafc88e9bd8007db", "sha256": "cdd63a19e68a70b42ff5b5aaf1f1d952ededab280c924fc5dd825dfed6a454c3" }, "downloads": -1, "filename": "setupext-pip-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c8695c27a4ca7edaaafc88e9bd8007db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6244, "upload_time": "2014-07-27T18:09:45", "url": "https://files.pythonhosted.org/packages/8f/e4/5a213c5fb6bfca922e98c46424cf75ad3da371998c1a373e83a68a0a797e/setupext-pip-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "eabee84c236f0a6dcc92977eea42d750", "sha256": "6b3416be0c51834d6a3d1288c2403c39d115f557d3456019a98acd30b329d952" }, "downloads": -1, "filename": "setupext-pip-1.0.2.tar.gz", "has_sig": false, "md5_digest": "eabee84c236f0a6dcc92977eea42d750", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8267, "upload_time": "2014-07-30T11:36:38", "url": "https://files.pythonhosted.org/packages/e5/01/b64ca3639ada5051a22838fec91e69604fc205d3e533a921ab28e26df713/setupext-pip-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6a3b86f9cdc9b9368aa1b2e2f1dd37c7", "sha256": "3c48a88503221f5fd00a6d8f4d0979aa8f2d5ce3765779212e2599b9f30fb737" }, "downloads": -1, "filename": "setupext-pip-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6a3b86f9cdc9b9368aa1b2e2f1dd37c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8247, "upload_time": "2014-07-30T22:03:59", "url": "https://files.pythonhosted.org/packages/00/7b/7e41e71e8463c6bee2d31dac130e5d3ecb4d3f60664f4728dd72c3bb01de/setupext-pip-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "6a6682f65aa3cc0bdbb851ac50f9765e", "sha256": "4d60c2eda70ca63a8d77868656f4e426fc41bf7d03e00427c282977c44117865" }, "downloads": -1, "filename": "setupext_pip-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "6a6682f65aa3cc0bdbb851ac50f9765e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6717, "upload_time": "2014-08-02T20:55:09", "url": "https://files.pythonhosted.org/packages/0f/68/7d0dad31738d65d1cecaf240272ef190babb499db616216c0146c9d8aa95/setupext_pip-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba560b4dccd6061548d667a8e07776f1", "sha256": "2ca77f302fa1888a9a0295161f1d9be883367297ab0c2fcd9c281c73aabd3336" }, "downloads": -1, "filename": "setupext_pip-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ba560b4dccd6061548d667a8e07776f1", "packagetype": "bdist_wheel", "python_version": "3.3", "requires_python": null, "size": 6714, "upload_time": "2014-08-02T20:55:11", "url": "https://files.pythonhosted.org/packages/bb/32/fd43765354fc4fda6ade349f9515a1ea200a080e375b0b2fdad481cea9c9/setupext_pip-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47b9608584eef3402efca833d81c88b4", "sha256": "e7c52fba3ef33f974a35ab1f3070d9e1247305224b5fa5be6a3d9d91075a0d7c" }, "downloads": -1, "filename": "setupext-pip-1.0.4.tar.gz", "has_sig": false, "md5_digest": "47b9608584eef3402efca833d81c88b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8733, "upload_time": "2014-08-02T20:55:06", "url": "https://files.pythonhosted.org/packages/1a/bc/ebc0507221f5ee04c39ac639287f2fe7ca486abf3e25e17048064dceeab6/setupext-pip-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "0c9160d1a43efd5ff3446911609f0299", "sha256": "4c20b9f5940eaa50af5749ed418b0ff3838613131ee5330ecaa1e88034187df8" }, "downloads": -1, "filename": "setupext_pip-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c9160d1a43efd5ff3446911609f0299", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6868, "upload_time": "2014-08-15T11:39:27", "url": "https://files.pythonhosted.org/packages/81/06/4c7b096c797beff9d0dda8c01ab267e30ae09b82a0230bfa7a80cf60c110/setupext_pip-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7aac48d74eddee7005333b429be28c07", "sha256": "f12788863f1124406e7742022b445d4030b24577a846a30279d3ea3ab79f7cdc" }, "downloads": -1, "filename": "setupext-pip-1.0.5.tar.gz", "has_sig": false, "md5_digest": "7aac48d74eddee7005333b429be28c07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8817, "upload_time": "2014-08-15T11:39:24", "url": "https://files.pythonhosted.org/packages/ff/d1/43cee063c1c83c2fadb18cd7f0cc48340eefbd78a4da01ace7d071040bc9/setupext-pip-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0c9160d1a43efd5ff3446911609f0299", "sha256": "4c20b9f5940eaa50af5749ed418b0ff3838613131ee5330ecaa1e88034187df8" }, "downloads": -1, "filename": "setupext_pip-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c9160d1a43efd5ff3446911609f0299", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6868, "upload_time": "2014-08-15T11:39:27", "url": "https://files.pythonhosted.org/packages/81/06/4c7b096c797beff9d0dda8c01ab267e30ae09b82a0230bfa7a80cf60c110/setupext_pip-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7aac48d74eddee7005333b429be28c07", "sha256": "f12788863f1124406e7742022b445d4030b24577a846a30279d3ea3ab79f7cdc" }, "downloads": -1, "filename": "setupext-pip-1.0.5.tar.gz", "has_sig": false, "md5_digest": "7aac48d74eddee7005333b429be28c07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8817, "upload_time": "2014-08-15T11:39:24", "url": "https://files.pythonhosted.org/packages/ff/d1/43cee063c1c83c2fadb18cd7f0cc48340eefbd78a4da01ace7d071040bc9/setupext-pip-1.0.5.tar.gz" } ] }