SuperProcessor: the perfect wrapper for subprocess.run
Project description
SuperProcessor
the perfect wrapper for subprocess.run
Goal
Write Shell commands in Python with ease. Simplify Scripting for All.
Description
This module is meant to ease use of subprocess.run
,
minimizing and reducing all possible edge cases that
are prone to come with use of traditional run()
.
Dependencies
None! This module relies on zero external dependencies,
making use of only the builtin module subprocess
.
Installation
Install either over Pypi with
pip3 install superprocessor
or over git-pip
pip3 install git+https://github.com/samocorp/superprocessor.git
Usage
This module is famous for the cmd
function, which has a signature of
cmd(* args: str, ** kwargs) -> Tuple(stdout: str, stderr: Union[str, None])
As you can see, this function implements a Golang-style error handling, of returing both the std output, error, and status code of the command in the shell.
If no error is encountered, the second value of the returned tuple is of NoneType.
Importing and using the function is easy.
from superprocessor import cmd
cmd('mkdir -p ', NEW_DIR_P, \
'&& cd', NEW_DIR_P, \
'&& npm install')
See /examples for more use cases.
Since a tuple is returned, you have to unpack it for every call.
# WRONG
OUT = cmd(...)
# RIGHT
OUT, ERR, STATUS = cmd(...)
Although unrecommended, you might end up un-naming parts of it
out, _, _ = cmd(...)
Configurations
Create wickedly easy configuration overrides for example:
# logging insightful clues to stdout
# default: False
cmd(..., log=True)
# or environment SUPER_LOGS=TRUE
Happy Scripting :-)
Support
Please reach out to us for anything at
Create issues, fork and request merge requests, and don't be a stranger.
License
This project is governed by the MIT License.
Copyright SamoCorp 2021.
All Rights Reserved.
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
Built Distribution
File details
Details for the file superprocessor-0.2.1.tar.gz
.
File metadata
- Download URL: superprocessor-0.2.1.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf9e67ecb6df520ab2ce303e38bb986d9894606884c18326592883d3d30bc6ac |
|
MD5 | 9e0e0e584bb558ea105d69af84ad5957 |
|
BLAKE2b-256 | fc27fe6adbf85fb5bba82315f616a834fb66ebcae4118565dd40cfb074b514f8 |
File details
Details for the file superprocessor-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: superprocessor-0.2.1-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0cd9e5cc5da8cb1a4f400c1778ea583f8d8078e09b076dd06e8c9e6fdae2f86 |
|
MD5 | d1ecee47618e976ddb901847be47bcaa |
|
BLAKE2b-256 | 3fd19087b269d59373466bc53030e103727cad0fc8804fdfa042ce9bd06acb23 |