{ "info": { "author": "Adam Kaufman", "author_email": "kaufman.blue@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Testing", "Topic :: System :: Shells", "Topic :: Terminals", "Topic :: Terminals :: Terminal Emulators/X Terminals", "Topic :: Utilities" ], "description": "fencepy\n=======\n\n|Development Status| |Latest Version| |Download Stats| |Python Versions| |Wheel Status|\n\nStandardized fencing off of python virtual environments on a per-project\nbasis. The idea is to take a directory as an input and create and manage\na python virtual environment in a known location.\n\n**Master on Linux**\n\n|Travis Status| |Coveralls Status|\n\n**Master on Windows**\n\n|Appveyor Status|\nThis has proven to be an unstable build environment. Keeping it here for\nease of checking up on the status manually.\n\nHow does it work?\n-----------------\n\n`fencepy` is fairly simple. After parsing arguments, it calls out to the\ncorrect copy of `virtualenv` (based on the location of the running python\ninterpreter) with a pre-generated base directory. Upon successful creation\nof the virtual environment, it applies various modifications based on the\ncontents of the directory from which it was run.\n\nOpinionated hooks\n-----------------\n\nThe goal is to make this framework attractive to users of other\ncompatible products. For instance, as a user of git and sublime text, I\nadded functionality related to those.\n\ngit\n~~~\n\nIf the directory provided as input (defaults to cwd) is part of a git\nrepository, the virtual environment created will be relative to the root\nof that repository.\n\nsublime text\n~~~~~~~~~~~~\n\nThe sublime linter plugin is very easy to configure. Pointing it to a\nparticular installation of python is as simple as putting some json into\na configuration file. If there is a ``.sublime-project`` file in the\ninput directory, then it will be configured to respect the virtual\nenvironment that is being created.\n\nrequirements.txt\n~~~~~~~~~~~~~~~~\n\nAs a helpful shortcut, if there is a ``requirements.txt`` file in the\ninput directory, then those requirements will be installed upon\nvirtualenv creation.\n\noh-my-zsh\n~~~~~~~~~\n\nIf you use ``oh-my-zsh``, when you set up your first fencepy environment, it will\nconfigure some shortcuts for you::\n\n fpadd -> fencepy create\n fpnew -> fencepy create\n fpsrc -> . `fencepy activate`\n fpup -> fencepy update\n fpdel -> fencepy erase\n\nUsage\n-----\n\n``fencepy create``: Create a new virtual environment\n\n``. `fencepy activate```: Activate the virtual environment in a bash-like shell\n\n``source (fencepy activate)``: Activate the virtual environment in fish shell\n\n``. $(fencepy activate)``: Activate the virtual environment in windows powershell\n\n``fencepy update``: Re-run all plugins on an existing fencepy\n\n``fencepy erase``: Remove the virtual environment\n\n``fencepy nuke``: Remove all of fencepy's virtual environments (for the obsessive cleaners out there)\n\n``fencepy genconfig``: Create a config file with defaults in fencepy's root directory\n\n``fencepy help``: Get help on these and other optional arguments\n\nAdditional notes\n----------------\n\nPython versions\n~~~~~~~~~~~~~~~\n\nBoth python 2 and 3 are supported. Additionally, both can be used for\none project, as they will be stored in separate directories.\n\nCross-platform support\n~~~~~~~~~~~~~~~~~~~~~~\n\nBoth Windows and UNIX shells are supported! I have not yet figured out how\nto activate in one command from within CMD.exe. If anyone knows the solution,\nplease let me know!\n\nExtending fencepy\n~~~~~~~~~~~~~~~~~\n\nAdditional functionality should be very easy to implement. Each of the hooks\nmentioned above is implemented as a \"plugin\" that takes the full dict of parsed\narguments as input. Additionally, inverse cleanup methods are planned for the\nfuture.\n\nAlternatives\n~~~~~~~~~~~~\n\n* virtualenvwrapper_\n\n.. _virtualenvwrapper: http://virtualenvwrapper.readthedocs.org/en/latest/\n\n.. |Travis Status| image:: https://img.shields.io/travis/ajk8/fencepy/master.svg\n :target: https://travis-ci.org/ajk8/fencepy\n :alt: Travis-ci build status\n.. |Coveralls Status| image:: https://img.shields.io/coveralls/ajk8/fencepy/master.svg\n :target: https://coveralls.io/r/ajk8/fencepy?branch=master\n :alt: Coveralls coverage (from travis)\n.. |Appveyor Status| image:: https://img.shields.io/appveyor/ci/ajk8/fencepy/master.svg\n :target: https://ci.appveyor.com/project/ajk8/fencepy\n :alt: Appveyor build status\n.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/fencepy.svg\n :target: https://pypi.python.org/pypi/fencepy/\n :alt: Supported Python versions\n.. |Latest Version| image:: https://img.shields.io/pypi/v/fencepy.svg\n :target: https://pypi.python.org/pypi/fencepy/\n :alt: Latest Version\n.. |Download Stats| image:: https://img.shields.io/pypi/dm/fencepy.svg\n :target: https://pypi.python.org/pypi/fencepy/\n :alt: Downloads/month\n.. |Wheel Status| image:: https://img.shields.io/pypi/wheel/fencepy.svg\n :target: https://pypi.python.org/pypi/fencepy/\n :alt: Wheel Status\n.. |License| image:: https://img.shields.io/pypi/l/fencepy.svg\n :target: https://pypi.python.org/pypi/fencepy/\n :alt: License\n.. |Development Status| image:: https://img.shields.io/pypi/status/fencepy.svg\n :target: https://pypi.python.org/pypi/fencepy/\n :alt: Development Status\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/ajk8/fencepy/tarball/0.7.2", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ajk8/fencepy", "keywords": "fencepy virtualenv virtual environment development project", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "fencepy", "package_url": "https://pypi.org/project/fencepy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fencepy/", "project_urls": { "Download": "https://github.com/ajk8/fencepy/tarball/0.7.2", "Homepage": "https://github.com/ajk8/fencepy" }, "release_url": "https://pypi.org/project/fencepy/0.7.2/", "requires_dist": [ "docopt (>=0.6.2)", "funcy (>=1.5)", "psutil (>=2.2.1)", "six (>=1.10.0)", "virtualenv (>=12.0.7)" ], "requires_python": "", "summary": "Standardized fencing off of python virtual environments on a per-project basis", "version": "0.7.2" }, "last_serial": 2004751, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b7720a2cc581792b19c95f09ba945d72", "sha256": "c4e4038291367b91a8554379a14302f720b925b7f262668f052cff174521a5f4" }, "downloads": -1, "filename": "fencepy-0.1.tar.gz", "has_sig": false, "md5_digest": "b7720a2cc581792b19c95f09ba945d72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3745, "upload_time": "2014-12-23T19:15:04", "url": "https://files.pythonhosted.org/packages/5c/88/685f112921144ff57543cea6c0bb17c94996ccc1d369cf5bf85d8f0e353a/fencepy-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "63878396368e0ffe24868c7fc5e8fb7c", "sha256": "cda50a5fa5add570b91cb7b350a7a3a7e92c4b9921aeaaace585b9e2cf690d72" }, "downloads": -1, "filename": "fencepy-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63878396368e0ffe24868c7fc5e8fb7c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5467, "upload_time": "2014-12-31T15:55:12", "url": "https://files.pythonhosted.org/packages/3d/49/905f1cbd9bd6941d644993ebbaa62a248dc788a4a25d71634717959da79b/fencepy-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f336e0d1c6daf2a6e0fc4f54022e881", "sha256": "f843adbc4f571e1166fbff5825bcbac59f5c7f9ad8d10af2d917e43a7a741c7c" }, "downloads": -1, "filename": "fencepy-0.2.tar.gz", "has_sig": false, "md5_digest": "2f336e0d1c6daf2a6e0fc4f54022e881", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4990, "upload_time": "2014-12-31T15:55:15", "url": "https://files.pythonhosted.org/packages/75/ae/e6b8f5bb41b2c0e561743aa53f751feea0d1d7e55bf02fba90cbed3a2d8b/fencepy-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "37be4febdb6007fcba39a7b5312d793f", "sha256": "9f09028dbfdc91308c3bd533c9d590496ed2a6d0ee4802ae6866ef9b8ce81512" }, "downloads": -1, "filename": "fencepy-0.3.tar.gz", "has_sig": false, "md5_digest": "37be4febdb6007fcba39a7b5312d793f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5658, "upload_time": "2015-01-07T16:21:27", "url": "https://files.pythonhosted.org/packages/07/8f/eaa6c81422209bfda8943c6e14a5630458f74099913795c60b5562a910c0/fencepy-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "c32a64cf48f33fd2b248698d1c7cb909", "sha256": "a63088e5ceac4ea2e616d936b6e1f26460b93d363e2a4ef00b2275afd0d78c77" }, "downloads": -1, "filename": "fencepy-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c32a64cf48f33fd2b248698d1c7cb909", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7914, "upload_time": "2015-01-12T16:44:58", "url": "https://files.pythonhosted.org/packages/a7/f9/c12e0b5a9c61eb61444bd6591c6eb61d610632852a85e270d93fc5af8a99/fencepy-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fdf553d4aef04c99e8dc486d5c5f844", "sha256": "1927ff50542e2cc9c11ba6a8053a78225283db514f04c5abe85ad2471f0ee952" }, "downloads": -1, "filename": "fencepy-0.4.tar.gz", "has_sig": false, "md5_digest": "6fdf553d4aef04c99e8dc486d5c5f844", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6852, "upload_time": "2015-01-12T16:45:00", "url": "https://files.pythonhosted.org/packages/74/18/356bd02c324c3fe34d3620d40ea186fec783c212b808af69ff486823ba91/fencepy-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "7f9257f5e6157690be723922840d6fa9", "sha256": "89dbd76d958f8b8612f09616f3f9dd1217d085a3d3d831e8114ca9980ddf7736" }, "downloads": -1, "filename": "fencepy-0.4.1.tar.gz", "has_sig": false, "md5_digest": "7f9257f5e6157690be723922840d6fa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6955, "upload_time": "2015-01-12T18:47:56", "url": "https://files.pythonhosted.org/packages/90/8b/c04bdbd85b72518f29f14bb27ac8d31c8ea806a60d9c09bb0bd1d74abc70/fencepy-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "c6d3493bace870e53d7d443ba812ac2b", "sha256": "12c8145b1ef34cb871ae11b05b2f25652b1fa88c5f06fd1849c357d66ad96825" }, "downloads": -1, "filename": "fencepy-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c6d3493bace870e53d7d443ba812ac2b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8886, "upload_time": "2015-01-21T01:14:58", "url": "https://files.pythonhosted.org/packages/0a/7c/c9464ac555bce138bbf1457b9fcbaa308f9fa98357f611a4197b0fe99859/fencepy-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "310a6c0608ea64e50b5116f63ef384e2", "sha256": "113a0cfb0d1dc139b8cece72d07d22218e31fbaebbfea0db629fe430676f2f07" }, "downloads": -1, "filename": "fencepy-0.4.2.tar.gz", "has_sig": false, "md5_digest": "310a6c0608ea64e50b5116f63ef384e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7866, "upload_time": "2015-01-21T01:15:00", "url": "https://files.pythonhosted.org/packages/ef/4d/7420451ae562ce6fd974a9901456ed0873284726115d0f2312aefe206d93/fencepy-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "86c9c83cff8424e066e1b39af70c0124", "sha256": "06336a1db15c1b255864c4a8b0bd787e667b97bfd7bd41fb504e02ab693b3846" }, "downloads": -1, "filename": "fencepy-0.4.3-py2-none-any.whl", "has_sig": false, "md5_digest": "86c9c83cff8424e066e1b39af70c0124", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8883, "upload_time": "2015-01-21T01:23:39", "url": "https://files.pythonhosted.org/packages/25/dd/bea3e2a1442c17cf8f3fea9bd2c9dfd8c6673f5d879d318dc589baf11706/fencepy-0.4.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "040e797b441007e60d3b7fb6ccabb031", "sha256": "66ada31ec896b9d6e8393757d4eb08ffcefc7b5a4df77133be7f86b12b21d856" }, "downloads": -1, "filename": "fencepy-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "040e797b441007e60d3b7fb6ccabb031", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8880, "upload_time": "2015-01-21T01:23:41", "url": "https://files.pythonhosted.org/packages/b3/73/8ba13402c196292dd8b2ce7b1f52c557d5c7fd1d0b6872dc6f01a50f45ca/fencepy-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bc2a12d6b7063655181497b9a0507f6", "sha256": "580c4f763388e325bb5ee555e82287dbc4615384c09e9d6e108d364b293aa538" }, "downloads": -1, "filename": "fencepy-0.4.3.tar.gz", "has_sig": false, "md5_digest": "5bc2a12d6b7063655181497b9a0507f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7838, "upload_time": "2015-01-21T01:23:43", "url": "https://files.pythonhosted.org/packages/f9/d3/a1f3d716d38a1d96851018cac8fe75f94622173868e461c26dd661aa3d2e/fencepy-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "82adce1333df4b19778dabac10b0a7f8", "sha256": "0a61bc86cb4d083a088c4cf30c687340f8dfc64715a5e06996b0ffb3d8ec383c" }, "downloads": -1, "filename": "fencepy-0.5.0.tar.gz", "has_sig": false, "md5_digest": "82adce1333df4b19778dabac10b0a7f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7782, "upload_time": "2015-03-02T17:30:23", "url": "https://files.pythonhosted.org/packages/1a/d2/dca6664d7a6aaaf9e6e1dea5f8acce134fcea2f576b637f60a644c1165b7/fencepy-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "0507eab7c540f1ed6126d9eb9d39f602", "sha256": "95c2a250d2811af11ff6e8389f14819a9d5af12a680ae5762a2fad9463baab60" }, "downloads": -1, "filename": "fencepy-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0507eab7c540f1ed6126d9eb9d39f602", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8016, "upload_time": "2015-05-27T13:26:19", "url": "https://files.pythonhosted.org/packages/25/d3/74746068bdc16099b94b5e842001293ac10591704a2a133f14b9e573beb8/fencepy-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "25c0eac03110c49265d1a8b9c255d4e7", "sha256": "820c758ea2c8480f9dfd0efa0bb618f1bb7d28c37f1fcd51acb878a714f50a95" }, "downloads": -1, "filename": "fencepy-0.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "25c0eac03110c49265d1a8b9c255d4e7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 27374, "upload_time": "2016-01-10T17:21:07", "url": "https://files.pythonhosted.org/packages/25/cd/948cfdd3ec77bc60b9738ea2463b27f9f7b2902ee4d1b6cbc81b087f338e/fencepy-0.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dff35607da2087a1934c746751792930", "sha256": "51487db012b44b399e191cbf2fe0cf13e9767bb62e0570c4c908ec02f12cb2ea" }, "downloads": -1, "filename": "fencepy-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dff35607da2087a1934c746751792930", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10804, "upload_time": "2016-01-10T17:21:13", "url": "https://files.pythonhosted.org/packages/b4/bd/05cbd851f7148cb38f316de676f7e9f619ce8ed90d1d2bc49f7129fc8c0f/fencepy-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bee891b0b99036db8f0e97165f859efa", "sha256": "fba0a56f256929162c5f8e3723cda4c54e1f0e1100e81487438baf01905c98ce" }, "downloads": -1, "filename": "fencepy-0.7.0.tar.gz", "has_sig": false, "md5_digest": "bee891b0b99036db8f0e97165f859efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9726, "upload_time": "2016-01-10T17:21:18", "url": "https://files.pythonhosted.org/packages/9f/b5/a09179797e340950c146190132b941f8deea0c55c08d1f1fe93339deeea1/fencepy-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "18becb1e3bd023d1d92a12a779d3ece3", "sha256": "4e2b4835915710d720900821513a1a71c3767448050a051db003ea914b942cde" }, "downloads": -1, "filename": "fencepy-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18becb1e3bd023d1d92a12a779d3ece3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11340, "upload_time": "2016-02-29T03:06:33", "url": "https://files.pythonhosted.org/packages/e7/dd/556c9270e06ca39121948a5c3084ab60a26b21c58e74937d2dc1536e091b/fencepy-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1108bbff8b7963e4a9fc7f1a3611e74", "sha256": "1cfdee1983a96df763cb1ac50aa8e58bda21c0b5bf183dde9b066cf6b502ef87" }, "downloads": -1, "filename": "fencepy-0.7.1.tar.gz", "has_sig": false, "md5_digest": "e1108bbff8b7963e4a9fc7f1a3611e74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10011, "upload_time": "2016-02-29T03:06:46", "url": "https://files.pythonhosted.org/packages/a7/a6/c4c6e1dee516bc4a8f9aae75c23271c8589dec3424127b3b258af720f367/fencepy-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "87e0d3dd16304453f1a9edd964428646", "sha256": "4f77bf24185772b9512664a8bd07d8c449614cb0d268142656ab464329315bfc" }, "downloads": -1, "filename": "fencepy-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87e0d3dd16304453f1a9edd964428646", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11341, "upload_time": "2016-03-13T20:07:00", "url": "https://files.pythonhosted.org/packages/c5/74/cd142f567004bb077f3d778f275bdf56e7076cb5487e2516b4864fe3eb82/fencepy-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16c95d0b67d414c57b6e332b43609c36", "sha256": "598c019ff0c61e3534dfd55a5f980076d33752f5dee2387f37fa7636858222fd" }, "downloads": -1, "filename": "fencepy-0.7.2.tar.gz", "has_sig": false, "md5_digest": "16c95d0b67d414c57b6e332b43609c36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10023, "upload_time": "2016-03-13T20:07:07", "url": "https://files.pythonhosted.org/packages/72/aa/79415001ca8b16b98142719c382970dacacd385034c59a37e51a3d72c7ee/fencepy-0.7.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87e0d3dd16304453f1a9edd964428646", "sha256": "4f77bf24185772b9512664a8bd07d8c449614cb0d268142656ab464329315bfc" }, "downloads": -1, "filename": "fencepy-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87e0d3dd16304453f1a9edd964428646", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11341, "upload_time": "2016-03-13T20:07:00", "url": "https://files.pythonhosted.org/packages/c5/74/cd142f567004bb077f3d778f275bdf56e7076cb5487e2516b4864fe3eb82/fencepy-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16c95d0b67d414c57b6e332b43609c36", "sha256": "598c019ff0c61e3534dfd55a5f980076d33752f5dee2387f37fa7636858222fd" }, "downloads": -1, "filename": "fencepy-0.7.2.tar.gz", "has_sig": false, "md5_digest": "16c95d0b67d414c57b6e332b43609c36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10023, "upload_time": "2016-03-13T20:07:07", "url": "https://files.pythonhosted.org/packages/72/aa/79415001ca8b16b98142719c382970dacacd385034c59a37e51a3d72c7ee/fencepy-0.7.2.tar.gz" } ] }