dataflow#
-
class dataflow#
Main dataflow interface.
Public Functions
-
inline dataflow()#
Default constructor.
-
template<typename Kwd1, typename Kwd2, typename Kwd3>
dataflow(Kwd1 &&kwarg1, Kwd2 &&kwarg2, Kwd3 &&kwarg3)# Constructor with (up to) three keyword arguments.
Each keyword argument should be one of the following:
queryosity::multithread::enable(unsigned int)queryosity::multithread::disable()queryosity::dataset::head(unsigned int)queryosity::dataset::weight(float)
-
template<typename DS>
auto load(dataset::input<DS> &&in) -> dataflow::input<DS># Load a dataset input.
Warning
A dataset should not be loaded in more than once. Doing so incurs an I/O overhead at best, and a potential thread-unsafe data race at worst(as an entry will be read out multiple times concurrently).
- Template Parameters:
DS –
dataset::reader<Self>implementation.Args... – Constructor arguments.
- Returns:
Loaded dataset.
-
template<typename DS, typename Val>
auto read(dataset::input<DS> in, dataset::column<Val> const &col)# Read a column from an input dataset.
- Attention
A dataset should be loaded-in once. Use this method only if you are interested in the requested column, as other columns will not be readable.
- Template Parameters:
DS –
dataset::reader<Self>implementation.Val – Column data type.
- Parameters:
Column – [in] name.
- Returns:
Column read from the loaded dataset.
-
template<typename DS, typename ...Vals>
auto read(dataset::input<DS> in, dataset::column<Vals> const&... cols)# Read columns from an input dataset.
- Attention
A dataset should be loaded-in once. Use this method only if you are interested in the requested columns, as other columns will not be readable.
- Template Parameters:
DS –
dataset::reader<Self>implementation.Vals – Column data types.
- Parameters:
cols – [in] Column names.
- Returns:
Columns read from the loaded dataset.
-
template<typename Val>
auto define(column::constant<Val> const &cnst) -> lazy<column::valued<Val>># Define a constant column.
- Template Parameters:
Val – Column data type.
- Parameters:
cnst – [in] Constant value.
-
template<typename Fn>
auto define(column::expression<Fn> const &expr) -> todo<column::evaluator<column::equation_t<Fn>>># Define a column using an expression.
- Template Parameters:
Fn – Callable type.
- Parameters:
expr – [in] C++ function, functor, lambda, or any other callable.
- Returns:
Evaluator.
-
template<typename Def>
auto define(column::definition<Def> const &defn) -> todo<column::evaluator<Def>># Define a column using an expression.
- Template Parameters:
Def – Custom definition.
- Parameters:
defn – [in] Definition type and constructor arguments.
- Returns:
Evaluator.
-
template<typename Col>
auto filter(lazy<Col> const &column) -> lazy<selection::node># Initiate a cutflow.
- Template Parameters:
Col – Column type.
- Parameters:
column – [in] Input column used as cut decision.
- Returns:
Lazy selection.
-
template<typename Col>
auto weight(lazy<Col> const &column) -> lazy<selection::node># Initiate a cutflow.
- Template Parameters:
Col – Column type.
- Parameters:
column – [in] Input column used as weight decision.
- Returns:
Lazy selection.
-
template<typename Lzy>
auto filter(varied<Lzy> const &col)# Initiate a cutflow.
- Template Parameters:
Col – Lazy varied column.
- Parameters:
column – [in] Input column used as cut decision.
- Returns:
Lazy varied selection.
-
template<typename Lzy>
auto weight(varied<Lzy> const &col)# Initiate a cutflow.
- Template Parameters:
Col – Lazy varied column.
- Parameters:
column – [in] Input column used as weight decision.
- Returns:
Lazy varied selection.
-
template<typename Fn, typename ...Cols>
auto filter(column::constant<Fn> const &cnst) -> lazy<selection::node># Initiate a cutflow.
- Template Parameters:
Fn – C++ Callable object.
Cols – Column types.
- Parameters:
Input – [in] (varied) columns used to evaluate cut decision.
- Returns:
Lazy (varied) selection.
-
template<typename Val>
auto weight(column::constant<Val> const &expr) -> lazy<selection::node># Initiate a cutflow.
- Template Parameters:
Fn – C++ Callable object.
Cols – Column types.
- Parameters:
Input – [in] (varied) columns used to evaluate cut decision.
- Returns:
Lazy (varied) selection.
-
template<typename Fn>
auto filter(column::expression<Fn> const &expr) -> todo<selection::applicator<selection::cut, column::equation_t<Fn>>># Initiate a cutflow.
- Template Parameters:
Fn – C++ Callable object.
Cols – Column types.
- Parameters:
Input – [in] (varied) columns used to evaluate cut decision.
- Returns:
Lazy (varied) selection.
-
template<typename Fn>
auto weight(column::expression<Fn> const &expr) -> todo<selection::applicator<selection::weight, column::equation_t<Fn>>># Initiate a cutflow.
- Template Parameters:
Fn – C++ Callable object.
Cols – Column types.
- Parameters:
Input – [in] (varied) columns used to evaluate weight decision.
- Returns:
Lazy (varied) selection.
-
template<typename Def>
auto filter(column::definition<Def> const &defn) -> todo<selection::applicator<selection::cut, Def>># Initiate a cutflow.
- Template Parameters:
Def – Column definition type.
Cols – Column types.
- Parameters:
Input – [in] (varied) columns used to evaluate cut decision.
- Returns:
Lazy selection.
-
template<typename Def>
auto weight(column::definition<Def> const &defn) -> todo<selection::applicator<selection::weight, Def>># Initiate a cutflow.
- Template Parameters:
Def – Column definition type.
Cols – Column types.
- Parameters:
Input – [in] (varied) columns used to evaluate weight decision.
- Returns:
Lazy (varied) selection.
-
template<typename Qry>
auto get(query::output<Qry> const &output) -> todo<query::booker<Qry>># Plan a query.
- Template Parameters:
Qry – Concrete queryosity::query::definition implementation.
- Parameters:
output – [in] Query output (constructor arguments).
- Returns:
queryosity::todo query booker.
-
template<typename Val>
auto vary(column::constant<Val> const &cnst, std::map<std::string, Val> vars) -> varied<lazy<column::valued<Val>>># Vary a column constant.
- Template Parameters:
Val – Constant value type.
- Parameters:
cnst – [in] Column constant.
vars – [in] Map of variation to value.
- Returns:
Varied lazy column.
-
template<typename Fn>
auto vary(column::expression<Fn> const &expr, std::map<std::string, typename column::expression<Fn>::function_type> const &vars) -> varied<todo<column::evaluator<column::equation_t<Fn>>>># Vary a column expression.
- Template Parameters:
Fn – Expression function type.
- Parameters:
expr – [in] Column expression.
vars – [in] Map of variation to expression.
- Returns:
Varied todo column evaluator.
-
template<typename Def>
auto vary(column::definition<Def> const &defn, std::map<std::string, column::definition<Def>> const &vars) -> varied<todo<column::evaluator<Def>>># Vary a column definition.
- Template Parameters:
Def – Definition type.
- Parameters:
defn – [in] Column definition.
vars – [in] Map of variation to definition.
- Returns:
Varied todo column evaluator.
-
template<typename Col>
auto vary(column::nominal<Col> const &nom, std::map<std::string, column::variation<column::value_t<Col>>> const &vars) -> varied<lazy<column::valued<column::value_t<Col>>>># Vary a column.
- Template Parameters:
Col – Column type.
- Parameters:
nom – [in] Nominal lazy column.
vars – [in] Map of variation to lazy column.
- Returns:
Varied lazy column.
-
template<typename DS>
class input#
-
class node#
Subclassed by queryosity::lazy< valued< value_t< Col > > >, queryosity::lazy< valued< Val > >, queryosity::lazy< Act >, queryosity::lazy< Action >, queryosity::todo< Helper >, queryosity::varied< lazy< Act > >, queryosity::varied< todo< Helper > >
-
inline dataflow()#