class Phase(object): """The Phase class represents a phase a task may be in. It has no function other than to act as an anchor in the task graph. All phases are instantiated in common.phases """ def __init__(self, name, description): # The name of the phase self.name = name # The description of the phase (currently not used anywhere) self.description = description def pos(self): """Gets the position of the phase :return: The positional index of the phase in relation to the other phases :rtype: int """ from bootstrapvz.common.phases import order return next(i for i, phase in enumerate(order) if phase is self) def __cmp__(self, other): """Compares the phase order in relation to the other phases :return int: """ return self.pos() - other.pos() def __str__(self): """ :return: String representation of the phase :rtype: str """ return self.name