minchin.text

Python library for text formatting on the command line.


License
MIT
Install
pip install minchin.text==6.1.0

Documentation

minchin.text

Python library for text formatting on the command line.

Available Data

__version__

library version.

re_ansi_control_codes

Compiled regex pattern for ANSI control codes, including colors.

re_weburl

Compiled regex pattern for web URL's -- http, https, and naked domains like "example.com"

re_allurl

Compiled regex pattern to match all URL's, including "mailto:foo@example.com", "x-whatever://foo", etc.

Answers

An Enum containing the possible query answers. Current contains YES, NO, QUIT, ALL, and NONE. YES and ALL are "truth-y" while NO, QUIT, and NONE are "false-y".

Available Commands

length_no_ansi(mystring)

Takes a string, strips out the ANSI escape codes (used for colouring terminal output, etc.), and returns the length of the resulting string

centered (mystring, linewidth=None, fill=" ")

Takes a string, centres it, and pads it on both sides. Default linewidth is one less than the console width.

clock_on_right(mystring)

Takes a string, and prints it with the time right aligned

query_yes_no(question, default="yes")

Ask a yes/no question via raw_input() and return their answer.

  • "question" is a string that is presented to the user.
  • "default" is the presumed answer if the user just hits <Enter>. It must be "yes" (the default), "no" or None (meaning an answer is required of the user).
  • Returns one of Answer.YES or Answer.NO

query_yes_no_all(question, default="yes")

Ask a yes/no/all question via raw_input() and return their answer.

  • "question" is a string that is presented to the user.
  • "default" is the presumed answer if the user just hits <Enter>. It must be "yes" (the default), "no", "all" or None (meaning an answer is required of the user).
  • Returns one of Answer.YES, Answer.NO, or Answer.ALL

def query_yes_quit(question, default="quit")

Ask a yes/quit question via raw_input() and return their answer.

  • "question" is a string that is presented to the user.
  • "default" is the presumed answer if the user just hits <Enter>. It must be "yes" (the default), "quit" or None (meaning an answer is required of the user).
  • Returns one of Answer.YES or Answer.QUIT

query_yes_no_all_none(question, default="yes")

Ask a yes/no/all/none question via raw_input() and return their answer.

  • "question" is a string that is presented to the user.
  • "default" is the presumed answer if the user just hits <Enter>. It must be "yes" (the default), "no", "all", "none" (i.e. the string) or None (meaning an answer is required of the user).
  • Returns one of Answer.YES, Answer.NO, Answer.ALL, or Answer.NONE

wait(sec)

Prints a timer with the format 0:00 to the console, and then clears the line when the timer is done.

title(mytitle)

Takes mytitle, centers it, and prints it in yellow letters on a blue background.

subtitle(mysubtitle)

Takes mysubtitle, centers it, and prints it in bright (white) letters on a normal (black) background.

rainbow_print(text, offset=0)

Prints out text in a cycle of rainbow-esque colors!

progressbar (class)

This class is used to create and then update a 'progress bar', like:

[================>                                                    ] 17 / 70

progressbar(current=0, maximum=100, bar_color=colorama.Fore.GREEN)

Creates a progress bar class. Prints the progress bar.

progressbar.update(currently=None)

Updates the value of the progress bar and prints it.

progressbar.reset()

Sets the value of the progress bar to 0 (zero) and prints it.

Code

The code is available at https://github.com/MinchinWeb/minchin.text

Contributions are welcome!

Tests

Located in the test folder. Each is a "visual test", so they need to be run and the output manually examined.

License

The code is licensed under the MIT license. See that attached LICENSE file.