예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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
예제 #4
0
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]],
        )
예제 #5
0
 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)