# coding: utf-8 # © simpleApps, 2010 """ Provides a “safe” way to print a text """ import os import sys import time __author__ = "mrDoctorWho " # Bold + Inensity BIYellow = "\x1b[1;93m" # Yellow BICyan = "\x1b[1;96m" # Cyan BIRed = "\x1b[1;91m" # Red BIGreen = "\x1b[1;92m" # Green Nocolor = "\x1b[0m" def use_lsd(text): import random line = "" for char in text: style = random.choice((0, 1, 4, 5)) background = random.randrange(41, 48) style = "%s;30;%s" % (style, background) line += "\x1b[%sm%s \x1b[0m" % (style, char) return line def Print(text, line=True): """ This function is needed to prevent errors like IOError: device is not ready which is probably happens when script running under screen """ if (time.gmtime().tm_mon, time.gmtime().tm_mday) == (4, 1): text = use_lsd(text) if line: text += "\n" try: sys.stdout.write(text) sys.stdout.flush() except (IOError, OSError): pass def colorizeJSON(data): if os.name != "nt": text = "" iter = list(repr(data)).__iter__() for c in iter: if c == "'": text += BIYellow + c for x in iter: text += x if x == "'": text += Nocolor break elif c.isdigit(): text += BICyan + c for x in iter: if x.isdigit(): text += x else: text += Nocolor + x break else: text += c return text return data