<s> import re , string <EOL> class GimpPaletteFile : <EOL> rawmode = "<STR_LIT>" <EOL> def __init__ ( self , fp ) : <EOL> self . palette = map ( lambda i : chr ( i ) * <NUM_LIT:3> , range ( <NUM_LIT> ) ) <EOL> if fp . readline ( ) [ : <NUM_LIT:12> ] != "<STR_LIT>" : <EOL> raise SyntaxError , "<STR_LIT>" <EOL> i = <NUM_LIT:0> <EOL> while i <= <NUM_LIT:255> : <EOL> s = fp . readline ( ) <EOL> if not s : <EOL> break <EOL> if re . match ( "<STR_LIT>" , s ) : <EOL> continue <EOL> if len ( s ) > <NUM_LIT:100> : <EOL> raise SyntaxError , "<STR_LIT>" <EOL> v = tuple ( map ( int , string . split ( s ) [ : <NUM_LIT:3> ] ) ) <EOL> if len ( v ) != <NUM_LIT:3> : <EOL> raise ValueError , "<STR_LIT>" <EOL> if <NUM_LIT:0> <= i <= <NUM_LIT:255> : <EOL> self . palette [ i ] = chr ( v [ <NUM_LIT:0> ] ) + chr ( v [ <NUM_LIT:1> ] ) + chr ( v [ <NUM_LIT:2> ] ) <EOL> i = i + <NUM_LIT:1> <EOL> self . palette = string . join ( self . palette , "<STR_LIT>" ) <EOL> def getpalette ( self ) : <EOL> return self . palette , self . rawmode </s>
