def replace_item_in_key( key: Any, item: Any, level: int = 0, ) -> Tuple[Any, ...]: "Replace item in `key` at `level` with `item`." key = utils.listify(key) key[level] = item return tuple(key)
def add_item_to_key( key: Any, item: Any, level: int = 0, ) -> Tuple[Any, ...]: "Insert `item` into `key` at a specified `level`." key = utils.listify(key) if level < 0: key.append(item) else: key.insert(level, item) return tuple(key)
def add_totals_style(df, uuid, *, total_data_cell_style=None, total_header_cell_style=None, total_row_border=None, total_col_border=None, totals_name=None, use_is_selector=None, **kwargs): total_header_cell_style = u.listify(total_header_cell_style) total_data_cell_style = u.listify(total_data_cell_style) total_row_border = u.listify(total_row_border) total_col_border = u.listify(total_col_border) make_rows = g._aggfunc_rows_with_is if use_is_selector else g._aggfunc_rows make_cols = g._aggfunc_cols_with_is if use_is_selector else g._aggfunc_cols rows = make_rows( df, total_data_cell_style, total_header_cell_style, total_row_border, totals_name, uuid, level=0, ) cols = make_cols( df, total_data_cell_style, total_header_cell_style, total_col_border, totals_name, uuid, level=0, ) return rows + cols
def get_axlevels(df, axis, level=None): """ Return tuple of levels. First element maps to rows, second to columns. Both axis and levels are converted to their number(s). It is also possible to pass ``axis`` a tuple directly. In this case ``level`` will be ignored. Arguments --------- axis : scalar, sequence of scalars, tuple of levels level : scalar, sequence of scalars Returns ------- tuple Tuple mapping levels to axes. """ get_level = partial(_get_level_number, df) level = utils.listify(level) if isinstance(axis, (int, str)): axis = axes._get_axis_number(axis) if axis == 0: level = [get_level(0, item) for item in level] return (level, []) elif axis == 1: level = [get_level(1, item) for item in level] return ([], level) else: row_level = [get_level(0, item) for item in level] col_level = [get_level(1, item) for item in level] return [row_level, col_level] else: axlevels = [utils.listify(item) for item in utils.listify(axis)] return ( [get_level(0, item) for item in axlevels[0]], [get_level(1, item) for item in axlevels[1]], )
def make_key(key, item, nlevels): key = utils.listify(key) key.append(item) if len(key) < nlevels: key = key + [''] * (nlevels - len(key)) return tuple(key)