12 # Attribute can be modified by the user
14 # Attribute is not modifiable by the user
16 # Attribute is an access credential
19 class Attribute(object):
20 def __init__(self, name, help, type = Types.String,
21 flags = Flags.NoFlags, default_value = None):
26 self._default = self._value = default_value
34 return self._default_value
48 def has_flag(self, flag):
49 return (self._flags & flag) == flag
54 def set_value(self, value):
55 if self.is_valid_value(value):
59 raise ValueError("Invalid value %s for attribute %s" %
60 (str(value), self.name))
62 value = property(get_value, set_value)
64 def is_valid_value(self, value):
65 """ Attribute subclasses will override this method to add
66 adequate validation"""