subprocrunner 2.0.1
pip install subprocrunner
Latest version
Released:
A Python wrapper library for subprocess module.
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: MIT License (MIT License)
- Author: Tsuyoshi Hombashi
- Tags library, subprocess
- Requires: Python >=3.7
Classifiers
- Development Status
- Intended Audience
- License
- Operating System
- Programming Language
- Topic
- Typing
Project description
Summary
A Python wrapper library for subprocess module.
Usage
Execute a command
- Sample Code:
from subprocrunner import SubprocessRunner runner = SubprocessRunner(["echo", "test"]) print(runner) print(f"return code: {runner.run()}") print(f"stdout: {runner.stdout}") runner = SubprocessRunner(["ls", "__not_exist_dir__"]) print(runner) print(f"return code: {runner.run()}") print(f"stderr: {runner.stderr}")
- Output:
SubprocessRunner(command='echo test', returncode='not yet executed') return code: 0 stdout: test SubprocessRunner(command='ls __not_exist_dir__', returncode='not yet executed') return code: 2 stderr: ls: cannot access '__not_exist_dir__': No such file or directory
Execute a command with retries
- Sample Code:
from subprocrunner import Retry, SubprocessRunner SubprocessRunner(command).run(retry=Retry(total=3, backoff_factor=0.2, jitter=0.2))
Raise an exception when a command execution failed
- Sample Code:
import sys from subprocrunner import SubprocessRunner from subprocrunner.error import CalledProcessError runner = SubprocessRunner("ls not-exist-dir") # raise an exception at run try: runner.run(check=True) except CalledProcessError as e: print(f"run(check=True): {e}\n{e.stderr}", file=sys.stderr) # raise an exception after run runner.run() try: runner.raise_for_returncode() except CalledProcessError as e: print(f"raise_for_returncode(): {e}\n{e.stderr}", file=sys.stderr)
- Output:
run(check=True): Command 'ls not-exist-dir' returned non-zero exit status 2. ls: cannot access 'not-exist-dir': No such file or directory raise_for_returncode(): Command 'ls not-exist-dir' returned non-zero exit status 2. ls: cannot access 'not-exist-dir': No such file or directory
dry run
Commands are not actually run when passing dry_run=True to SubprocessRunner class constructor.
- Sample Code:
from subprocrunner import SubprocessRunner runner = SubprocessRunner("echo test", dry_run=True) print(runner) print(f"return code: {runner.run()}") print(f"stdout: {runner.stdout}")
- Output:
SubprocessRunner(command='echo test', returncode='not yet executed', dryrun=True) return code: 0 stdout:
Get execution command history
- Sample Code:
from subprocrunner import SubprocessRunner SubprocessRunner.clear_history() SubprocessRunner.is_save_history = True SubprocessRunner(["echo", "hoge"]).run() SubprocessRunner(["echo", "foo"]).run() print("\n".join(SubprocessRunner.get_history()))
- Output:
echo hoge echo foo
Get a command information
>>> from subprocrunner import Which
>>> which = Which("ls")
>>> which.is_exist()
True
>>> which.abspath()
'/usr/bin/ls'
>>> which
command=ls, is_exist=True, abspath=/usr/bin/ls
Installation
Install from PyPI
pip install subprocrunner
Install from PPA (for Ubuntu)
sudo add-apt-repository ppa:thombashi/ppa sudo apt update sudo apt install python3-subprocrunner
Dependencies
Optional dependencies
- loguru
Used for logging if the package installed
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: MIT License (MIT License)
- Author: Tsuyoshi Hombashi
- Tags library, subprocess
- Requires: Python >=3.7
Classifiers
- Development Status
- Intended Audience
- License
- Operating System
- Programming Language
- Topic
- Typing
Release history Release notifications | RSS feed
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 subprocrunner-2.0.1.tar.gz
.
File metadata
- Download URL: subprocrunner-2.0.1.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3723226a1bf6b51569fd8f82aa4f0588eef7adf129d16aac8b317555624e8f69 |
|
MD5 | 092b8e0724d3d1f974a0922fed3d4195 |
|
BLAKE2b-256 | 57a6e3a704af7236df05f423fe8c6bc169b752ab0a2a9e266c27d608d3366152 |
File details
Details for the file subprocrunner-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: subprocrunner-2.0.1-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 778e1bcec011b3214d247bf65c42b26f3d3f0a25d12188def6b9574c6671e166 |
|
MD5 | 64f8c0864b04a7869e24e91c20703b93 |
|
BLAKE2b-256 | 26f2d8361d6b9ac84656122e01c2c0c677e2b64f94d799149020a4b1869b337e |