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.