summaryrefslogtreecommitdiff
path: root/lib/param/color.py
blob: 1c62955118ff72c5566acecb9ea956d134bad81a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""Defines the color param type"""
from param import Param
import re
class Color(Param):
    """Defines the color param type
       Args:
           value: the value of the color (string)
           classname: the name of the class to which the param belongs
    """
    def __init__(self, value, classname=""):
        super(Color, self).__init__(classname=classname)
        try:
            self.value = self._color_sanitize(value)
        except Exception as e:
            self.err_warn("Unable to sanitize the color: %s" % str(value))
            self.err_warn(str(e))
    def _color_sanitize(self, s):
        if s == "":
            return "transparent"
        if re.match('(rgba?\([0-9]+,[0-9]+,[0-9]+\))|([a-zA-Z]+)|(\#[A-Ha-h0-9]+)', s):
            return s.replace(' ', '')
        else:
            self.err_warn("Not a color: {}\n".format(s))