Task ==== The simplest form of tasks are functions that just run Python code, and the easiest way to define them is by using the :func:`quickie.task` decorator. .. code-block:: python from quickie import task @task def hello(): print("Hello, World!") This will return a :class:`quickie.tasks.Task` instance, equivalent to: .. code-block:: python from quickie import Task class Task(Task): def run(self): print("Hello, World!") The rest of the task classes, such as ``Script`` and ``Command`` are built on top of this class, and simply replace the ``run`` method with a different implementation. Function based vs Class based tasks ----------------------------------- Defining tasks as functions is usually simpler and more concise, but defining them as classes allows for more customization and control.