def rgba(self, *args):
if len(args) == <NUM_LIT:4>:<EOL><INDENT>try:<EOL><INDENT>falpha = float(list(args)[<NUM_LIT:3>])<EOL>if falpha > <NUM_LIT:1>:<EOL><INDENT>args = args[:<NUM_LIT:3>]<EOL><DEDENT>if falpha == <NUM_LIT:0>:<EOL><INDENT>values = self._rgbatohex_raw(list(map(int, args)))<EOL>return "<STR_LIT>" % '<STR_LIT:U+002C>'.join([str(a) for a in values])<EOL><DEDENT>return self._rgbatohex(list(map(int, args)))<EOL><DEDENT>except ValueError:<EOL><INDENT>if all((a for a in args<EOL>if a[-<NUM_LIT:1>] == '<STR_LIT:%>' and <NUM_LIT:100> >= int(a[:-<NUM_LIT:1>]) >= <NUM_LIT:0>)):<EOL><INDENT>alpha = list(args)[<NUM_LIT:3>]<EOL>if alpha[-<NUM_LIT:1>] == '<STR_LIT:%>' and float(alpha[:-<NUM_LIT:1>]) == <NUM_LIT:0>:<EOL><INDENT>values = self._rgbatohex_raw(<EOL>[int(a[:-<NUM_LIT:1>]) * <NUM_LIT:255> / <NUM_LIT> for a in args])<EOL>return "<STR_LIT>" % '<STR_LIT:U+002C>'.join([str(a) for a in values])<EOL><DEDENT>return self._rgbatohex(<EOL>[int(a[:-<NUM_LIT:1>]) * <NUM_LIT:255> / <NUM_LIT> for a in args])<EOL><DEDENT><DEDENT><DEDENT>raise ValueError('<STR_LIT>')<EOL>
Translate rgba(...) to color string
        raises:
            ValueError
        returns:
            str