Skip to main content

utilities for filesystem exploration and automated builds

Project description

Pox provides a collection of utilities for navigating and manipulating filesystems. This module is designed to facilitate some of the low level operating system interactions that are useful when exploring a filesystem on a remote host, where queries such as “what is the root of the filesystem?”, “what is the user’s name?”, and “what login shell is preferred?” become essential in allowing a remote user to function as if they were logged in locally. While pox is in the same vein of both the os and shutil builtin modules, the majority of its functionality is unique and compliments these two modules.

Pox provides python equivalents of several unix shell commands such as “which” and “find”. These commands allow automated discovery of what has been installed on an operating system, and where the essential tools are located. This capability is useful not only for exploring remote hosts, but also locally as a helper utility for automated build and installation.

Several high-level operations on files and filesystems are also provided. Examples of which are: finding the location of an installed python package, determining if and where the source code resides on the filesystem, and determining what version the installed package is.

Pox also provides utilities to enable the abstraction of commands sent to a remote filesystem. In conjunction with a registry of environment variables and installed utilites, pox enables the user to interact with a remote filesystem as if they were logged in locally.

Pox is part of pathos, a python framework for heterogeneous computing. Pox is in the early development stages, and any user feedback is highly appreciated. Contact Mike McKerns [mmckerns at caltech dot edu] with comments, suggestions, and any bugs you may find. A list of known issues is maintained at

Major Features

Pox provides utilities for discovering the user’s environment:

- return the user's name, current shell, and path to user's home directory
- strip duplicate entries from the user's $PATH
- lookup and expand environment variables from ${VAR} to 'value'

Pox also provides utilities for filesystem exploration and manipulation:

- discover the path to a file, exectuable, directory, or symbolic link
- discover the path to an installed package
- parse operating system commands for remote shell invocation
- convert text files to platform-specific formatting

Current Release

The latest stable release version is pox-0.2. You can download it here. The latest stable version of pox is always available at:

Development Release

If you like living on the edge, and don’t mind the promise of a little instability, you can get the latest development release with all the shiny new features at:

or even better, fork us on our github mirror of the svn trunk:


Pox is packaged to install from source, so you must download the tarball, unzip, and run the installer:

$ tar -xvzf pox-0.2.tgz
$ cd pox-0.2
$ python setup py build
$ python setup py install

You will be warned of any missing dependencies and/or settings after you run the “build” step above.

Alternately, pox can be installed with easy_install:

$ easy_install -f . pox


Pox requires:

- python, version >= 2.5, version < 3.0

Optional requirements:

- setuptools, version >= 0.6

Usage Notes

Probably the best way to get started is to look at the tests that are provided within pox. See pox.tests for a set of scripts that demonstrate pox’s ability to interact with the operating system. Pox utilities can also be run directly from an operating system terminal, using the script.

Important utilities and functions are found here:

- pox.pox.shutils             [low-level shell utilities]
- pox.pox.utils               [high-level shell utilities]


Pox is distributed under a 3-clause BSD license.

>>> import pox
>>> print pox.license()


If you use pox to do research that leads to publication, we ask that you acknowledge use of pox by citing the following in your publication:

M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,
"Building a framework for predictive science", Proceedings of
the 10th Python in Science Conference, 2011;

Michael McKerns and Michael Aivazis,
"pathos: a framework for heterogeneous computing", 2010- ;

More Information

Please see or for further information.

Project details

Release history Release notifications

History Node


History Node


History Node


This version
History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pox-0.2.tgz (22.1 kB) Copy SHA256 hash SHA256 Source None May 19, 2014 (38.4 kB) Copy SHA256 hash SHA256 Source None May 19, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page