123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from collections.abc import Mapping
- from typing import Any, Optional
- import warnings
- from pip._vendor.rich.console import JustifyMethod
- from . import box
- from .highlighter import ReprHighlighter
- from .pretty import Pretty
- from .table import Table
- def tabulate_mapping(
- mapping: "Mapping[Any, Any]",
- title: Optional[str] = None,
- caption: Optional[str] = None,
- title_justify: Optional[JustifyMethod] = None,
- caption_justify: Optional[JustifyMethod] = None,
- ) -> Table:
- """Generate a simple table from a mapping.
- Args:
- mapping (Mapping): A mapping object (e.g. a dict);
- title (str, optional): Optional title to be displayed over the table.
- caption (str, optional): Optional caption to be displayed below the table.
- title_justify (str, optional): Justify method for title. Defaults to None.
- caption_justify (str, optional): Justify method for caption. Defaults to None.
- Returns:
- Table: A table instance which may be rendered by the Console.
- """
- warnings.warn("tabulate_mapping will be deprecated in Rich v11", DeprecationWarning)
- table = Table(
- show_header=False,
- title=title,
- caption=caption,
- box=box.ROUNDED,
- border_style="blue",
- )
- table.title = title
- table.caption = caption
- if title_justify is not None:
- table.title_justify = title_justify
- if caption_justify is not None:
- table.caption_justify = caption_justify
- highlighter = ReprHighlighter()
- for key, value in mapping.items():
- table.add_row(
- Pretty(key, highlighter=highlighter), Pretty(value, highlighter=highlighter)
- )
- return table
|