houtianze/bypy

View on GitHub
bypy/printer.py

Summary

Maintainability
B
4 hrs
Test Coverage
#!/usr/bin/env python
# encoding: utf-8
# PYTHON_ARGCOMPLETE_OK

# from __future__ imports must occur at the beginning of the file
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import division

import time

from .termcolor import TermColor
from . import printer_console

prcolor = printer_console.prcolor

def plog(tag, msg, showtime = True, showdate = False,
        prefix = '', suffix = '', fg = TermColor.Nil, bg = TermColor.Nil):
    if showtime or showdate:
        now = time.localtime()
        if showtime:
            tag += time.strftime("[%H:%M:%S] ", now)
        if showdate:
            tag += time.strftime("[%Y-%m-%d] ", now)

    if prefix:
        prcolor("{0}{1}".format(tag, prefix), fg, bg)

    prcolor("{0}{1}".format(tag, msg), fg, bg)

    if suffix:
        prcolor("{0}{1}".format(tag, suffix), fg, bg)

def perr(msg, showtime = True, showdate = False, prefix = '', suffix = ''):
    return plog('<E> ', msg, showtime, showdate, prefix, suffix, TermColor.Red)

def pwarn(msg, showtime = True, showdate = False, prefix = '', suffix = ''):
    return plog('<W> ', msg, showtime, showdate, prefix, suffix, TermColor.Yellow)

def bannerwarn(msg):
    pwarn('!' * 160, showtime = False)
    pwarn(msg, showtime = False)
    pwarn('!' * 160, showtime = False)

def pinfo(msg, showtime = True, showdate = False, prefix = '', suffix = ''):
    return plog('<I> ', msg, showtime, showdate, prefix, suffix, TermColor.Green)

def pdbg(msg, showtime = True, showdate = False, prefix = '', suffix = ''):
    return plog('<D> ', msg, showtime, showdate, prefix, suffix, TermColor.Cyan)