summaryrefslogtreecommitdiff
path: root/lib/param/bool_.py
blob: 394dea649fe8d2719825ed8bff5d2ee3f3f8afac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""Defines the bool param type"""
from param import Param
import re
class Bool(Param):
    """Defines the bool param type
    Args:
        value: the value of the bool (string or python bool)
        classname: the name of the class to which the param belongs
    """
    def __init__(self, value, classname=""):
        super(Bool, self).__init__(classname=classname)
        if value:
            self.value = self._bool_correct(value)
        else:
            self.value = False
    def _bool_correct(self, b):
        if isinstance(b, str) or isinstance(b, unicode):
            if re.match(r'true', b, re.IGNORECASE):
                return True
            elif re.match(r'false', b, re.IGNORECASE):
                return False
        elif isinstance(b, bool):
            return b
        self.err_warn("Not a bool: %s" % str(b))