Python wrapper functions for common shell commands
Project description
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
clone this repository (or download a zip and unzip it somewhere)
git clone https://github.com/alb-garcia/nix_shell_utils.git
inside the cloned folder, make a editable installation
pip install -e .
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nix_shell_utils-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d165b582d2e0923b547974e38b35cdf4548e8080b60561abe7632748abe7d5c2 |
|
MD5 | 0f9deb844d7f336b8db4689d914d4efe |
|
BLAKE2b-256 | c359603ee23dbaaf6e589092f5d0f0f95821414b4a2e9d742d1d5bad4a76ea57 |