44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <rapidjson/document.h>
|
|
|
|
#include <string>
|
|
#include <unordered_map>
|
|
#include <variant>
|
|
#include <vector>
|
|
|
|
#include "DAG.hpp"
|
|
#include "Defines.hpp"
|
|
#include "daggy/executors/task/TaskExecutor.hpp"
|
|
#include "daggy/loggers/dag_run/DAGRunLogger.hpp"
|
|
|
|
namespace daggy {
|
|
using TaskDAG = DAG<std::string, Task>;
|
|
|
|
std::string globalSub(std::string string, const std::string &pattern,
|
|
const std::string &replacement);
|
|
|
|
std::unordered_set<std::string> matchingParameters(
|
|
const std::vector<std::string> &input, const ConfigValues &values);
|
|
|
|
std::vector<std::unordered_map<std::string, std::string>>
|
|
generateCartesianValues(const ConfigValues &values);
|
|
|
|
std::vector<Command> interpolateValues(const std::vector<std::string> &raw,
|
|
const ConfigValues &values);
|
|
|
|
TaskSet expandTaskSet(const TaskSet &tasks,
|
|
executors::task::TaskExecutor &executor,
|
|
const ConfigValues &interpolatedValues = {});
|
|
|
|
TaskDAG buildDAGFromTasks(
|
|
const TaskSet &tasks,
|
|
const std::unordered_map<std::string,
|
|
std::vector<loggers::dag_run::StateUpdateRecord>>
|
|
&updates = {});
|
|
|
|
void updateDAGFromTasks(TaskDAG &dag, const TaskSet &tasks);
|
|
|
|
std::ostream &operator<<(std::ostream &os, const TimePoint &tp);
|
|
} // namespace daggy
|