Skip to main content

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, and exit commands
  • 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=logger to the InputHandler to enable logging (this will be removed soon)
  • You can provide the thread_mode param to the InputHandler class to set if it shoud run in a thread or no. (If you are using the cli-ih module on its own without any other background task set thread_mode=False to false)
  • You can also provide a cursor param to the InputHandler class to set the cli cursor (default cusor is empty)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cli_ih-0.6.0.2.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cli_ih-0.6.0.2-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file cli_ih-0.6.0.2.tar.gz.

File metadata

  • Download URL: cli_ih-0.6.0.2.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

Hashes for cli_ih-0.6.0.2.tar.gz
Algorithm Hash digest
SHA256 a3b45e177d7de7f6d70b2713f4e241a58c14ae9f0d9701cd8f88766e295fa607
MD5 476a5bcfc1a98c98ea50a7d50b3aa193
BLAKE2b-256 1fc089d7f19006e77170ef5335e863e08d509a0cf7f007ddd8a14afc3d1158a3

See more details on using hashes here.

File details

Details for the file cli_ih-0.6.0.2-py3-none-any.whl.

File metadata

  • Download URL: cli_ih-0.6.0.2-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

Hashes for cli_ih-0.6.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 14ff23cf47acee4ada78ee10fccf74348e611e0bc197c2fe49fd1080b80805a8
MD5 4ff57e14df95b0949153b69239c0e623
BLAKE2b-256 dde5c8e081108171ef3bb8c966463a9e95ecd8a84cbc9c9b24a46d51ce77f58b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page