

def translate_color(m, use_hex_argb=False, decode=False):
    'Translate the match object to a color w/ alpha.'
    color = None
    alpha = None
    alpha_dec = None
    if m.group('hex_compressed'):
        if decode:
            content = m.group('hex_compressed_content').decode('utf-8')
        else:
            content = m.group('hex_compressed_content')
        color = ('#%02x%02x%02x' % (int((content[0:1] * 2), 16), int((content[1:2] * 2), 16), int((content[2:3] * 2), 16)))
    elif (m.group('hexa_compressed') and use_hex_argb):
        if decode:
            content = m.group('hexa_compressed_content').decode('utf-8')
        else:
            content = m.group('hexa_compressed_content')
        color = ('#%02x%02x%02x' % (int((content[1:2] * 2), 16), int((content[2:3] * 2), 16), int((content[3:] * 2), 16)))
        alpha = content[0:1]
        alpha_dec = fmt_float((float(int(alpha, 16)) / 255.0), 3)
    elif m.group('hexa_compressed'):
        if decode:
            content = m.group('hexa_compressed_content').decode('utf-8')
        else:
            content = m.group('hexa_compressed_content')
        color = ('#%02x%02x%02x' % (int((content[0:1] * 2), 16), int((content[1:2] * 2), 16), int((content[2:3] * 2), 16)))
        alpha = content[3:]
        alpha_dec = fmt_float((float(int(alpha, 16)) / 255.0), 3)
    elif m.group('hex'):
        if decode:
            content = m.group('hex_content').decode('utf-8')
        else:
            content = m.group('hex_content')
        if (len(content) == 6):
            color = ('#%02x%02x%02x' % (int(content[0:2], 16), int(content[2:4], 16), int(content[4:6], 16)))
        else:
            color = ('#%02x%02x%02x' % (int((content[0:1] * 2), 16), int((content[1:2] * 2), 16), int((content[2:3] * 2), 16)))
    elif (m.group('hexa') and use_hex_argb):
        if decode:
            content = m.group('hexa_content').decode('utf-8')
        else:
            content = m.group('hexa_content')
        if (len(content) == 8):
            color = ('#%02x%02x%02x' % (int(content[2:4], 16), int(content[4:6], 16), int(content[6:], 16)))
            alpha = content[0:2]
            alpha_dec = fmt_float((float(int(alpha, 16)) / 255.0), 3)
        else:
            color = ('#%02x%02x%02x' % (int((content[1:2] * 2), 16), int((content[2:3] * 2), 16), int((content[3:] * 2), 16)))
            alpha = content[0:1]
            alpha_dec = fmt_float((float(int(alpha, 16)) / 255.0), 3)
    elif m.group('hexa'):
        if decode:
            content = m.group('hexa_content').decode('utf-8')
        else:
            content = m.group('hexa_content')
        if (len(content) == 8):
            color = ('#%02x%02x%02x' % (int(content[0:2], 16), int(content[2:4], 16), int(content[4:6], 16)))
            alpha = content[6:]
            alpha_dec = fmt_float((float(int(alpha, 16)) / 255.0), 3)
        else:
            color = ('#%02x%02x%02x' % (int((content[0:1] * 2), 16), int((content[1:2] * 2), 16), int((content[2:3] * 2), 16)))
            alpha = content[3:]
            alpha_dec = fmt_float((float(int(alpha, 16)) / 255.0), 3)
    elif m.group('rgb'):
        if decode:
            content = [x.strip() for x in m.group('rgb_content').decode('utf-8').split(',')]
        else:
            content = [x.strip() for x in m.group('rgb_content').split(',')]
        if content[0].endswith('%'):
            r = round_int((clamp(float(content[0].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
            g = round_int((clamp(float(content[1].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
            b = round_int((clamp(float(content[2].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
            color = ('#%02x%02x%02x' % (r, g, b))
        else:
            color = ('#%02x%02x%02x' % (clamp(round_int(float(content[0])), 0, 255), clamp(round_int(float(content[1])), 0, 255), clamp(round_int(float(content[2])), 0, 255)))
    elif m.group('rgba'):
        if decode:
            content = [x.strip() for x in m.group('rgba_content').decode('utf-8').split(',')]
        else:
            content = [x.strip() for x in m.group('rgba_content').split(',')]
        if content[0].endswith('%'):
            r = round_int((clamp(float(content[0].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
            g = round_int((clamp(float(content[1].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
            b = round_int((clamp(float(content[2].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
            color = ('#%02x%02x%02x' % (r, g, b))
        else:
            color = ('#%02x%02x%02x' % (clamp(round_int(float(content[0])), 0, 255), clamp(round_int(float(content[1])), 0, 255), clamp(round_int(float(content[2])), 0, 255)))
        if content[3].endswith('%'):
            (alpha, alpha_dec) = alpha_percent_normalize(content[3])
        else:
            (alpha, alpha_dec) = alpha_dec_normalize(content[3])
    elif m.group('gray'):
        if decode:
            content = m.group('gray_content').decode('utf-8')
        else:
            content = m.group('gray_content')
        if content.endswith('%'):
            g = round_int((clamp(float(content.strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
        else:
            g = clamp(round_int(float(content)), 0, 255)
        color = ('#%02x%02x%02x' % (g, g, g))
    elif m.group('graya'):
        if decode:
            content = [x.strip() for x in m.group('graya_content').decode('utf-8').split(',')]
        else:
            content = [x.strip() for x in m.group('graya_content').split(',')]
        if content[0].endswith('%'):
            g = round_int((clamp(float(content[0].strip('%')), 0.0, 255.0) * (255.0 / 100.0)))
        else:
            g = clamp(round_int(float(content[0])), 0, 255)
        color = ('#%02x%02x%02x' % (g, g, g))
        if content[1].endswith('%'):
            (alpha, alpha_dec) = alpha_percent_normalize(content[1])
        else:
            (alpha, alpha_dec) = alpha_dec_normalize(content[1])
    elif m.group('hsl'):
        if decode:
            content = [x.strip() for x in m.group('hsl_content').decode('utf-8').split(',')]
        else:
            content = [color.strip() for x in m.group('hsl_content').split(',')]
        rgba = RGBA()
        hue = float(content[0])
        if ((hue < 0.0) or (hue > 360.0)):
            hue = (hue % 360.0)
        h = (hue / 360.0)
        s = (clamp(float(content[1].strip('%')), 0.0, 100.0) / 100.0)
        l = (clamp(float(content[2].strip('%')), 0.0, 100.0) / 100.0)
        rgba.fromhls(h, l, s)
        color = rgba.get_rgb()
    elif m.group('hsla'):
        if decode:
            content = [x.strip() for x in m.group('hsla_content').decode('utf-8').split(',')]
        else:
            content = [x.strip() for x in m.group('hsla_content').split(',')]
        rgba = RGBA()
        hue = float(content[0])
        if ((hue < 0.0) or (hue > 360.0)):
            hue = (hue % 360.0)
        h = (hue / 360.0)
        s = (clamp(float(content[1].strip('%')), 0.0, 100.0) / 100.0)
        l = (clamp(float(content[2].strip('%')), 0.0, 100.0) / 100.0)
        rgba.fromhls(h, l, s)
        color = rgba.get_rgb()
        if content[3].endswith('%'):
            (alpha, alpha_dec) = alpha_percent_normalize(content[3])
        else:
            (alpha, alpha_dec) = alpha_dec_normalize(content[3])
    elif m.group('hwb'):
        if decode:
            content = [x.strip() for x in m.group('hwb_content').decode('utf-8').split(',')]
        else:
            content = [x.strip() for x in m.group('hwb_content').split(',')]
        rgba = RGBA()
        hue = float(content[0])
        if ((hue < 0.0) or (hue > 360.0)):
            hue = (hue % 360.0)
        h = (hue / 360.0)
        w = (clamp(float(content[1].strip('%')), 0.0, 100.0) / 100.0)
        b = (clamp(float(content[2].strip('%')), 0.0, 100.0) / 100.0)
        rgba.fromhwb(h, w, b)
        color = rgba.get_rgb()
    elif m.group('hwba'):
        if decode:
            content = [x.strip() for x in m.group('hwba_content').decode('utf-8').split(',')]
        else:
            content = [x.strip() for x in m.group('hwba_content').split(',')]
        rgba = RGBA()
        hue = float(content[0])
        if ((hue < 0.0) or (hue > 360.0)):
            hue = (hue % 360.0)
        h = (hue / 360.0)
        w = (clamp(float(content[1].strip('%')), 0.0, 100.0) / 100.0)
        b = (clamp(float(content[2].strip('%')), 0.0, 100.0) / 100.0)
        rgba.fromhwb(h, w, b)
        color = rgba.get_rgb()
        if content[3].endswith('%'):
            (alpha, alpha_dec) = alpha_percent_normalize(content[3])
        else:
            (alpha, alpha_dec) = alpha_dec_normalize(content[3])
    elif m.group('webcolors'):
        try:
            if decode:
                color = csscolors.name2hex(m.group('webcolors').decode('utf-8')).lower()
            else:
                color = csscolors.name2hex(m.group('webcolors')).lower()
        except:
            pass
    return (color, alpha, alpha_dec)

dataset/ETHPy150Open facelessuser/ColorHelper/color_helper_util.py translate_color/VarMisuse@1973/2463 `x`->`color`