def _get_output_shape(self, ngroups: int, values: np.ndarray) -> Shape:
    how = self.how
    kind = self.kind
    arity = self._cython_arity.get(how, 1)
    out_shape: Shape
    if (how == 'ohlc'):
        out_shape = (ngroups, 4)
    elif (arity > 1):
        raise NotImplementedError("arity of more than 1 is not supported for the 'how' argument")
    elif (kind == 'transform'):
        out_shape = values.shape
    else:
        out_shape = ((ngroups,) + values.shape[1:])
    return out_shape
def _get_output_shape(self, ngroups: int, values: np.ndarray) -> Shape:
    how = self.how
    kind = self.kind
    arity = self._cython_arity.get(how, 1)
    out_shape: Shape
    if (how == 'ohlc'):
        out_shape = (ngroups, 4)
    elif (arity > 1):
        raise NotImplementedError("arity of more than 1 is not supported for the 'how' argument")
    elif (kind == 'transform'):
        out_shape = values.shape
    else:
        out_shape = ((ngroups,) + values.shape[1:])
    return out_shape