2013-06-23 15:26:08 +02:00
|
|
|
|
|
|
|
|
2013-06-23 22:12:29 +02:00
|
|
|
class Phase(object):
|
2016-06-04 11:35:59 +02:00
|
|
|
"""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
|
|
|
|
"""
|
2014-03-23 19:37:25 +01:00
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
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
|
2013-06-23 15:26:08 +02:00
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
def pos(self):
|
|
|
|
"""Gets the position of the phase
|
2014-03-23 19:37:25 +01:00
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
: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)
|
2013-06-23 17:54:25 +02:00
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
def __cmp__(self, other):
|
|
|
|
"""Compares the phase order in relation to the other phases
|
|
|
|
:return int:
|
|
|
|
"""
|
|
|
|
return self.pos() - other.pos()
|
2013-06-23 15:26:08 +02:00
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
def __str__(self):
|
|
|
|
"""
|
|
|
|
:return: String representation of the phase
|
|
|
|
:rtype: str
|
|
|
|
"""
|
|
|
|
return self.name
|