'Retrieves a boolean version of one of the bits based on a name from the
_map
:param key:
The unicode string of one of the bit names
:raises:
ValueError - when _map is not set or the key name is invalid
:return:
A boolean if the bit is set'

def __getitem__(self, key):

    is_int = isinstance(key, int_types)
    if (not is_int):
        if (not isinstance(self._map, dict)):
            raise ValueError(unwrap(u'\n                                                                                %s._map    has    not    been    defined\n                                                                                ', type_name(self)))
        if (key not in self._reverse_map):
            raise ValueError(unwrap(u'\n                                                                                %s._map    does    not    contain    an    entry    for    "%s"\n                                                                                ', type_name(self), key))
    if (self._native is None):
        self.native
    if (self._map is None):
        if (len(self._native) >= (key + 1)):
            return bool(self._native[key])
        return False
    if is_int:
        key = self._map.get(key, key)
    return (key in self._native)
