Task

The simplest form of tasks are functions that just run Python code, and the easiest way to define them is by using the quickie.task() decorator.

from quickie import task

@task
def hello():
    print("Hello, World!")

This will return a quickie.tasks.Task instance, equivalent to:

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.