Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

# -*- coding: utf-8 -*- 

""" 

    pygments.console 

    ~~~~~~~~~~~~~~~~ 

 

    Format colored console output. 

 

    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. 

    :license: BSD, see LICENSE for details. 

""" 

 

esc = "\x1b[" 

 

codes = {} 

codes[""]          = "" 

codes["reset"]     = esc + "39;49;00m" 

 

codes["bold"]      = esc + "01m" 

codes["faint"]     = esc + "02m" 

codes["standout"]  = esc + "03m" 

codes["underline"] = esc + "04m" 

codes["blink"]     = esc + "05m" 

codes["overline"]  = esc + "06m" 

 

dark_colors  = ["black", "darkred", "darkgreen", "brown", "darkblue", 

                "purple", "teal", "lightgray"] 

light_colors = ["darkgray", "red", "green", "yellow", "blue", 

                "fuchsia", "turquoise", "white"] 

 

x = 30 

for d, l in zip(dark_colors, light_colors): 

    codes[d] = esc + "%im" % x 

    codes[l] = esc + "%i;01m" % x 

    x += 1 

 

del d, l, x 

 

codes["darkteal"]   = codes["turquoise"] 

codes["darkyellow"] = codes["brown"] 

codes["fuscia"]     = codes["fuchsia"] 

codes["white"]      = codes["bold"] 

 

 

def reset_color(): 

    return codes["reset"] 

 

 

def colorize(color_key, text): 

    return codes[color_key] + text + codes["reset"] 

 

 

def ansiformat(attr, text): 

    """ 

    Format ``text`` with a color and/or some attributes:: 

 

        color       normal color 

        *color*     bold color 

        _color_     underlined color 

        +color+     blinking color 

    """ 

    result = [] 

    if attr[:1] == attr[-1:] == '+': 

        result.append(codes['blink']) 

        attr = attr[1:-1] 

    if attr[:1] == attr[-1:] == '*': 

        result.append(codes['bold']) 

        attr = attr[1:-1] 

    if attr[:1] == attr[-1:] == '_': 

        result.append(codes['underline']) 

        attr = attr[1:-1] 

    result.append(codes[attr]) 

    result.append(text) 

    result.append(codes['reset']) 

    return ''.join(result)