def cbox(i, gray=False, spectrum="<STR_LIT>", reverse=False, **kwargs):
CD = {}<EOL>CD['<STR_LIT>'] = (<NUM_LIT:0.0>, <NUM_LIT:0.0>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:1.0>, <NUM_LIT:1.0>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:1.0>, <NUM_LIT>, <NUM_LIT:0.1>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT:0.0>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT:0.0>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:1.0>, <NUM_LIT:0.5>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:0.5>, <NUM_LIT>, <NUM_LIT:1.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:1.0>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:0.5>, <NUM_LIT>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT:0.0>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT:1.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:0.5>, <NUM_LIT:0.5>, <NUM_LIT:0.5>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:0.5>, <NUM_LIT:0.5>, <NUM_LIT:0.5>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:0.0>, <NUM_LIT:0.0>, <NUM_LIT:0.0>)  <EOL>CD['<STR_LIT>'] = (<NUM_LIT:1.0>, <NUM_LIT:1.0>, <NUM_LIT:1.0>)  <EOL>if isinstance(i, int):<EOL><INDENT>i = i<EOL><DEDENT>elif isinstance(i, float):<EOL><INDENT>i = int(i)<EOL><DEDENT>elif isinstance(i, str):<EOL><INDENT>dat = CD[i]<EOL>return dat<EOL><DEDENT>if spectrum == "<STR_LIT>":<EOL><INDENT>order = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>']<EOL><DEDENT>elif spectrum == "<STR_LIT>":<EOL><INDENT>order = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>']<EOL><DEDENT>elif spectrum == '<STR_LIT>':<EOL><INDENT>order = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>']<EOL><DEDENT>elif spectrum == "<STR_LIT>":<EOL><INDENT>order = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>']<EOL><DEDENT>else:  <EOL><INDENT>order = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>']<EOL><DEDENT>index = i % len(order)<EOL>if reverse:<EOL><INDENT>index = len(order) - index - <NUM_LIT:1><EOL><DEDENT>rgb = CD[order[index]]<EOL>gray_value = <NUM_LIT> * rgb[<NUM_LIT:0>] + <NUM_LIT> * rgb[<NUM_LIT:1>] + <NUM_LIT> * rgb[<NUM_LIT:2>]  <EOL>if gray:<EOL><INDENT>return gray_value, gray_value, gray_value<EOL><DEDENT>return rgb<EOL>
Access a modular list of colors for plotting.
Defines colours using rgb.

:param i: (int), index to access color
:param gray: (bool), if true then color is return as grayscale value
:param spectrum: (str), choice of spectrum to use
:param reverse: (bool), reverses the color order
:param kwargs:
:return: