Before we dive into the concepts, let's clarify the terminology we'll be using
Directed Acyclic Graph (DAG)
A directed acyclic graph is a computer science/mathematics term for representing the world with "nodes" and "edges", where "edges" only flow in one direction. It is called a graph because it can be drawn and visualized.
The organization of functions and dependencies. This is a DAG -- it's directed (one function is running before the other), acyclic, (there are no cycles, i.e., no function runs before itself), and a graph (it is easily naturally represented by nodes and edges) and can be represented visually.
Transform Function, or simply Function
A python function used to represent a Hamilton transform -- it can compile to one (in the standard case) or many (with the use of decorators) transforms. See writing functions for more details.
A step in the dataflow DAG representing a computation -- usually 1:1 with functions but decorators break that pattern -- in which case multiple transforms trace back to a single function.
Synonymous with Transform. A node in the DAG, is equivalent to a transform step in the DAG. We just sometimes aren't consistent with our terminology.
Hamilton Driver
A specific class written to enable execution of the DAG with certain parameters. This will be your main interface with your Hamilton code. See drivers for more detail.
"driver" script/code
Code that you write to tell Hamilton what the DAG is, what outputs you want, and where the inputs come from.
Data that dictates the way the DAG is constructed. See parametrizing the dag for more details.
A python function that modifies another python function in some way. Used in Hamilton to compile functions to sets of transforms. See decorators for more detail.
Copy link