Skip to main content

pipe-subprocess

' Connects input/ouput streams between multiple subprocesses easily just like shell pipe. ' Provides almost the same interface as python subprocess module with some exceptions.

Install

pip3 install pipe-subprocess

Quick how to

Just pass commands to run function.

>>> import pipesubprocess as pipesub
>>> result = pipesub.run(["ls /usr/bin/", "grep py", "head -2"], stdout=pipesub.PIPE)
>>> print(result.stdout)
pbcopy
pydoc

# Commands can be written just as *args.

```python
>>> result = pipesub.run("ls /usr/bin/", "grep py", "head -2")
>>> print(result.stdout)
pbcopy
pydoc

run() quick glance.

Use run() function to run multiple piped subprocesses. In more complecated case, use pipesubporcess.Popen.

def run(*cmdlist, shlex=True, stdin=None, input=None, stdout=None, stderr=None, capture_output=True, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=True, env=None, universal_newlines=None)
  • It runs multiple process specified in cmdlist and connects stdout and stdin in the order of cmdlist.
  • It returns CompletedProcess()
  • input is written to stdin of the first command.
  • When timeout ([second] in float) is specified, it raises pipesubprocess.TimeoutExpired() when commands takes longer than that timeout.
  • If check=True, it raises pipesubprocess.CalledProcessError() when there is a command with exit code not zero. ' See [README_details.md] for other options.

class pipesubprocess.PipeSubprocessError

All exceptions of pipesubprocess module inherits this exception. So all exceptions of thie module can be catched by this exception.

class pipesubprocess.PopenArgs

  • It represents the arguments of one process passed to *subproces.Popen().
  • name
    • name of the argument. The first args by default.
  • See [README_details.md] for other attributes.

class pipesubprocess.CompletedProcess

  • The return value from run(), representing the finish status of processes.
  • popen_args_list
    • List of PopenArgs instance.
  • returncodes
    • List of return codes. None if all commands have not finished yet.
  • stdout
    • stdout of the last command. , stderr
    • gathred stderr of all the commands.
  • check_returncodes()
    • raises pipesubprocess.CalledProcessError() when returncodes have any non-zero status.

class pipesubprocess.TimeoutExpired

  • popen_args
    • List of PopenArgs instance.
  • timeout
    • timeout value specified.
  • stdout
    • stdout of the last command.
  • stderr
    • gathred stderr of all the commands.

Release files for pipe-subprocess 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for pipe-subprocess 0.3.7
File Interpreter ABI Platform
pipe_subprocess-0.3.7-py3-none-any.whl Python 3 none any Details

Release files / pipe_subprocess-0.3.7-py3-none-any.whl

Download URL pipe_subprocess-0.3.7-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a626db1459578b8e31f3c3a46c117e14199a11ce7ac49461efa4ca7aaeaecb0
BLAKE2b-256 checksum
How to use checksums
b077682a0160106f00c5de35bb0758ffb249f92ebbb1d7f2231f3c3be010f4c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.3.7 This release

1 release file

0.3.6

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page