示例#1
0
文件: ansi_print.py 项目: njues/Sypy
 def __init__(self, kw_to_color={}, file=None):
     self.kw_to_color = self.KW_TO_COLOR.copy()
     self.kw_to_color.update(kw_to_color)
     self.file = file
     self.fancy = True
     self.isatty = getattr(sys.stderr, 'isatty', lambda: False)
     if self.fancy and self.isatty():
         self.mandelbrot_driver = Driver()
     else:
         self.mandelbrot_driver = None
示例#2
0
 def __init__(self, kw_to_color={}, file=None):
     self.kw_to_color = self.KW_TO_COLOR.copy()
     self.kw_to_color.update(kw_to_color)
     self.file = file
     self.fancy = True
     self.isatty = getattr(sys.stderr, 'isatty', lambda: False)
     if self.fancy and self.isatty(): 
         self.mandelbrot_driver = Driver()
     else:
         self.mandelbrot_driver = None
示例#3
0
文件: ansi_print.py 项目: njues/Sypy
class AnsiLog:
    wrote_dot = False  # XXX sharing state with all instances

    KW_TO_COLOR = {
        # color supress
        'red': ((31, ), True),
        'bold': ((1, ), True),
        'WARNING': ((31, ), False),
        'event': ((1, ), True),
        'ERROR': ((1, 31), False),
        'Error': ((1, 31), False),
        'info': ((35, ), False),
        'stub': ((34, ), False),
    }

    def __init__(self, kw_to_color={}, file=None):
        self.kw_to_color = self.KW_TO_COLOR.copy()
        self.kw_to_color.update(kw_to_color)
        self.file = file
        self.fancy = True
        self.isatty = getattr(sys.stderr, 'isatty', lambda: False)
        if self.fancy and self.isatty():
            self.mandelbrot_driver = Driver()
        else:
            self.mandelbrot_driver = None

    def __call__(self, msg):
        tty = self.isatty()
        flush = False
        newline = True
        keywords = []
        esc = []
        for kw in msg.keywords:
            color, supress = self.kw_to_color.get(kw, (None, False))
            if color:
                esc.extend(color)
            if not supress:
                keywords.append(kw)
        if 'start' in keywords:
            if tty:
                newline = False
                flush = True
                keywords.remove('start')
        elif 'done' in keywords:
            if tty:
                print >> sys.stderr
                return
        elif 'dot' in keywords:
            if tty:
                if self.fancy:
                    if not AnsiLog.wrote_dot:
                        self.mandelbrot_driver.reset()
                    self.mandelbrot_driver.dot()
                else:
                    ansi_print(".",
                               tuple(esc),
                               file=self.file,
                               newline=False,
                               flush=flush)
                AnsiLog.wrote_dot = True
                return
        if AnsiLog.wrote_dot:
            AnsiLog.wrote_dot = False
            sys.stderr.write("\n")
        esc = tuple(esc)
        for line in msg.content().splitlines():
            ansi_print("[%s] %s" % (":".join(keywords), line),
                       esc,
                       file=self.file,
                       newline=newline,
                       flush=flush)
示例#4
0
class AnsiLog:
    wrote_dot = False # XXX sharing state with all instances

    KW_TO_COLOR = {
        # color supress
        'red': ((31,), True),
        'bold': ((1,), True),
        'WARNING': ((31,), False),
        'event': ((1,), True),
        'ERROR': ((1, 31), False),
        'info': ((35,), False),
        'stub': ((34,), False),
    }

    def __init__(self, kw_to_color={}, file=None):
        self.kw_to_color = self.KW_TO_COLOR.copy()
        self.kw_to_color.update(kw_to_color)
        self.file = file
        self.fancy = True
        self.isatty = getattr(sys.stderr, 'isatty', lambda: False)
        if self.fancy and self.isatty(): 
            self.mandelbrot_driver = Driver()
        else:
            self.mandelbrot_driver = None

    def __call__(self, msg):
        tty = self.isatty()
        flush = False
        newline = True
        keywords = []
        esc = []
        for kw in msg.keywords:
            color, supress = self.kw_to_color.get(kw, (None, False))
            if color:
                esc.extend(color)
            if not supress:
                keywords.append(kw)
        if 'start' in keywords:
            if tty:
                newline = False
                flush = True
                keywords.remove('start')
        elif 'done' in keywords:
            if tty:
                print >> sys.stderr
                return
        elif 'dot' in keywords:
            if tty:
                if self.fancy:
                    if not AnsiLog.wrote_dot:
                        self.mandelbrot_driver.reset()
                    self.mandelbrot_driver.dot()
                else:
                    ansi_print(".", tuple(esc), file=self.file, newline=False, flush=flush)
                AnsiLog.wrote_dot = True
                return
        if AnsiLog.wrote_dot:
            AnsiLog.wrote_dot = False
            sys.stderr.write("\n")
        esc = tuple(esc)
        for line in msg.content().splitlines():
            ansi_print("[%s] %s" %(":".join(keywords), line), esc, 
                       file=self.file, newline=newline, flush=flush)