Automate interactive CLI tools actions
Project description
pexpect-executor
Automate interactive CLI tools actions to create previews or tests in Python
Documentation: https://radiandevcore.gitlab.io/tools/pexpect-executor
Package: https://pypi.org/project/pexpect-executor/
Preview
CLI examples
pexpect-executor --help
pexpect-executor --down --down --down --down --down --space --enter -- gcil -H -B
pexpect-executor --press a --press a --enter -- gcil
pexpect-executor --ctrl c -- gcil
Python examples
#!/usr/bin/env python3
# Modules libraries
from pexpect_executor import Executor
# Configure
Executor.configure(host='previews', tool='pexpect-executor')
# List
Executor('ls -la', workdir='/').\
finish()
# More
Executor('ls -la | more -5', delay_press=0.5, workdir='/').\
read().\
press('s').\
read().\
press('s').\
read().\
press('b').\
read().\
press('b').\
read().\
press(' ').\
read().\
wait(1).\
press(Executor.KEY_ENTER).\
read().\
wait(1).\
press('q').\
finish()
# Prompt
Executor('').\
finish()
Usage
usage: pexpect-executor [-h] [--version] [--no-color] [--update-check] [--settings] [--set GROUP KEY VAL]
[--delay-init SECS] [--delay-press SECS] [--delay-prompt SECS] [--hold-prompt] [--host HOST]
[--tool TOOL] [--mask STRINGS] [--workdir WORKDIR] [--up] [--down] [--left] [--right]
[--enter] [--space] [--press KEY] [--ctrl KEY] [--read] [--wait SECS] [--finish] [--]
[command ...]
pexpect-executor: Automate interactive CLI tools actions
internal arguments:
-h, --help # Show this help message
--version # Show the current version
--no-color # Disable colors outputs with 'NO_COLOR=1'
# (or default settings: [themes] > no_color)
--update-check # Check for newer package updates
--settings # Show the current settings path and contents
--set GROUP KEY VAL # Set settings specific 'VAL' value to [GROUP] > KEY
# or unset by using 'UNSET' as 'VAL'
configuration arguments:
--delay-init SECS # Delay the initial action execution (in s, default: 1.0)
--delay-press SECS # Delay the press actions execution (in s, default: 0.5)
--delay-prompt SECS # Delay the prompt actions execution (in s, default: 1.0)
--hold-prompt # Hold the prompt execution without a new line
--host HOST # Configure the host name (default: preview, env: EXECUTOR_HOST)
--tool TOOL # Configure the tool name (default: executor, env: EXECUTOR_TOOL)
--mask STRINGS # Mask specific strings from console outputs (credentials for example)
--workdir WORKDIR # Use a specific working directory path
actions arguments:
--up # Press the <UP> key
--down # Press the <DOWN> key
--left # Press the <LEFT> key
--right # Press the <RIGHT> key
--enter # Press the <ENTER> key
--space # Press the <SPACE> key
--press KEY # Press the specified <KEY>
--ctrl KEY # Press the specified Ctrl+<KEY>
--read # Read the buffered data output (forced)
--wait SECS # Wait the specified time (in s, example: 1.0)
--finish # Finish the execution (forced)
positional arguments:
-- # Positional arguments separator (recommended)
command # Command arguments to execute (use -- to separate)
Userspace available settings
pexpect-executor creates a settings.ini configuration file in a userspace folder.
For example, it allows to disable the automated updates daily check ([updates] > enabled)
The settings.ini file location and contents can be shown with the following command:
pexpect-executor --settings
Supported systems
| Systems | Supported |
|---|---|
| Linux (shell) | ✓ |
| macOS (shell) | ? |
| Windows (shell) | ~ |
| Android (Termux) | ✓ |
Environment available configurations
pexpect-executor uses colored for colors outputs.
If colors of both outputs types do not match the terminal's theme,
an environment variable NO_COLOR=1 can be defined to disable colors.
Dependencies
- colored: Terminal colors and styles
- pexpect: Interactive console applications controller
- setuptools: Build and manage Python packages
- update-checker: Check for package updates on PyPI
- wexpect: Windows alternative of pexpect
References
- commitizen: Simple commit conventions for internet citizens
- git-cliff: CHANGELOG generator
- gitlab-release: Utility for publishing on GitLab
- gcil: Launch .gitlab-ci.yml jobs locally
- mkdocs: Project documentation with Markdown
- mkdocs-coverage: Coverage plugin for mkdocs documentation
- mkdocs-exporter: Exporter plugin for mkdocs documentation
- mkdocs-material: Material theme for mkdocs documentation
- mypy: Optional static typing for Python
- pre-commit: A framework for managing and maintaining pre-commit hooks
- pre-commit-crocodile: Git hooks intended for developers using pre-commit
- PyPI: The Python Package Index
- termtosvg: Record terminal sessions as SVG animations
- twine: Utility for publishing on PyPI
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pexpect_executor-4.3.1.tar.gz.
File metadata
- Download URL: pexpect_executor-4.3.1.tar.gz
- Upload date:
- Size: 89.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b99969993f007570de8f5795948f520368f2a817dd7b48853f96872e5e3ad5df
|
|
| MD5 |
cf036c36d13dd3f86d3bce512bbf398f
|
|
| BLAKE2b-256 |
14a9ef14b6058a5fd754c4727ab686111c5ef7249c076f3e8772f28dd7590410
|
File details
Details for the file pexpect_executor-4.3.1-py3-none-any.whl.
File metadata
- Download URL: pexpect_executor-4.3.1-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6862ad0a61746f603396dbb29a811074d70f3ed3d36b7ac8d7ff1d91f92d5a8b
|
|
| MD5 |
72ba1d162b38b3133e94cb79e5775992
|
|
| BLAKE2b-256 |
fcc0afaed363f8ea4151b7e8460a520ce9dcfb4c73c23b54ba582b35cec5a64b
|