<s> import decimal <EOL> import colorsys <EOL> import re <EOL> from xierpa3 . toolbox . transformer import TX <EOL> from xierpa3 . imaging import color <EOL> RGBTUPLE = re . compile ( '<STR_LIT>' , re . I ) <EOL> RGBATUPLE = re . compile ( '<STR_LIT>' , re . I ) <EOL> CMYKTUPLE = re . compile ( '<STR_LIT>' , re . I ) <EOL> UHEXTUPLE = re . compile ( '<STR_LIT>' , re . I ) <EOL> HEXTUPLE = re . compile ( '<STR_LIT>' , re . I ) <EOL> BWLEVEL = <NUM_LIT> <EOL> BWRGBWEIGHT = ( <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ) <EOL> BWRGBWEIGHT = ( decimal . Decimal ( '<STR_LIT>' ) , decimal . Decimal ( '<STR_LIT>' ) , decimal . Decimal ( '<STR_LIT>' ) ) <EOL> BWLEVEL = <NUM_LIT> <EOL> COLOR_NAMES = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> class Color : <EOL> u"""<STR_LIT>""" <EOL> RGB = '<STR_LIT>' <EOL> CMYK = '<STR_LIT>' <EOL> RGBA = '<STR_LIT>' <EOL> def __init__ ( self , col , format = "<STR_LIT>" , bw = None , bwrgb = None ) : <EOL> self . alpha = <NUM_LIT:1> <EOL> self . bwlevel = bw or BWLEVEL <EOL> self . bwrgb = bwrgb or BWRGBWEIGHT <EOL> if isinstance ( col , ( long , float , int ) ) : <EOL> col = hex ( col ) <EOL> elif isinstance ( col , Color ) : <EOL> col = col . hex <EOL> if format in ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) : <EOL> self . format = format <EOL> else : <EOL> raise ValueError ( '<STR_LIT>' % ( format , repr ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) ) ) <EOL> try : <EOL> if isinstance ( col , basestring ) : <EOL> col = COLOR_NAMES . get ( col , col ) <EOL> if '<STR_LIT:U+002C>' in col : <EOL> self . c = TX . list2IntFloatList ( col ) <EOL> elif HEXTUPLE . match ( col ) : <EOL> if len ( col ) == <NUM_LIT:4> : <EOL> col = '<STR_LIT>' % ( col [ <NUM_LIT:1> ] * <NUM_LIT:2> , col [ <NUM_LIT:2> ] * <NUM_LIT:2> , col [ <NUM_LIT:3> ] * <NUM_LIT:2> ) <EOL> self . c = col <EOL> elif UHEXTUPLE . match ( col ) : <EOL> col = col [ <NUM_LIT:2> : ] <EOL> if len ( col ) == <NUM_LIT:4> : <EOL> col = '<STR_LIT>' % ( col [ <NUM_LIT:1> ] * <NUM_LIT:2> , col [ <NUM_LIT:2> ] * <NUM_LIT:2> , col [ <NUM_LIT:3> ] * <NUM_LIT:2> ) <EOL> self . c = col <EOL> elif RGBTUPLE . match ( col ) : <EOL> mrgb = RGBTUPLE . match ( col ) <EOL> self . c = ( int ( mrgb . group ( <NUM_LIT:1> ) ) , int ( mrgb . group ( <NUM_LIT:2> ) ) , int ( mrgb . group ( <NUM_LIT:3> ) ) ) <EOL> elif RGBATUPLE . match ( col ) : <EOL> mrgb = RGBTUPLE . match ( col ) <EOL> self . c = ( int ( mrgb . group ( <NUM_LIT:1> ) ) , int ( mrgb . group ( <NUM_LIT:2> ) ) , int ( mrgb . group ( <NUM_LIT:3> ) ) ) <EOL> self . alpha = float ( mrgb . group ( <NUM_LIT:4> ) ) <EOL> elif CMYKTUPLE . match ( col ) : <EOL> mcmyk = CMYKTUPLE . match ( col ) <EOL> self . c = ( int ( mcmyk . group ( <NUM_LIT:1> ) ) , int ( mcmyk . group ( <NUM_LIT:2> ) ) , int ( mcmyk . group ( <NUM_LIT:3> ) ) , int ( mcmyk . group ( <NUM_LIT:4> ) ) ) <EOL> else : <EOL> ValueError ( '<STR_LIT>' % color ) <EOL> else : <EOL> self . c = col <EOL> if len ( self . c ) == <NUM_LIT:3> and sum ( self . c ) <= <NUM_LIT:3> : <EOL> self . c = list ( self . c ) <EOL> for i in range ( <NUM_LIT:3> ) : <EOL> if self . c [ i ] <= <NUM_LIT:1> and self . c [ i ] / <NUM_LIT:2> == float ( self . c [ i ] ) / <NUM_LIT:2> : <EOL> self . c [ i ] *= <NUM_LIT:255> <EOL> self . c [ i ] = int ( self . c [ i ] ) <EOL> self . c = tuple ( self . c ) <EOL> except : <EOL> raise ValueError ( '<STR_LIT>' % color ) <EOL> rgbint = color . rgb ( self . c ) <EOL> self . r , self . g , self . b = color . _int2rgbtuple ( rgbint ) <EOL> self . h , self . l , self . s = _rgb2hls ( self . r , self . g , self . b ) <EOL> def __getattr__ ( self , key ) : <EOL> method = '<STR_LIT:_>' + key <EOL> if hasattr ( self , method ) : <EOL> return getattr ( self , method ) ( ) <EOL> return self . __dict__ [ key ] <EOL> def __cmp__ ( self , color ) : <EOL> if color is None : <EOL> return False <EOL> return ` self . value ` == color . value <EOL> def __ne__ ( self , color ) : <EOL> return self . value == color . value <EOL> def __coerce__ ( self , color ) : <EOL> return None <EOL> def _r ( self ) : <EOL> return self . r <EOL> def _g ( self ) : <EOL> return self . g <EOL> def _b ( self ) : <EOL> return self . b <EOL> def __str__ ( self ) : <EOL> return repr ( self ) <EOL> def __nonzero__ ( self ) : <EOL> return <NUM_LIT:1> <EOL> def __radd__ ( self , s ) : <EOL> return s + self . hex <EOL> def __add__ ( self , s ) : <EOL> return self . hex + s <EOL> def __getslice__ ( self , i , j ) : <EOL> return repr ( self ) [ max ( <NUM_LIT:0> , i ) : max ( <NUM_LIT:0> , j ) : ] <EOL> def __repr__ ( self ) : <EOL> result = _hls2colorformat ( self . h , self . l , self . s , self . format ) <EOL> if self . format == '<STR_LIT>' : <EOL> return '<STR_LIT>' + repr ( result ) <EOL> elif self . format == '<STR_LIT>' and self . alpha < <NUM_LIT:1> : <EOL> return '<STR_LIT>' + repr ( result ) . rstrip ( '<STR_LIT:)>' ) + ( '<STR_LIT>' % float ( self . alpha ) ) <EOL> elif self . format == '<STR_LIT>' : <EOL> return '<STR_LIT>' + repr ( result ) <EOL> return result <EOL> def value ( self ) : <EOL> return ` self ` <EOL> def __sub__ ( self , color ) : <EOL> c = Color ( color ) <EOL> return self . r - c . r + self . g - c . g + self . b - c . b <EOL> def _get ( self ) : <EOL> result = _hls2colorformat ( self . h , self . l , self . s , self . format ) <EOL> return result <EOL> def _getlist ( self ) : <EOL> result = _hls2colorformat ( self . h , self . l , self . s , self . format ) <EOL> return list ( result ) <EOL> def _rgb ( self , alpha = None ) : <EOL> u"""<STR_LIT>""" <EOL> f = self . format <EOL> a = self . alpha <EOL> if alpha is not None : <EOL> self . alpha = alpha <EOL> self . format = '<STR_LIT>' <EOL> else : <EOL> self . format = '<STR_LIT>' <EOL> c = repr ( self ) <EOL> self . format = f <EOL> self . alpha = a <EOL> return c <EOL> _rgba = _rgb <EOL> def _cmyk ( self ) : <EOL> u"""<STR_LIT>""" <EOL> f = self . format <EOL> self . format = '<STR_LIT>' <EOL> c = repr ( self ) <EOL> self . format = f <EOL> return c <EOL> def _hex ( self ) : <EOL> u"""<STR_LIT>""" <EOL> f = self . format <EOL> self . format = '<STR_LIT>' <EOL> c = repr ( self ) <EOL> self . format = f <EOL> return c <EOL> def _uhex ( self ) : <EOL> u"""<STR_LIT>""" <EOL> f = self . format <EOL> self . format = '<STR_LIT>' <EOL> c = repr ( self ) <EOL> self . format = f <EOL> return c <EOL> def _negative ( self ) : <EOL> u"""<STR_LIT>""" <EOL> v = self . r * self . bwrgb [ <NUM_LIT:0> ] + self . g * self . bwrgb [ <NUM_LIT:1> ] + self . b * self . bwrgb [ <NUM_LIT:2> ] <EOL> if v < self . bwlevel : <EOL> return - <NUM_LIT:1> <EOL> return <NUM_LIT:1> <EOL> def _negativebw ( self ) : <EOL> u"""<STR_LIT>""" <EOL> if self . negative < <NUM_LIT:1> : <EOL> c = '<STR_LIT>' <EOL> else : <EOL> c = '<STR_LIT>' <EOL> return Color ( c , self . format ) <EOL> def setformat ( self , format ) : <EOL> u"""<STR_LIT>""" <EOL> if format in ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) : <EOL> return Color ( _hls2colorformat ( self . h , self . l , self . s , self . format ) , format = format ) <EOL> else : <EOL> raise ValueError ( '''<STR_LIT>''' % format ) <EOL> def setrgb ( self , red = None , green = None , blue = None ) : <EOL> u"""<STR_LIT>""" <EOL> if isinstance ( red , ( tuple , list ) ) : <EOL> r , g , b = red <EOL> else : <EOL> r = red or self . r <EOL> g = green or self . g <EOL> b = blue or self . b <EOL> h , l , s = _rgb2hls ( r , g , b ) <EOL> return Color ( _hls2colorformat ( h , l , s , self . format ) , format = self . format ) <EOL> def saturate ( self , v ) : <EOL> u"""<STR_LIT>""" <EOL> v = int ( v ) <EOL> if v < <NUM_LIT:0> : <EOL> return self . desaturate ( - v ) <EOL> s = _valueincrease ( self . s , v ) <EOL> return Color ( _hls2colorformat ( self . h , self . l , s , self . format ) , format = self . format ) <EOL> def desaturate ( self , v ) : <EOL> u"""<STR_LIT>""" <EOL> v = int ( v ) <EOL> if v < <NUM_LIT:0> : <EOL> return self . saturate ( - v ) <EOL> s = _valuedecrease ( self . s , v ) <EOL> return Color ( _hls2colorformat ( self . h , self . l , s , self . format ) , format = self . format ) <EOL> def lighten ( self , v ) : <EOL> u"""<STR_LIT>""" <EOL> v = int ( v ) <EOL> if v < <NUM_LIT:0> : <EOL> return self . darken ( - v ) <EOL> l = _valueincrease ( self . l , v ) <EOL> return Color ( _hls2colorformat ( self . h , l , self . s , self . format ) , format = self . format ) <EOL> def darken ( self , v ) : <EOL> u"""<STR_LIT>""" <EOL> v = int ( v ) <EOL> if v < <NUM_LIT:0> : <EOL> return self . lighten ( - v ) <EOL> l = _valuedecrease ( self . l , v ) <EOL> return Color ( _hls2colorformat ( self . h , l , self . s , self . format ) , format = self . format ) <EOL> def change ( self , lightness = <NUM_LIT:0> , saturation = <NUM_LIT:0> , hue = <NUM_LIT:0> ) : <EOL> u"""<STR_LIT>""" <EOL> l = _valuechange ( self . l , lightness ) <EOL> s = _valuechange ( self . s , saturation ) <EOL> hue = int ( hue or <NUM_LIT:0> ) / <NUM_LIT> <EOL> h = self . h + hue <EOL> while h < <NUM_LIT:0> : <EOL> h += <NUM_LIT:1.0> <EOL> while h > <NUM_LIT:1> : <EOL> h -= <NUM_LIT:1.0> <EOL> return Color ( _hls2colorformat ( h , l , s , self . format ) , format = self . format ) <EOL> def mix ( self , mix = '<STR_LIT>' ) : <EOL> u"""<STR_LIT>""" <EOL> baseseq = '<STR_LIT>' <EOL> mix = mix . lower ( ) <EOL> if not '<STR_LIT:r>' in mix or '<STR_LIT:b>' not in mix or '<STR_LIT:g>' not in mix or len ( mix ) != <NUM_LIT:3> : <EOL> raise ValueError ( '''<STR_LIT>''' % mix ) <EOL> mixcolor = [ ] <EOL> color = _hls2rgbtuple ( ( self . h , self . l , self . s ) ) <EOL> for m in mix : <EOL> i = baseseq . index ( m ) <EOL> mixcolor . append ( color [ i ] ) <EOL> return Color ( _returncolorformat ( tuple ( mixcolor ) , self . format ) , format = self . format ) <EOL> def oppositehue ( self ) : <EOL> u"""<STR_LIT>""" <EOL> return Color ( _hls2colorformat ( <NUM_LIT:1> - self . h , self . l , self . s , self . format ) , format = self . format ) <EOL> def opposite ( self ) : <EOL> u"""<STR_LIT>""" <EOL> r , g , b = _hls2rgbtuple ( ( self . h , self . l , self . s ) ) <EOL> rgb = ( <NUM_LIT> - r , <NUM_LIT> - g , <NUM_LIT> - b ) <EOL> return Color ( _returncolorformat ( rgb , self . format ) , format = self . format ) <EOL> def _hls2colorformat ( h , l , s , format ) : <EOL> c = _hls2rgbtuple ( ( h , l , s ) ) <EOL> return _returncolorformat ( c , format ) <EOL> def _hls2rgbtuple ( hls ) : <EOL> r , g , b = _hls2rgb ( hls ) <EOL> return int ( r * <NUM_LIT:255> ) , int ( g * <NUM_LIT:255> ) , int ( b * <NUM_LIT:255> ) <EOL> def _rgb2hls ( r , g , b ) : <EOL> return colorsys . rgb_to_hls ( r / <NUM_LIT> , g / <NUM_LIT> , b / <NUM_LIT> ) <EOL> def _hls2rgb ( hls ) : <EOL> h , l , s = hls <EOL> return colorsys . hls_to_rgb ( h , l , s ) <EOL> def _returncolorformat ( c , format ) : <EOL> if format is not None : <EOL> if format == '<STR_LIT>' : <EOL> return _col2hex ( c ) <EOL> if format == '<STR_LIT>' : <EOL> return _col2hex ( c , '<STR_LIT>' ) <EOL> if format == '<STR_LIT>' : <EOL> c , m , y , k = color . _rgb2cmyk ( c ) <EOL> return c , m , y , k <EOL> return c <EOL> return c <EOL> def _col2hex ( c , hx = '<STR_LIT:#>' ) : <EOL> if not isinstance ( c , ( tuple , list ) ) : <EOL> return c <EOL> for i in c : <EOL> h = hex ( int ( i ) ) [ <NUM_LIT:2> : ] <EOL> if len ( h ) == <NUM_LIT:1> : <EOL> h = '<STR_LIT:0>' + h <EOL> hx += h <EOL> return hx . upper ( ) <EOL> def _valueincrease ( c , v ) : <EOL> c += ( <NUM_LIT:1> - c ) * v / <NUM_LIT> <EOL> return c <EOL> def _valuedecrease ( c , v ) : <EOL> c -= c * v / <NUM_LIT> <EOL> return c <EOL> def _valuechange ( c , v ) : <EOL> if v : <EOL> v = int ( v ) <EOL> if v < <NUM_LIT:0> : <EOL> return _valuedecrease ( c , - v ) <EOL> else : <EOL> return _valueincrease ( c , v ) <EOL> else : <EOL> return c <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> col = Color ( ( <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> ) , '<STR_LIT>' ) <EOL> print '<STR_LIT>' , col <EOL> col = Color ( col . rgb , '<STR_LIT>' ) <EOL> print '<STR_LIT>' , col <EOL> print '<STR_LIT>' , col . lighten ( <NUM_LIT:50> ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> print '<STR_LIT>' , col . lighten ( <NUM_LIT:50> ) <EOL> col = Color ( ( <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , '<STR_LIT>' ) <EOL> print '<STR_LIT>' , col . lighten ( <NUM_LIT:50> ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> print col . lighten ( <NUM_LIT:50> ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> print col . lighten ( <NUM_LIT:50> ) <EOL> print col . darken ( <NUM_LIT:30> ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> print col . lighten ( <NUM_LIT:50> ) <EOL> print col . darken ( <NUM_LIT:30> ) <EOL> col = Color ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> print repr ( col ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> col . setformat ( '<STR_LIT>' ) <EOL> print '<STR_LIT>' , str ( col ) <EOL> col . setformat ( '<STR_LIT>' ) <EOL> print '<STR_LIT>' , str ( col ) <EOL> col . setformat ( '<STR_LIT>' ) <EOL> print '<STR_LIT>' , str ( col ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> print str ( col ) <EOL> print col . change ( <NUM_LIT:30> , <NUM_LIT:20> , <NUM_LIT:255> ) <EOL> print col . change ( <NUM_LIT:30> , <NUM_LIT:20> , - <NUM_LIT:255> ) <EOL> print col . change ( <NUM_LIT:30> , <NUM_LIT:20> ) <EOL> print col . change ( hue = - <NUM_LIT:30> ) <EOL> col . setrgb ( <NUM_LIT> ) <EOL> print repr ( col ) , str ( col ) , col <EOL> print col . rgb <EOL> print col . cmyk <EOL> print col . hex <EOL> print col . uhex <EOL> col = Color ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> print col <EOL> col = Color ( '<STR_LIT>' ) <EOL> print '<STR_LIT>' , col . opposite ( ) <EOL> print '<STR_LIT>' , col . oppositehue ( ) <EOL> col = Color ( ( <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> ) , '<STR_LIT>' ) <EOL> print '<STR_LIT>' , col . mix ( ) <EOL> col = Color ( '<STR_LIT>' ) <EOL> print col . lighten ( <NUM_LIT:30> ) <EOL> print col . lighten ( <NUM_LIT:30> ) . desaturate ( <NUM_LIT> ) <EOL> print '<STR_LIT>' , Color ( '<STR_LIT>' ) - '<STR_LIT>' <EOL> print Color ( '<STR_LIT>' ) . negativebw <EOL> print Color ( '<STR_LIT>' ) . negativebw <EOL> print Color ( '<STR_LIT>' ) . negativebw <EOL> print Color ( '<STR_LIT>' ) . negativebw </s>
