### Attribute Types
class Types:
+ """ Allowed types for the Attribute value
+ """
String = "STRING"
Bool = "BOOL"
Enumerate = "ENUM"
### Attribute Flags
class Flags:
- """ Differents flags to characterize an attribute
-
+ """ Flags to characterize the scope of an Attribute
"""
# Attribute value can not be read (it is hidden to the user)
NoRead = 1 # 1
class Attribute(object):
+ """ An Attribute exposes a configuration parameter of a resource
"""
- .. class:: Class Args :
- An Attribute reflects a configuration parameter for
- a particular resource. Attributes might be read only or
- not.
-
- :param name: Name of the attribute
+ def __init__(self, name, help, type = Types.String,
+ flags = None, default = None, allowed = None,
+ range = None, set_hook = None):
+ """
+ :param name: Name of the Attribute
:type name: str
- :param help: Attribute description
+ :param help: Description of the Attribute
:type help: str
- :param type: The type expected for the attribute value.
- Should be one of Attribute.Types .
+ :param type: The type expected for the Attribute value.
+ Should be one of Attribute.Types
:type type: str
- :param flags: Defines attribute behavior (i.e. whether it is read-only,
- read and write, etc). This parameter should take its values from
- Attribute.Flags. Flags values can be bitwised.
+ :param flags: Defines Attribute behavior (i.e. whether it is read-only,
+ read and write, etc). This parameter must take its values from
+ Attribute.Flags. Flags values can be bitwised
:type flags: hex
- :param default: Default value of the attribute
- :type default: depends on the type of attribute
+ :param default: Default value for the Attribute
+ :type default: Depends on the type of Attribute
- :param allowed: List of values that the attribute can take.
- This parameter is only meaningful for Enumerate type attributes.
+ :param allowed: List of values that the Attribute can take.
+ This parameter is only meaningful for Enumerate type Attributes
:type allowed: list
:param range: (max, min) tuple with range of possible values for
- attributes.
+ Attributes.
This parameter is only meaningful for Integer or Double type
- attributes.
+ Attributes
:type range: (int, int) or (float, float)
:param set_hook: Function that will be executed whenever a new
- value is set for the attribute.
+ value is set for the Attribute.
:type set_hook: function
"""
- def __init__(self, name, help, type = Types.String,
- flags = None, default = None, allowed = None,
- range = None, set_hook = None):
self._name = name
self._help = help
self._type = type
@property
def name(self):
- """ Returns the name of the attribute """
+ """ Returns the name of the Attribute """
return self._name
@property
def default(self):
- """ Returns the default value of the attribute """
+ """ Returns the default value of the Attribute """
return self._default
@property
def type(self):
- """ Returns the type of the attribute """
+ """ Returns the type of the Attribute """
return self._type
@property
def help(self):
- """ Returns the help of the attribute """
+ """ Returns the description of the Attribute """
return self._help
@property
def flags(self):
- """ Returns the flags of the attribute """
+ """ Returns the flags of the Attribute """
return self._flags
@property
def allowed(self):
- """ Returns the allowed value for this attribute """
+ """ Returns the set of allowed values for the Attribute """
return self._allowed
@property
def range(self):
- """ Returns the range of the attribute """
+ """ Returns the range of allowed numerical values for the Attribute """
return self._range
def has_flag(self, flag):
- """ Returns true if the attribute has the flag 'flag'
+ """ Returns True if the Attribute has the flag 'flag'
:param flag: Flag to be checked
:type flag: Flags
return (self._flags & flag) == flag
def get_value(self):
- """ Returns the value of the attribute """
+ """ Returns the value of the Attribute """
return self._value
def set_value(self, value):
- """ Change the value of the attribute after checking the type """
+ """ Configure a new value for the Attribute """
valid = True
if self.type == Types.Enumerate:
@property
def has_changed(self):
- """ Returns true if the value has changed from the default """
+ """ Returns True if the value has changed from the default """
return self.value != self.default
+