Awesome terminal input and output functions for python scripts.
I like to consider the command-line interface as if it were a graphical interface. In the development of graphical interfaces, 'components' are usually used to facilitate maintainability and design consistency. In my opinion, the word 'fragments' is a correct synonym to describe the same approach, but for command-line interfaces.
error
: a red message having[✕]
as prefixsuccess
: a green message having[✓]
as prefixwarning
: a yellow message having[!]
as prefixtext
: a standard text in terminal having the proper paddingdebug
: a default color message having[#]
as prefixnotice
: a blue message having[~]
as prefixask
: a qustion to the user having[?]
as prefix. The input value can be optionally validated passing avalidator
callback
First of all, you have to install the library using pip
.
pip install cli-fragments
Then import the library in your script and use it as follows.
from cli_fragments import CliFragments
# Custom validators function.
# They must accept an str parameter and must raise ValueError on validation failure.
def validator_function(value: str):
if value == "wrong":
raise ValueError
# Instantiate the main class
io = CliFragments()
# Use the output methods as shown
io.debug("This is a debug message.")
io.notice("This is a notice message.")
io.warning("This is a warning message.")
io.error("This is an error message.")
io.success("This is a success message.")
io.text("This is padded raw text message.")
# The default and the validator parameters are optional in the ask method.
# You can pass None to avoid using them.
io.ask("This is a user question.", None, None)
# This is a validated ask method call having a default value.
io.ask("This is a user question.", "default", validator_function)