3 from functools
import wraps
4 from termcolor
import *
5 from pyfiglet
import figlet_format
7 grey
= lambda x
: colored(x
, 'grey', attrs
=['bold'])
8 red
= lambda x
: colored(x
, 'red', attrs
=['bold'])
9 green
= lambda x
: colored(x
, 'green', attrs
=['bold'])
10 yellow
= lambda x
: colored(x
, 'yellow', attrs
=['bold'])
11 blue
= lambda x
: colored(x
, 'blue', attrs
=['bold'])
12 magenta
= lambda x
: colored(x
, 'magenta', attrs
=['bold'])
13 cyan
= lambda x
: colored(x
, 'cyan', attrs
=['bold'])
14 white
= lambda x
: colored(x
, 'white', attrs
=['bold'])
16 on_grey
= lambda x
: colored(x
, 'white', 'on_grey', attrs
=['bold'])
17 on_red
= lambda x
: colored(x
, 'white', 'on_red', attrs
=['bold'])
18 on_green
= lambda x
: colored(x
, 'white', 'on_green', attrs
=['bold'])
19 on_yellow
= lambda x
: colored(x
, 'white', 'on_yellow', attrs
=['bold'])
20 on_blue
= lambda x
: colored(x
, 'white', 'on_blue', attrs
=['bold'])
21 on_magenta
= lambda x
: colored(x
, 'white', 'on_magenta', attrs
=['bold'])
22 on_cyan
= lambda x
: colored(x
, 'white', 'on_cyan', attrs
=['bold'])
23 on_white
= lambda x
: colored(x
, 'white', 'on_white', attrs
=['bold'])
25 colors_shuffle
= [grey
, red
, green
, yellow
, blue
, magenta
, cyan
]
26 background_shuffle
= [
34 cyc
= itertools
.cycle(colors_shuffle
[1:])
39 Print a string with ordered color with each character
41 c
= [colors_shuffle
[i
% 7](s
[i
]) for i
in xrange(len(s
))]
42 return reduce(lambda x
, y
: x
+ y
, c
)
45 def random_rainbow(s
):
47 Print a string with random color with each character
49 c
= [random
.choice(colors_shuffle
)(i
) for i
in s
]
50 return reduce(lambda x
, y
: x
+ y
, c
)
62 cache
[args
] = func(*args
)
70 Cycle the colors_shuffle
79 fi
= figlet_format(text
, font
='doom')
81 [next(cyc
)(i
) for i
in fi
.split('\n')]