File: task.py

package info (click to toggle)
bootstrap-vz 0.9.11%2B20180121git-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,244 kB
  • sloc: python: 8,800; sh: 813; makefile: 16
file content (36 lines) | stat: -rw-r--r-- 1,046 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36


class Task(object):
    """The task class represents a task that can be run.
    It is merely a wrapper for the run function and should never be instantiated.
    """
    # The phase this task is located in.
    phase = None
    # List of tasks that should run before this task is run
    predecessors = []
    # List of tasks that should run after this task has run
    successors = []

    class __metaclass__(type):
        """Metaclass to control how the class is coerced into a string
        """
        def __repr__(cls):
            """
            :return str: The full module path to the Task
            """
            return cls.__module__ + '.' + cls.__name__

        def __str__(cls):
            """
            :return: The full module path to the Task
            :rtype: str
            """
            return repr(cls)

    @classmethod
    def run(cls, info):
        """The run function, all work is done inside this function

        :param BootstrapInformation info: The bootstrap info object.
        """
        pass