Run and handle the output of multiple executables in pyallel (as in parallel)
Project description
Pyallel
Run and handle the output of multiple executables in pyallel
(as in parallel)
https://github.com/Danthewaann/pyallel/assets/22531177/8685eb92-aac5-440a-9170-30fd1460c53f
Tested on Linux and MacOS only
Installation
Pre-built executables are available on the Releases page.
pyallel
can also be installed using pip (requires Python >=3.8):
pip install pyallel
Quick start
Once installed, you can run pyallel
to see usage information, like so:
usage: pyallel [-h] [-t] [-n] [-V] [-v] [--colour {yes,no,auto}] [commands ...]
Run and handle the output of multiple executables in pyallel (as in parallel)
positional arguments:
commands list of quoted commands to run e.g "mypy ." "black ."
can provide environment variables to each command like so:
"MYPY_FORCE_COLOR=1 mypy ."
options:
-h, --help show this help message and exit
-t, --no-timer don't time how long each command is taking
-n, --non-interactive
run in non-interactive mode
-V, --verbose run in verbose mode
-v, --version print version and exit
--colour {yes,no,auto}
colour terminal output, defaults to "auto"
Currently you can provide a variable number of commands
to run to pyallel
, like so:
[!IMPORTANT] If you need to provide arguments to a command, you must surround the command and it's arguments in quotes!
pyallel "MYPY_FORCE_COLOR=1 mypy ." \
"black --check --diff ." \
"pytest ."
Build
You can also build an executable with the following (executables will be written to ./dist
):
[!NOTE] The
arch=x86_64
values in the following code blocks can be replaced witharch=aarch64
and any other architecture that is supported by docker to build an executable for that given architecture
Build for generic linux
docker build --tag pyallel --build-arg 'arch=x86_64' . && docker run -e 'arch=x86_64' --rm --volume "$(pwd):/src" pyallel
Build for alpine linux
docker build --tag pyallel-alpine --build-arg 'arch=x86_64' --file Dockerfile.alpine . && docker run -e 'arch=x86_64' --rm --volume "$(pwd):/src" pyallel-alpine
Build locally
python -m venv .venv && source .venv/bin/activate && pip install . -r requirements_build.txt && ./build.sh
TODOs
- Maybe add support for allowing commands to contain shell idiom's (such as piping
e.g.
echo hi | tee test.log
) - Add custom parsing of command output to support filtering for errors (like vim's
errorformat
) - Allow list of files to be provided to supply as input arguments to each command
- Allow input to be piped into
pyallel
via stdin to supply as standard input to each command
Project details
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 pyallel-1.0.1.tar.gz
.
File metadata
- Download URL: pyallel-1.0.1.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e44075415b884c1962c03051135dcf0dc01c58a09f5aee90d45e4283fadabb26 |
|
MD5 | a902b35a55779ec5f2df9706fbf7702b |
|
BLAKE2b-256 | 0390193651c9305e6433e1bc0b510492357ecf01cc936aa7adbc2a19ccb9f3f3 |
File details
Details for the file pyallel-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: pyallel-1.0.1-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf4f1211e63c35bf6a2303e68a4eaa38b5b2446ec34fbc059ff7f876cf0d1b65 |
|
MD5 | 297f1b5f3723443f7fc9477cff6f1a93 |
|
BLAKE2b-256 | d4ded435f21d0270f5fb5fb2d6986a8ad16dac6838c325c8aefbeda9324a6c42 |