Utils

job_or_filename #

Take a filename, or a job.

Return (Path(filename), dependency_for_that_file). The dependency might be a Job that creates the file, or a FileInvariant

assert_uniqueness_of_object #

assert that a given object of type(object) with a .name attribute is unique within this ppg.global_pipegraph lifetime.

flatten_jobs #

Take an arbitrary deeply nested list of lists of jobs and return just the jobs

pretty_log_errors #

A decorator to capture exceptions and print really pretty tracebacks, for use outside of jobs.

wrap_for_function_invariant #

When you need to pass a function + parameters which ends up in a FunctionInvariant.

Think a job with this function: lambda: some_func(filename)

This marks it so that the automatically generated FunctionInvariant tracks ‘somefunc’, not the lambda.