This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Standardized fencing off of python virtual environments on a per-project basis. The idea is to take a directory as an input and create and manage a python virtual environment in a known location.

Master on Linux

Master on Windows

This has proven to be an unstable build environment. Keeping it here for ease of checking up on the status manually.

How does it work?

fencepy is fairly simple. After parsing arguments, it calls out to the correct copy of virtualenv (based on the location of the running python interpreter) with a pre-generated base directory. Upon successful creation of the virtual environment, it applies various modifications based on the contents of the directory from which it was run.

Opinionated hooks

The goal is to make this framework attractive to users of other compatible products. For instance, as a user of git and sublime text, I added functionality related to those.

git

If the directory provided as input (defaults to cwd) is part of a git repository, the virtual environment created will be relative to the root of that repository.

sublime text

The sublime linter plugin is very easy to configure. Pointing it to a particular installation of python is as simple as putting some json into a configuration file. If there is a .sublime-project file in the input directory, then it will be configured to respect the virtual environment that is being created.

requirements.txt

As a helpful shortcut, if there is a requirements.txt file in the input directory, then those requirements will be installed upon virtualenv creation.

oh-my-zsh

If you use oh-my-zsh, when you set up your first fencepy environment, it will configure some shortcuts for you:

fpadd -> fencepy create
fpnew -> fencepy create
fpsrc -> . `fencepy activate`
fpup  -> fencepy update
fpdel -> fencepy erase

Usage

fencepy create: Create a new virtual environment

. `fencepy activate`: Activate the virtual environment in a bash-like shell

source (fencepy activate): Activate the virtual environment in fish shell

. $(fencepy activate): Activate the virtual environment in windows powershell

fencepy update: Re-run all plugins on an existing fencepy

fencepy erase: Remove the virtual environment

fencepy nuke: Remove all of fencepy’s virtual environments (for the obsessive cleaners out there)

fencepy genconfig: Create a config file with defaults in fencepy’s root directory

fencepy help: Get help on these and other optional arguments

Additional notes

Python versions

Both python 2 and 3 are supported. Additionally, both can be used for one project, as they will be stored in separate directories.

Cross-platform support

Both Windows and UNIX shells are supported! I have not yet figured out how to activate in one command from within CMD.exe. If anyone knows the solution, please let me know!

Extending fencepy

Additional functionality should be very easy to implement. Each of the hooks mentioned above is implemented as a “plugin” that takes the full dict of parsed arguments as input. Additionally, inverse cleanup methods are planned for the future.

Alternatives

Release History

Release History

0.7.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
fencepy-0.7.2-py2.py3-none-any.whl (11.3 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Mar 13, 2016
fencepy-0.7.2.tar.gz (10.0 kB) Copy SHA256 Checksum SHA256 Source Mar 13, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting