Skip to main content

Python wrapper functions for common shell commands

Project description

pic1 pic2 pic4 Documentation Status pic6

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.12.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nix_shell_utils-0.0.12-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file nix_shell_utils-0.0.12.tar.gz.

File metadata

  • Download URL: nix_shell_utils-0.0.12.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for nix_shell_utils-0.0.12.tar.gz
Algorithm Hash digest
SHA256 36c787f3e0890145f018a1e33315b68fb080949f3fa04dcec6f8982ca6951c41
MD5 d59fd9ef0d6eb75bfb3d1ca6de4cfcc8
BLAKE2b-256 7d4ce9b6179980ba2425caf1e32b84962e0b5432c45094bd3c85ee00435e06a5

See more details on using hashes here.

File details

Details for the file nix_shell_utils-0.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for nix_shell_utils-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 629d723e1229d7fd803e7c7bd918e53e396eb1c23811bf8bcd88975a1829c07e
MD5 810d28a28d202c528e219cbc03b365de
BLAKE2b-256 216d2b7fe0da7d78ae0017646ac7dbb7d08674d231e93b75f59a0f3919432313

See more details on using hashes here.

Supported by

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