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):
58 raise ValueError("Invalid value %s for attribute %s" %
59 (str(value), self.name))
61 value = property(get_value, set_value)
63 def is_valid_value(self, value):
64 """ Attribute subclasses will override this method to add
65 adequate validation"""