Skip to main content

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

thesamocorp@gmail.com

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

superprocessor-0.2.1.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

superprocessor-0.2.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

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

Hashes for superprocessor-0.2.1.tar.gz
Algorithm Hash digest
SHA256 bf9e67ecb6df520ab2ce303e38bb986d9894606884c18326592883d3d30bc6ac
MD5 9e0e0e584bb558ea105d69af84ad5957
BLAKE2b-256 fc27fe6adbf85fb5bba82315f616a834fb66ebcae4118565dd40cfb074b514f8

See more details on using hashes here.

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

Hashes for superprocessor-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b0cd9e5cc5da8cb1a4f400c1778ea583f8d8078e09b076dd06e8c9e6fdae2f86
MD5 d1ecee47618e976ddb901847be47bcaa
BLAKE2b-256 3fd19087b269d59373466bc53030e103727cad0fc8804fdfa042ce9bd06acb23

See more details on using hashes here.

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