Skip to main content

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 <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.1.0 [2017-01-29]
==================
- `minchin.text.progressbar()` will only print (by default) every 0.1 seconds
- fix progressbar bug where "overfull" bars would go on to multiple lines
- add `get_terminal_size()`
- upgrade release machinery

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.

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

minchin.text-5.1.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

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

minchin.text-5.1.0-py2.py3-none-any.whl (10.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file minchin.text-5.1.0.tar.gz.

File metadata

  • Download URL: minchin.text-5.1.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for minchin.text-5.1.0.tar.gz
Algorithm Hash digest
SHA256 37bc1b6184453db8e180a0192a25b8e558486cd2267d6dc2cae8470df341347e
MD5 eb1964e78be09b9d78b6db2c00ff8aaf
BLAKE2b-256 416d03d814d0783e2630d3b4ff7b2f591cbc42b4ec26c22183a6b7e969eaa79b

See more details on using hashes here.

File details

Details for the file minchin.text-5.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for minchin.text-5.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 61d85494f0994cb8ebfdaa0995d6c5281e8447d2881b07f936dfc8db71e04c7e
MD5 9b88d08b2aa0214b5e9dec9947d0cd48
BLAKE2b-256 083466ee952d97c2ad8d4048517c8254dee15150c5b96502f15793ccd781811b

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