A background command handler for python's command-line interface.
Project description
InputHandler Library
A lightweight Python library for creating interactive command-line interfaces with custom command registration and input handling. It supports threaded input processing and includes enhanced logging with color-coded output.
Features
- Command registration system with descriptions
- Threaded or non-threaded input handling
- Colored logging with support for debug mode
- Built-in
help,debug, andexitcommands - Error handling for missing or invalid command arguments
- NEW: Register commands with decorators
Installation
pip install cli_ih
Quick Start
from cli_ih import InputHandler
def greet(args):
print(f"Hello, {' '.join(args)}!")
handler = InputHandler(cursor="> ")
# NEW
@handler.command(name="add", description="Performs the `+` operator on the first 2 arguments.") # The name param will use the func name if its not provided
def add(args):
print(int(args[0])+int(args[1]))
handler.register_command("greet", greet, "Greets the user. Usage: greet [name]")
handler.start()
# Now type commands like:
# > greet world
# Hello, world!
# > add 1 2
# 3
# > help
# Available commands:
# help: Displays all the available commands
# debug: If a logger is present changes the logging level to DEBUG.
# exit: Exits the Input Handler irreversibly.
# add: Performs the `+` operator on the first 2 arguments.
# greet: Greets the user. Usage: greet [name]
#
# > debug
# > exit
Additional Info
- You can provide a valid logger
logger=loggerto theInputHandlerto enable logging (this will be removed soon) - You can provide the
thread_modeparam to theInputHandlerclass to set if it shoud run in a thread or no. (If you are using thecli-ihmodule on its own without any other background task setthread_mode=Falseto false) - You can also provide a
cursorparam to theInputHandlerclass to set the cli cursor (default cusor is empty)
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 cli_ih-0.6.0.2.1.tar.gz.
File metadata
- Download URL: cli_ih-0.6.0.2.1.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
911b7a8ca12746a76e7b67ef802c3f0ffe86b8be6eda8714df0531dc4d977afd
|
|
| MD5 |
79582f535996c465ef347317e092e4d7
|
|
| BLAKE2b-256 |
fc1bb5320cc05324433b72c626d74cb753f0251835350ae0da3ba1dedcabf81d
|
File details
Details for the file cli_ih-0.6.0.2.1-py3-none-any.whl.
File metadata
- Download URL: cli_ih-0.6.0.2.1-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
362c40c749280fbe07f27fb3591abab25fc52642d553f80f5fac4321e47bb4a8
|
|
| MD5 |
7c8d10e5b90fc6c34925b59844677889
|
|
| BLAKE2b-256 |
dc38577c0f3fb4982706dad843620e6bb094bb6a7440764574080632141dc186
|