(result_column, func, func_args, func_kwargs, input_column)
| 838 | |
| 839 | |
| 840 | def _build_agg_args_var(result_column, func, func_args, func_kwargs, input_column): |
| 841 | int_sum = _make_agg_id("sum", input_column) |
| 842 | int_sum2 = _make_agg_id("sum2", input_column) |
| 843 | int_count = _make_agg_id("count", input_column) |
| 844 | |
| 845 | # we don't expect positional args here |
| 846 | if func_args: |
| 847 | raise TypeError( |
| 848 | f"aggregate function '{func}' doesn't support positional arguments, but got {func_args}" |
| 849 | ) |
| 850 | |
| 851 | # and we only expect ddof=N in kwargs |
| 852 | expected_kwargs = {"ddof"} |
| 853 | unexpected_kwargs = func_kwargs.keys() - expected_kwargs |
| 854 | if unexpected_kwargs: |
| 855 | raise TypeError( |
| 856 | f"aggregate function '{func}' supports {expected_kwargs} keyword arguments, but got {unexpected_kwargs}" |
| 857 | ) |
| 858 | |
| 859 | return dict( |
| 860 | chunk_funcs=[ |
| 861 | (int_sum, _apply_func_to_column, dict(column=input_column, func=M.sum)), |
| 862 | (int_count, _apply_func_to_column, dict(column=input_column, func=M.count)), |
| 863 | (int_sum2, _compute_sum_of_squares, dict(column=input_column)), |
| 864 | ], |
| 865 | aggregate_funcs=[ |
| 866 | (col, _apply_func_to_column, dict(column=col, func=M.sum)) |
| 867 | for col in (int_sum, int_count, int_sum2) |
| 868 | ], |
| 869 | finalizer=( |
| 870 | result_column, |
| 871 | _finalize_var, |
| 872 | dict( |
| 873 | sum_column=int_sum, |
| 874 | count_column=int_count, |
| 875 | sum2_column=int_sum2, |
| 876 | **func_kwargs, |
| 877 | ), |
| 878 | ), |
| 879 | ) |
| 880 | |
| 881 | |
| 882 | def _build_agg_args_std(result_column, func, func_args, func_kwargs, input_column): |
no test coverage detected