Skip to content
This repository has been archived by the owner on Aug 13, 2021. It is now read-only.
/ buzio Public archive

Python library for printing formatted text in terminal.

Notifications You must be signed in to change notification settings

chrismaille/buzio

Repository files navigation

Welcome to Buzio's documentation!

PyPI Build Status PyPI Coverage Status Documentation Status Codacy Badge Maintainability Requirements Status

Buzio is a python library tool for printing formatted text in terminal, similar to termcolor or colored.

Installing Buzio

Install Buzio using the command:

    $ pip install buzio

Importing the Library

    from buzio import console, formatStr

The console is a instance of the Console class initialized with default color themes. You can also import the class and instantiate with your own settings (See the documentation for more info)

The formatStr is also a instance of the Console class too, but instead of printing in terminal the message, this instance just return the formatted text.

The default color themes:

Method Text Color
console.box Fore.CYAN
console.error Fore.RED
console.info Fore.CYAN
console.section Fore.LIGHTYELLOW_EX
console.success Fore.GREEN
console.warning Fore.YELLOW

These colors are based in colorama constants.

Generate fancy formats

"Section" example 1:

    from buzio import console

    console.section("First Section")

Terminal output::

$ >> First Section
$ ----------------

Humanize Python objects

Buzio can automatically humanize any python object for printing in terminal:

    from datetime import datetime, timedelta
    from buzio import console
    
    today = datetime.now()
    yesterday = today - timedelta(days=1)
    my_dict = {
        "start day": yesterday,
        "end day": today
    }

    console.box(my_dict, date_format="%a, %b-%d-%Y")

The output on terminal will be:

    $ *********************************
    $ *                               *
    $ *  start day: Thu, Feb-01-2018  *
    $ *   end day: Fri, Feb-02-2018   *
    $ *                               *
    $ *********************************

Ask for Input data

You can use Buzio to automatically generate "choose" and "select" questions, based on Python objects:

"Choose" example:

    from buzio import console

    my_choices = [
        "Orange",
        "Apple",
        "Potato"
    ]

    console.choose(my_choices)

Terminal output::

    $ 1. Orange
    $ 2. Apple
    $ 3. Potato
    $ 
    $ Select (1-3): ?

Run terminal commands

You can use Buzio to run terminal commands (using Python subprocess) and get the stdout result:

    >>> from buzio import console
    >>> ret = console.run("echo HelloWorld!", get_stdout=True, verbose=True)
    Cmd: echo HelloWorld!
    >>> print(ret)
    HelloWorld!

Further reading

Please check full documentation in http://buzio.readthedocs.io/