Loading Tasks#
Graph generation involves creating tasks for each kind. Kinds are ordered
to satisfy kind-dependencies
, and then the Loader specified in
kind.yml
is used to obtain the initial set of tasks for that kind.
In short, loaders are responsible for turning the kind.yml
file into an
initial set of tasks that can then be passed down into the transforms.
What is a Loader?#
Loaders are Python functions with the following signature:
def loader(cls, kind, path, config, parameters, loaded_tasks):
pass
kind
is the name of the kind.
path
is the path to the configuration directory for the kind. This
can be used to load extra data, templates, etc.
config
is a dict containing the contents of the kind.yml
file.
parameters
give details on which to base the task generation. See
Parameters for details.
loaded_tasks
contains all tasks that have already been loaded (which is
guaranteed to contain all kinds of tasks listed in the kind-dependencies
key).
The return value is a list of inputs to the transforms listed in the kind’s
transforms
property. The specific format for the input depends on the first
transform - whatever it expects.
Available Loaders#
Taskgraph provides two loaders, although in truth they are virtually identical:
The Transform Loader
is a barebones loader.
The Default Loader
does everything that the
Transform Loader does, and additionally ensures that the
Run
and Task
transforms are used on every task it loads.
Projects may optionally provide their own loaders that support different behavior.