Skip to content

AndydeCleyre/plumbum

 
 

Repository files navigation

Documentation Status

Linux and Mac Build Status

Windows Build Status

Coverage Status

PyPI Status

PyPI Versions

Anaconda-Server Badge

PyPI License

Join the chat at https://gitter.im/plumbumpy/Lobby

Plumbum: Shell Combinators

Ever wished the compactness of shell scripts be put into a real programming language? Say hello to Plumbum Shell Combinators. Plumbum (Latin for lead, which was used to create pipes back in the day) is a small yet feature-rich library for shell script-like programs in Python. The motto of the library is "Never write shell scripts again", and thus it attempts to mimic the shell syntax ("shell combinators") where it makes sense, while keeping it all Pythonic and cross-platform.

Apart from shell-like syntax and handy shortcuts, the library provides local and remote command execution (over SSH), local and remote file-system paths, easy working-directory and environment manipulation, and a programmatic Command-Line Interface (CLI) application toolkit. Now let's see some code!

This is only a teaser; the full documentation can be found at Read the Docs

Cheat Sheet

Basics

Instead of writing xxx = local["xxx"] for every program you wish to use, you can also import commands

Piping

Redirection

Working-directory manipulation

Foreground and background execution

Command nesting

Remote commands (over SSH)

Supports openSSH-compatible clients, PuTTY (on Windows) and Paramiko (a pure-Python implementation of SSH2)

CLI applications

Sample output

$ python simple_cli.py -v -I foo/bar -Ispam/eggs x.cpp y.cpp z.cpp
Verbose: True
Include dirs: ['foo/bar', 'spam/eggs']
Compiling: ('x.cpp', 'y.cpp', 'z.cpp')

Colors and Styles

Packages

No packages published

Languages

  • Python 99.8%
  • Other 0.2%