2014-06-02 | python
A small python library which seems to work rather well when it comes to shelling out is sh. It provides a handy and lightweight abstraction above the means already available within python.
The features I found most useful:
Take the small script on this page for example. At the top of the script
sh.py is being imported with import sh
. Then further down, the following
lines test for command availability and make the commands available as python
objects.
git = sh.git
ls = sh.ls
docker = sh.docker
test = sh.test
In case the command in question does not exist, the library will throw an exception. This enables us to check the environment and bail out with a minimal amount of code.
Further down I can simply use this line
digest = git('ls-remote', repo, 'refs/heads/master').split()[0]
to read out remote git repository information and work on the command's output right away with a small amount of code. Of course I could use the subprocess module too to achieve similar functionality but using sh tends to result in cleaner implementations and adds more flexibility.
It surely is worth a shot.