U
    ^g                     @   s  U d Z ddlZddlmZmZmZmZmZmZ ddl	m
Z
 dddd	d
gZerXddlmZ daed ed< zeje ZW n ek
r   dZY nX ddddZeeddddZdddddeeeeee  eddddZd#dddddddddd	ee eedeef eeeeeeeegef  edddd
Zddddddddddd
eed ee eeeeeeeeddd d	Zed!kred" dS )$z3Rich text and beautiful formatting in the terminal.    N)IOTYPE_CHECKINGAnyCallableOptionalUnion   )load_ipython_extensionget_consolereconfigureprintinspect
print_jsonConsoler   _console )returnc                  C   s   t dkrddlm}  |  a t S )zGet a global :class:`~rich.console.Console` instance. This function is used when Rich requires a Console,
    and hasn't been explicitly given one.

    Returns:
        Console: A console instance.
    Nr   r   )r   consoler   r    r   1/tmp/pip-unpacked-wheel-04vb07gv/rich/__init__.pyr
      s    )argskwargsr   c                  O   s(   ddl m} || |}t }|j|_dS )a	  Reconfigures the global console by replacing it with another.

    Args:
        *args (Any): Positional arguments for the replacement :class:`~rich.console.Console`.
        **kwargs (Any): Keyword arguments for the replacement :class:`~rich.console.Console`.
    r   r   N)Zrich.consoler   r
   __dict__)r   r   r   Znew_consoler   r   r   r   r   '   s    
 
F)sependfileflush)objectsr   r   r   r   r   c                 G   s6   ddl m} |dkrt n||d}|j|| |dS )a5  Print object(s) supplied via positional arguments.
    This function has an identical signature to the built-in print.
    For more advanced features, see the :class:`~rich.console.Console` class.

    Args:
        sep (str, optional): Separator between printed objects. Defaults to " ".
        end (str, optional): Character to write at end of output. Defaults to "\\n".
        file (IO[str], optional): File to write to, or None for stdout. Defaults to None.
        flush (bool, optional): Has no effect as Rich always flushes output. Defaults to False.

    r   r   N)r   )r   r   )r   r   r
   r   )r   r   r   r   r    r   Zwrite_consoler   r   r   r   5   s       T	dataindent	highlight	skip_keysensure_asciicheck_circular	allow_nandefault	sort_keys)jsonr#   r$   r%   r&   r'   r(   r)   r*   r+   r   c       	   
      C   s$   t  j| |||||||||	d
 dS )a  Pretty prints JSON. Output will be valid JSON.

    Args:
        json (str): A string containing JSON.
        data (Any): If json is not supplied, then encode this data.
        indent (int, optional): Number of spaces to indent. Defaults to 2.
        highlight (bool, optional): Enable highlighting of output: Defaults to True.
        skip_keys (bool, optional): Skip keys not of a basic type. Defaults to False.
        ensure_ascii (bool, optional): Escape all non-ascii characters. Defaults to False.
        check_circular (bool, optional): Check for circular references. Defaults to True.
        allow_nan (bool, optional): Allow NaN and Infinity values. Defaults to True.
        default (Callable, optional): A callable that converts values that can not be encoded
            in to something that can be JSON encoded. Defaults to None.
        sort_keys (bool, optional): Sort dictionary keys. Defaults to False.
    r"   N)r
   r   )
r,   r#   r$   r%   r&   r'   r(   r)   r*   r+   r   r   r   r   M   s    )
r   titlehelpmethodsdocsprivatedundersortallvalue)objr   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   c       
         C   sT   |pt  }ddlm} | tk}|| ||p*||p0||p6|||||	|
d
}|| dS )a  Inspect any Python object.

    * inspect(<OBJECT>) to see summarized info.
    * inspect(<OBJECT>, methods=True) to see methods.
    * inspect(<OBJECT>, help=True) to see full (non-abbreviated) help.
    * inspect(<OBJECT>, private=True) to see private attributes (single underscore).
    * inspect(<OBJECT>, dunder=True) to see attributes beginning with double underscore.
    * inspect(<OBJECT>, all=True) to see all attributes.

    Args:
        obj (Any): An object to inspect.
        title (str, optional): Title to display over inspect result, or None use type. Defaults to None.
        help (bool, optional): Show full help text rather than just first paragraph. Defaults to False.
        methods (bool, optional): Enable inspection of callables. Defaults to False.
        docs (bool, optional): Also render doc strings. Defaults to True.
        private (bool, optional): Show private attributes (beginning with underscore). Defaults to False.
        dunder (bool, optional): Show attributes starting with double underscore. Defaults to False.
        sort (bool, optional): Sort attributes alphabetically. Defaults to True.
        all (bool, optional): Show all attributes. Defaults to False.
        value (bool, optional): Pretty print value. Defaults to True.
    r   )Inspect)	r-   r.   r/   r0   r1   r2   r3   r4   r5   N)r
   Zrich._inspectr7   r   r   )r6   r   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r7   Z
is_inspectZ_inspectr   r   r   r   x   s     #
__main__zHello, **World**)N)__doc__ostypingr   r   r   r   r   r   
_extensionr	   __all__r   r   r   __annotations__pathabspathgetcwdZ_IMPORT_CWDFileNotFoundErrorr
   r   strboolr   intr   r   __name__r   r   r   r   <module>   s    

 .8
