StepInfo objects¶
Note
This feature was introduced in StepUp 1.3.0.
The step()
function always return
an instance of StepInfo
.
This object holds arguments used to define the step,
which may be useful for creating follow-up steps.
All API functions that create a step by calling the step()
function
also return the StepInfo
object.
Especially for higher-level API functions that create more advanced steps,
such as the ones in StepUp RepRep,
it can be convenient to access the paths constructed inside the API function
instead of reconstructing them manually in your plan.py
script.
The StepInfo
object has inp
, env
, out
and vol
attributes,
corresponding to the arguments passed into the step()
function.
The main difference to the arguments passed in,
is that environment variables are substituted in the paths.
In addition, StepInfo
has three methods: filter_inp()
, filter_out()
and filter_vol()
,
which can be used to get a subset of paths.
These functions take the same arguments as those of the glob()
function
and also return an NGlobMulti
instance.
Note that the StepInfo
object will only contain information known at the time the step is defined.
Amended information (inputs, outputs, …) cannot be retrieved from StepInfo
objects.
Also note that relative paths in inp
, out
and vol
are relative to the working directory.
Example¶
Let’s assume you are using a library with an API function create_fancy_pdf
,
which takes a source directory as input and outputs a PDF file.
(This is a hypothetical example for illustrative purposes.)
You can find the full list of inputs and the output as follows:
from stepup.core.api import static, copy
from stepup.fancy.api import create_fancy_pdf # hypothetical API function
# Plan the creation of the fancy PDF
static("source/")
glob("source/**", _defer=True)
info = create_fancy_pdf("source/")
# Copy files related to the fancy PDF, e.g. to publish them or back up files.
mkdir("../public")
copy(info.filter_out("*.pdf").single, "../public/")
mkdir("../backup")
for path_inp in info.inp:
copy(path_inp, "../backup")