@ -31,49 +31,48 @@ def generate_colors(stream, color=True, bold=True, italic=True):
if ( color or bold or italic ) and _color_supported ( stream ) :
if ( color or bold or italic ) and _color_supported ( stream ) :
bold_flag , italic_flag = ' ' , ' '
bold_flag , italic_flag = ' ' , ' '
if bold :
if bold :
colors [ ' bold ' ] = u ' \ x1b [1m '
colors [ ' bold ' ] = u ' \ 033 [1m '
bold_flag = ' 1; '
bold_flag = ' 1; '
if italic :
if italic :
colors [ ' italic ' ] = u ' \ x1b [3m '
colors [ ' italic ' ] = u ' \ 033 [3m '
italic_flag = ' 3; '
italic_flag = ' 3; '
for i , name in enumerate ( COLOR_LIST ) :
for i , name in enumerate ( COLOR_LIST ) :
if color :
if color :
color_flag = ' 3 {} ' . format ( name )
colors [ name ] = u ' \x1b [3 {} m ' . format ( i )
colors [ name ] = u ' \x1b [ {} m ' . format ( color_flag )
colors . update ( { u ' b ' + name : u ' \033 [ {} 3 {} m ' . format ( bold_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' b ' + name : u ' \x1b [ {} 3 {} m ' . format ( bold_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' i ' + name : u ' \033 [ {} 3 {} m ' . format ( italic_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' i ' + name : u ' \x1b [ {} 3 {} m ' . format ( italic_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' bi ' + name : u ' \033 [ {} {} 3 {} m ' . format ( bold_flag , italic_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' bi ' + name : u ' \x1b [ {} 3 {} m ' . format ( bold_flag , italic_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
else :
else :
if bold :
if bold :
colors . update ( { u ' b ' + name : u ' \ x1b[ {} m ' . format ( bold_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' b ' + name : u ' \ 033[1m ' for i , name in enumerate ( COLOR_LIST ) } )
if italic :
if italic :
colors . update ( { u ' i ' + name : u ' \ x1b[ {} m ' . format ( italic_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' i ' + name : u ' \ 033[3m ' for i , name in enumerate ( COLOR_LIST ) } )
if bold or italic :
if bold or italic :
colors . update ( { u ' bi ' + name : u ' \ x1b[ {} m ' . format ( bold_flag , italic_flag , i ) for i , name in enumerate ( COLOR_LIST ) } )
colors . update ( { u ' bi ' + name : u ' \ 033[ {} {} m ' . format ( bold_flag , italic_flag ) for i , name in enumerate ( COLOR_LIST ) } )
if color or bold or italic :
if color or bold or italic :
colors [ u ' end ' ] = u ' \ x1b [0m '
colors [ ' end ' ] = u ' \ 033 [0m '
return colors
return colors
COLORS_OUT = generate_colors ( sys . stdout , color = True, bold = True , italic = Tru e)
COLORS_OUT = generate_colors ( sys . stdout , color = False, bold = False , italic = Fals e)
COLORS_ERR = generate_colors ( sys . stderr , color = True, bold = True , italic = Tru e)
COLORS_ERR = generate_colors ( sys . stderr , color = False, bold = False , italic = Fals e)
def dye_out ( s , color = ' end ' ) :
def dye_out ( s , color = ' end ' ) :
return ' {} {} {} ' . format ( COLORS_OUT [ color ] , s , COLORS_OUT [ ' end ' ] )
return u ' {} {} {} ' . format ( COLORS_OUT [ color ] , s , COLORS_OUT [ ' end ' ] )
def dye_err ( s , color = ' end ' ) :
def dye_err ( s , color = ' end ' ) :
return ' {} {} {} ' . format ( COLORS_ERR [ color ] , s , COLORS_OUT [ ' end ' ] )
return u ' {} {} {} ' . format ( COLORS_ERR [ color ] , s , COLORS_OUT [ ' end ' ] )
def _nodye ( s , * args , * * kwargs ) :
def _nodye ( s , * args , * * kwargs ) :
return s
return s
def setup ( color = True, bold = True , italic = Tru e) :
def setup ( color = False, bold = False , italic = Fals e) :
global COLORS_OUT , COLORS_ERR
global COLORS_OUT , COLORS_ERR
COLORS_OUT = generate_colors ( sys . stdout , color = color , bold = color, italic = color )
COLORS_OUT = generate_colors ( sys . stdout , color = color , bold = bold, italic = italic )
COLORS_ERR = generate_colors ( sys . stderr , color = color , bold = color, italic = color )
COLORS_ERR = generate_colors ( sys . stderr , color = color , bold = bold, italic = italic )
# undye
# undye
undye_re = re . compile ( ' \x1b \ [[; \ d]*[A-Za-z] ' )
undye_re = re . compile ( ' \x1b \ [[; \ d]*[A-Za-z] ' )