@@ -219,23 +219,35 @@ class dataflow {
219
219
/* *
220
220
* @brief Plan a query.
221
221
* @tparam Qry Concrete queryosity::query::definition implementation.
222
- * @param[in] plan Query plan (constructor arguments).
222
+ * @param[in] output Query output (constructor arguments).
223
223
* @return queryosity::todo query booker.
224
224
*/
225
225
template <typename Qry>
226
- auto make (query::plan<Qry> const &plan) -> todo<query::booker<Qry>>;
226
+ auto get (query::output<Qry> const &output) -> todo<query::booker<Qry>>;
227
+
228
+ /* *
229
+ * @brief Get a column series.
230
+ * @tparam Col (Varied) lazy column.
231
+ * @param[in] col Column as series argument.
232
+ * @return queryosity::todo query booker.
233
+ */
234
+ template <typename Col> auto get (column::series<Col> const &srs);
227
235
228
236
template <typename Val>
229
- auto vary (column::constant<Val> const &cnst, std::map<std::string, Val> vars);
237
+ auto vary (column::constant<Val> const &cnst, std::map<std::string, Val> vars)
238
+ -> typename lazy<column::fixed<Val>>::varied;
230
239
231
240
template <typename Fn>
232
241
auto
233
242
vary (column::expression<Fn> const &expr,
234
243
std::map<std::string,
235
- typename column::expression<Fn>::function_type> const &vars);
244
+ typename column::expression<Fn>::function_type> const &vars) ->
245
+ typename todo<column::evaluator<column::equation_t <Fn>>>::varied;
236
246
237
- template <typename Defn, typename ... Vars>
238
- auto vary (column::definition<Defn> const &defn, Vars const &...vars);
247
+ template <typename Def>
248
+ auto vary (column::definition<Def> const &defn,
249
+ std::map<std::string, column::definition<Def>> const &vars) ->
250
+ typename todo<column::evaluator<Def>>::varied;
239
251
240
252
/* "public" API for Python layer */
241
253
@@ -312,9 +324,9 @@ class dataflow {
312
324
void _vary (Syst &syst, const std::string &name,
313
325
column::expression<Fn> const &expr);
314
326
315
- template <typename Syst, typename Defn >
327
+ template <typename Syst, typename Def >
316
328
void _vary (Syst &syst, const std::string &name,
317
- column::definition<Defn > const &defn);
329
+ column::definition<Def > const &defn);
318
330
319
331
protected:
320
332
dataset::processor m_processor;
@@ -367,7 +379,7 @@ class dataflow::node {
367
379
368
380
#include " column_constant.h"
369
381
#include " column_expression.h"
370
- #include " query_plan .h"
382
+ #include " query_output .h"
371
383
372
384
#include " systematic_nominal.h"
373
385
#include " systematic_resolver.h"
@@ -534,9 +546,14 @@ auto queryosity::dataflow::_make(Args &&...args) -> todo<query::booker<Qry>> {
534
546
}
535
547
536
548
template <typename Qry>
537
- auto queryosity::dataflow::make (queryosity::query::plan <Qry> const &cntr )
549
+ auto queryosity::dataflow::get (queryosity::query::output <Qry> const &qry )
538
550
-> todo<query::booker<Qry>> {
539
- return cntr._make (*this );
551
+ return qry.make (*this );
552
+ }
553
+
554
+ template <typename Col>
555
+ auto queryosity::dataflow::get (queryosity::column::series<Col> const &srs) {
556
+ return this ->all ().get (srs);
540
557
}
541
558
542
559
template <typename Def, typename ... Cols>
@@ -558,7 +575,7 @@ auto queryosity::dataflow::_apply(
558
575
todo<selection::applicator<Sel, Def>> const &appl,
559
576
lazy<Cols> const &...columns) -> lazy<selection::node> {
560
577
auto act = ensemble::invoke (
561
- [](dataset::player *plyr, selection::applicator<Sel,Def> const *appl,
578
+ [](dataset::player *plyr, selection::applicator<Sel, Def> const *appl,
562
579
Cols const *...cols ) { return plyr->template apply (*appl, *cols...); },
563
580
m_processor.get_slots (), appl.get_slots (), columns.get_slots ()...);
564
581
auto lzy = lazy<selection::node>(*this , act);
@@ -598,7 +615,8 @@ inline void queryosity::dataflow::reset() { m_analyzed = false; }
598
615
599
616
template <typename Val>
600
617
auto queryosity::dataflow::vary (column::constant<Val> const &cnst,
601
- std::map<std::string, Val> vars) {
618
+ std::map<std::string, Val> vars) ->
619
+ typename lazy<column::fixed<Val>>::varied {
602
620
auto nom = this ->define (cnst);
603
621
using varied_type = typename decltype (nom)::varied;
604
622
varied_type syst (std::move (nom));
@@ -612,7 +630,8 @@ template <typename Fn>
612
630
auto queryosity::dataflow::vary (
613
631
column::expression<Fn> const &expr,
614
632
std::map<std::string, typename column::expression<Fn>::function_type> const
615
- &vars) {
633
+ &vars) ->
634
+ typename todo<column::evaluator<column::equation_t<Fn>>>::varied {
616
635
auto nom = this ->_equate (expr);
617
636
using varied_type = typename decltype (nom)::varied;
618
637
using function_type = typename column::expression<Fn>::function_type;
@@ -623,15 +642,17 @@ auto queryosity::dataflow::vary(
623
642
return syst;
624
643
}
625
644
626
- template <typename Defn, typename ... Vars>
627
- auto queryosity::dataflow::vary (column::definition<Defn> const &defn,
628
- Vars const &...vars) {
645
+ template <typename Def>
646
+ auto queryosity::dataflow::vary (
647
+ column::definition<Def> const &defn,
648
+ std::map<std::string, column::definition<Def>> const &vars) ->
649
+ typename todo<column::evaluator<Def>>::varied {
629
650
auto nom = this ->_define (defn);
630
651
using varied_type = typename decltype (nom)::varied;
631
652
varied_type syst (std::move (nom));
632
- (( this -> _vary (syst, vars. name (),
633
- vars. template _vary_arg <column::definition<Defn>>())),
634
- ...);
653
+ for ( auto const &var : vars) {
654
+ this -> _vary (syst, var. first , var. second );
655
+ }
635
656
return syst;
636
657
}
637
658
@@ -722,7 +743,8 @@ auto queryosity::dataflow::_select(column::expression<Fn> const &expr)
722
743
}
723
744
724
745
template <typename Sel, typename Fn>
725
- auto queryosity::dataflow::_select (lazy<selection::node> const & prev, column::expression<Fn> const &expr)
746
+ auto queryosity::dataflow::_select (lazy<selection::node> const &prev,
747
+ column::expression<Fn> const &expr)
726
748
-> todo<selection::applicator<Sel, column::equation_t<Fn>>> {
727
749
return expr.template _select <Sel>(*this , prev);
728
750
}
@@ -764,9 +786,9 @@ void queryosity::dataflow::_vary(Syst &syst, const std::string &name,
764
786
syst.set_variation (name, this ->_equate (expr));
765
787
}
766
788
767
- template <typename Syst, typename Defn >
789
+ template <typename Syst, typename Def >
768
790
void queryosity::dataflow::_vary (Syst &syst, const std::string &name,
769
- column::definition<Defn > const &defn) {
791
+ column::definition<Def > const &defn) {
770
792
syst.set_variation (name, this ->_define (defn));
771
793
}
772
794
0 commit comments