Skip to main content

Python wrapper functions for common shell commands

Project description

pic1 pic2 pic3 pic4

nix_shell_utils

simple shell-like commands for Python

nix_shell_utils is a collection of Python function wrappers around commonly used shell commands. The idea is to move all the small shell scripts heavily using cp, mkdir, rm and shell globbing that tend to be used for automation into one’s Python codebase.

The package is not multiplatform: it will only work in unix-like systems (only tested in Ubuntu & RHEL).

Dependencies

  • Python version required: 3.7+

  • If documentation is to be generated sphinx and sphinx_rtd_theme packages are required:

pip install sphinx sphinx_rtd_theme

Installation

Simply type

pip install nix_shell_utils

Documentation

Documentation can be found @ readthedocs

Examples

  • cp, cd, mkdir: the following python

from unix_shell_utils import *

dest = '$PRJ_HOME/sv/src'
src  = '$PRJ_HOME/gen/sv/out'
mkdir(dest)         # make destination folder
with cd(src):       # change to src directory - returns automatically to current folder
    cp('*.sv',dest) # copy all .sv files in src to dest folder

is equivalent to this shell code:

dest=$PRJ_HOME/sv/src
src=$PRJ_HOME/gen/sv/out
mkdir -p $dest
curdir=$PWD
cd $src
cp *.sv $dest
cd $curdir
  • removing files: the following code

with cd('$PRJ_HOME/logs/'):
    rm('*.log')

is equivalent to the following shell commands:

curdir=$PWD
cd $PRJ_HOME/logs
rm -rf *.log
cd $curdir
  • temporary environment: the code under the tmpenv context manager

with tmpenv('HOME', FOO='BAR'):
    print(os.environ['FOO'] # ==> 'BAR'
    ...

will modify temporarily the os.environ in place so that HOME env variable is deleted, and a new environment variable FOO is added. Upon leaving the with block, os.environ is returned to its prior state.

Development

  1. clone this repository (or download a zip and unzip it somewhere)

git clone https://github.com/alb-garcia/nix_shell_utils.git
  1. inside the cloned folder, make a editable installation

pip install -e .
  1. To run tests (pytest needs to be installed):

cd test; pytest -vvv

Documentation Generation

To generate the documentation (assuming the clone repository lives @ $NIX_SHELL_UTILS_DIR:

cd $NIX_SHELL_UTILS_DIR/docs
make html

the documentation can be then accessed @ $NIX_SHELL_UTILS_DIR/docs/_build/html/index.htm

Project details


Download files

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

Source Distribution

nix_shell_utils-0.0.11.tar.gz (8.4 kB view hashes)

Uploaded Source

Built Distribution

nix_shell_utils-0.0.11-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page