Python library for text formatting on the command line.
Project description
minchin.text
============
Python library for text formatting on the command line.
Avaiable 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.
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=79, fill=" ")
```````````````````````````````````````````
Takes a string, centres it, and pads it on both sides
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).
- The "answer" return value is one of "yes" or "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).
- The "answer" return value is one of "yes", "no", or "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).
- The "answer" return value is one of "yes" or "quit".
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.
progressbar (class)
-------------------
This class is used to create and then update a 'progress bar', like:
.. code-block:: shell
[================> ] 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.
v 5.0 [2015-06-10]
==================
- move package to `minchin.text`
- add tests for `minchin.text.centered()`
- add end character to progress bar
- add documentation to README.rst
v 4.4 [2014-10-26]
==================
- typographic changes to allow wmtext to work in Python 3
v 4.1 [2014-03-10]
==================
- allow access as a direct object.
i.e. use `import wmtext` rather than `from wmtext import wmtext`
v 4.0 [2014-02-06]
==================
- packaged as a separate module
- added progress bar
- first public release
v 3.2 [2014-02-02]
==================
- add `length_no_ansi()` allowing you to determine the length of a string
after stripping out ANSI codes.
============
Python library for text formatting on the command line.
Avaiable 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.
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=79, fill=" ")
```````````````````````````````````````````
Takes a string, centres it, and pads it on both sides
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).
- The "answer" return value is one of "yes" or "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).
- The "answer" return value is one of "yes", "no", or "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).
- The "answer" return value is one of "yes" or "quit".
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.
progressbar (class)
-------------------
This class is used to create and then update a 'progress bar', like:
.. code-block:: shell
[================> ] 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.
v 5.0 [2015-06-10]
==================
- move package to `minchin.text`
- add tests for `minchin.text.centered()`
- add end character to progress bar
- add documentation to README.rst
v 4.4 [2014-10-26]
==================
- typographic changes to allow wmtext to work in Python 3
v 4.1 [2014-03-10]
==================
- allow access as a direct object.
i.e. use `import wmtext` rather than `from wmtext import wmtext`
v 4.0 [2014-02-06]
==================
- packaged as a separate module
- added progress bar
- first public release
v 3.2 [2014-02-02]
==================
- add `length_no_ansi()` allowing you to determine the length of a string
after stripping out ANSI codes.