Ejemplo n.º 1
0
Archivo: agg.py Proyecto: geophile/osh
 def setup(self):
     args = self.args()
     grouping_function = args.function_arg('-g')
     consecutive_grouping_function = args.function_arg('-c')
     running_totals = args.flag('-r')
     if running_totals is None:
         running_totals = False
     initial_value = _wrap_if_necessary(args.next_eval())
     aggregation_function = args.next_function()
     if grouping_function and consecutive_grouping_function:
         self.usage()
     if initial_value is None or aggregation_function is None:
         self.usage()
     if args.has_next():
         self.usage()
     if grouping_function and consecutive_grouping_function:
         self.usage()
     elif grouping_function:
         self._aggregate = _GroupingAggregate(
             self, running_totals, grouping_function, initial_value,
             aggregation_function)
     elif consecutive_grouping_function:
         self._aggregate = _ConsecutiveGroupingAggregate(
             self, running_totals, consecutive_grouping_function,
             initial_value, aggregation_function)
     else:
         self._aggregate = _NonGroupingAggregate(
             self, running_totals, initial_value, aggregation_function)
Ejemplo n.º 2
0
Archivo: agg.py Proyecto: qmutz/osh
 def setup(self):
     args = self.args()
     grouping_function = args.function_arg('-g')
     consecutive_grouping_function = args.function_arg('-c')
     running_totals = args.flag('-r')
     if running_totals is None:
         running_totals = False
     initial_value = _wrap_if_necessary(args.next_eval())
     aggregation_function = args.next_function()
     if grouping_function and consecutive_grouping_function:
         self.usage()
     if initial_value is None or aggregation_function is None:
         self.usage()
     if args.has_next():
         self.usage()
     if grouping_function and consecutive_grouping_function:
         self.usage()
     elif grouping_function:
         self._aggregate = _GroupingAggregate(self, running_totals,
                                              grouping_function,
                                              initial_value,
                                              aggregation_function)
     elif consecutive_grouping_function:
         self._aggregate = _ConsecutiveGroupingAggregate(
             self, running_totals, consecutive_grouping_function,
             initial_value, aggregation_function)
     else:
         self._aggregate = _NonGroupingAggregate(self, running_totals,
                                                 initial_value,
                                                 aggregation_function)
Ejemplo n.º 3
0
 def setup(self):
     args = self.args()
     overlap = args.int_arg('-o')
     disjoint = args.int_arg('-d')
     if overlap is not None and disjoint is not None:
         self.usage()
     elif overlap is not None:
         self._window_generator = _OverlapWindow(overlap)
     elif disjoint is not None:
         self._window_generator = _DisjointWindow(disjoint)
     else:
         predicate = args.next_function()
         self._window_generator = _PredicateWindow(predicate)
Ejemplo n.º 4
0
Archivo: window.py Proyecto: qmutz/osh
 def setup(self):
     args = self.args()
     overlap = args.int_arg('-o')
     disjoint = args.int_arg('-d')
     if overlap is not None and disjoint is not None:
         self.usage()
     elif overlap is not None:
         self._window_generator = _OverlapWindow(overlap)
     elif disjoint is not None:
         self._window_generator = _DisjointWindow(disjoint)
     else:
         predicate = args.next_function()
         self._window_generator = _PredicateWindow(predicate)