Metadata-Version: 2.1
Name: superprocessor
Version: 0.1.1
Summary: SuperProcessor: the perfect wrapper for subprocess.run
Home-page: https://github.com/samocorp/superprocessor
Author: samo
Author-email: thesamogroup@gmail.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/samocorp/superprocessor/issues
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# 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 and error 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](https://github.com/samocorp/superprocessor/tree/master/examples) for more use cases.


Since a tuple is returned, you have to unpack it for every call.

    # WRONG
    OUT = cmd(...)


    # RIGHT
    OUT, ERR = cmd(...)

Although unrecommended, you might end up un-naming 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.


