#NEWLINE# def select_graphic_rendition( self , * attrs ) : #NEWLINE# #INDENT# ' Support 256 colours ' #NEWLINE# replace = { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } #NEWLINE# if ( not attrs ) : #NEWLINE# #INDENT# attrs = [ 0 ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# attrs = list ( attrs [ : : ( - 1 ) ] ) #NEWLINE# #UNINDENT# while attrs : #NEWLINE# #INDENT# attr = attrs . pop ( ) #NEWLINE# if ( attr in self . _fg_colors ) : #NEWLINE# #INDENT# replace [ 'color' ] = self . _fg_colors [ replace ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr in self . _bg_colors ) : #NEWLINE# #INDENT# replace [ 'bgcolor' ] = self . _bg_colors [ attr ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 1 ) : #NEWLINE# #INDENT# replace [ 'bold' ] = True #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 3 ) : #NEWLINE# #INDENT# replace [ 'italic' ] = True #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 4 ) : #NEWLINE# #INDENT# replace [ 'underline' ] = True #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 5 ) : #NEWLINE# #INDENT# replace [ 'blink' ] = True #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 6 ) : #NEWLINE# #INDENT# replace [ 'blink' ] = True #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 7 ) : #NEWLINE# #INDENT# replace [ 'reverse' ] = True #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 22 ) : #NEWLINE# #INDENT# replace [ 'bold' ] = False #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 23 ) : #NEWLINE# #INDENT# replace [ 'italic' ] = False #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 24 ) : #NEWLINE# #INDENT# replace [ 'underline' ] = False #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 25 ) : #NEWLINE# #INDENT# replace [ 'blink' ] = False #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 27 ) : #NEWLINE# #INDENT# replace [ 'reverse' ] = False #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( not attr ) : #NEWLINE# #INDENT# replace = { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } #NEWLINE# self . _attrs = Attrs ( color = None , bgcolor = None , bold = False , underline = False , italic = False , blink = False , reverse = False ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr in ( 38 , 48 ) ) : #NEWLINE# #INDENT# n = attrs . pop ( ) #NEWLINE# if ( n == 5 ) : #NEWLINE# #INDENT# if ( attr == 38 ) : #NEWLINE# #INDENT# m = attrs . pop ( ) #NEWLINE# replace [ 'color' ] = self . _256_colors . get ( ( 1024 + m ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 48 ) : #NEWLINE# #INDENT# m = attrs . pop ( ) #NEWLINE# replace [ 'bgcolor' ] = self . _256_colors . get ( ( 1024 + m ) ) #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# if ( n == 2 ) : #NEWLINE# #INDENT# try : #NEWLINE# #INDENT# color_str = ( '%02x%02x%02x' % ( attrs . pop ( ) , attrs . pop ( ) , attrs . pop ( ) ) ) #NEWLINE# #UNINDENT# except IndexError : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 38 ) : #NEWLINE# #INDENT# replace [ 'color' ] = color_str #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( attr == 48 ) : #NEWLINE# #INDENT# replace [ 'bgcolor' ] = color_str #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# self . _attrs = self . _attrs . _replace ( ** replace )