Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
__init__.py178 linesDownload Raw Back to rich
1"""Rich text and beautiful formatting in the terminal."""2 3import os4from typing import IO, TYPE_CHECKING, Any, Callable, Optional, Union5 6from ._extension import load_ipython_extension  # noqa: F4017 8__all__ = ["get_console", "reconfigure", "print", "inspect", "print_json"]9 10if TYPE_CHECKING:11    from .console import Console12 13# Global console used by alternative print14_console: Optional["Console"] = None15 16try:17    _IMPORT_CWD = os.path.abspath(os.getcwd())18except FileNotFoundError:19    # Can happen if the cwd has been deleted20    _IMPORT_CWD = ""21 22 23def get_console() -> "Console":24    """Get a global :class:`~rich.console.Console` instance. This function is used when Rich requires a Console,25    and hasn't been explicitly given one.26 27    Returns:28        Console: A console instance.29    """30    global _console31    if _console is None:32        from .console import Console33 34        _console = Console()35 36    return _console37 38 39def reconfigure(*args: Any, **kwargs: Any) -> None:40    """Reconfigures the global console by replacing it with another.41 42    Args:43        *args (Any): Positional arguments for the replacement :class:`~rich.console.Console`.44        **kwargs (Any): Keyword arguments for the replacement :class:`~rich.console.Console`.45    """46    from rich.console import Console47 48    new_console = Console(*args, **kwargs)49    _console = get_console()50    _console.__dict__ = new_console.__dict__51 52 53def print(54    *objects: Any,55    sep: str = " ",56    end: str = "\n",57    file: Optional[IO[str]] = None,58    flush: bool = False,59) -> None:60    r"""Print object(s) supplied via positional arguments.61    This function has an identical signature to the built-in print.62    For more advanced features, see the :class:`~rich.console.Console` class.63 64    Args:65        sep (str, optional): Separator between printed objects. Defaults to " ".66        end (str, optional): Character to write at end of output. Defaults to "\\n".67        file (IO[str], optional): File to write to, or None for stdout. Defaults to None.68        flush (bool, optional): Has no effect as Rich always flushes output. Defaults to False.69 70    """71    from .console import Console72 73    write_console = get_console() if file is None else Console(file=file)74    return write_console.print(*objects, sep=sep, end=end)75 76 77def print_json(78    json: Optional[str] = None,79    *,80    data: Any = None,81    indent: Union[None, int, str] = 2,82    highlight: bool = True,83    skip_keys: bool = False,84    ensure_ascii: bool = False,85    check_circular: bool = True,86    allow_nan: bool = True,87    default: Optional[Callable[[Any], Any]] = None,88    sort_keys: bool = False,89) -> None:90    """Pretty prints JSON. Output will be valid JSON.91 92    Args:93        json (str): A string containing JSON.94        data (Any): If json is not supplied, then encode this data.95        indent (int, optional): Number of spaces to indent. Defaults to 2.96        highlight (bool, optional): Enable highlighting of output: Defaults to True.97        skip_keys (bool, optional): Skip keys not of a basic type. Defaults to False.98        ensure_ascii (bool, optional): Escape all non-ascii characters. Defaults to False.99        check_circular (bool, optional): Check for circular references. Defaults to True.100        allow_nan (bool, optional): Allow NaN and Infinity values. Defaults to True.101        default (Callable, optional): A callable that converts values that can not be encoded102            in to something that can be JSON encoded. Defaults to None.103        sort_keys (bool, optional): Sort dictionary keys. Defaults to False.104    """105 106    get_console().print_json(107        json,108        data=data,109        indent=indent,110        highlight=highlight,111        skip_keys=skip_keys,112        ensure_ascii=ensure_ascii,113        check_circular=check_circular,114        allow_nan=allow_nan,115        default=default,116        sort_keys=sort_keys,117    )118 119 120def inspect(121    obj: Any,122    *,123    console: Optional["Console"] = None,124    title: Optional[str] = None,125    help: bool = False,126    methods: bool = False,127    docs: bool = True,128    private: bool = False,129    dunder: bool = False,130    sort: bool = True,131    all: bool = False,132    value: bool = True,133) -> None:134    """Inspect any Python object.135 136    * inspect(<OBJECT>) to see summarized info.137    * inspect(<OBJECT>, methods=True) to see methods.138    * inspect(<OBJECT>, help=True) to see full (non-abbreviated) help.139    * inspect(<OBJECT>, private=True) to see private attributes (single underscore).140    * inspect(<OBJECT>, dunder=True) to see attributes beginning with double underscore.141    * inspect(<OBJECT>, all=True) to see all attributes.142 143    Args:144        obj (Any): An object to inspect.145        title (str, optional): Title to display over inspect result, or None use type. Defaults to None.146        help (bool, optional): Show full help text rather than just first paragraph. Defaults to False.147        methods (bool, optional): Enable inspection of callables. Defaults to False.148        docs (bool, optional): Also render doc strings. Defaults to True.149        private (bool, optional): Show private attributes (beginning with underscore). Defaults to False.150        dunder (bool, optional): Show attributes starting with double underscore. Defaults to False.151        sort (bool, optional): Sort attributes alphabetically. Defaults to True.152        all (bool, optional): Show all attributes. Defaults to False.153        value (bool, optional): Pretty print value. Defaults to True.154    """155    _console = console or get_console()156    from rich._inspect import Inspect157 158    # Special case for inspect(inspect)159    is_inspect = obj is inspect160 161    _inspect = Inspect(162        obj,163        title=title,164        help=is_inspect or help,165        methods=is_inspect or methods,166        docs=is_inspect or docs,167        private=private,168        dunder=dunder,169        sort=sort,170        all=all,171        value=value,172    )173    _console.print(_inspect)174 175 176if __name__ == "__main__":  # pragma: no cover177    print("Hello, **World**")178 
codekingpro/portable-devtools · Team Ai