§
    �Ÿj˜x  ã            
       óV  — d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ g d
¢ZdZ e ej        d¦  «        ¦  «        ZdXd„Ze G d„ de¦  «        ¦   «         Zd„ Zdddefd„Zdddefd„Z G d„ de¦  «        Z G d„ de¦  «        Z d„ Z! G d„ de ¦  «        Z" G d„ de¦  «        Z# G d„ d e#¦  «        Z$ G d!„ d"e#¦  «        Z% G d#„ d$e#¦  «        Z& G d%„ d&e¦  «        Z' G d'„ d(¦  «        Z( G d)„ d*¦  «        Z) G d+„ d,¦  «        Z*d-„ Z+d.„ Z,d/„ Z-d0„ Z.d1„ Z/ G d2„ d3¦  «        Z0d4„ Z1d5„ Z2d6„ Z3d7„ Z4d8„ Z5d9„ Z6	 e7Z8n# e9$ r e:Z8Y nw xY wi e;e4“e<e4“e=e4“e> e,d:d;¦  «        “e? e,d<d=¦  «        “e@ e.d>d?¦  «        “eA e-d>d?¦  «        “eB e-d@dA¦  «        “eCe/“ee1“ee3“ejD        e5“ejE        e5“ejF        e4“ejG        e2“ej        e4“ejH        e4“e8e6i¥ZI eejJ        ¦  «        ZKeKe@ur e.dBd?¦  «        eIeK<   	 eI L                    ejM         e.dCdA¦  «        ¦  «         e3eIejN        <   e4eIejO        <   n$# eP$ r  e.dDdA¦  «        eIejQ        <   e4eIeR<   Y nw xY we4eIeS<   e4eIeT<   i ZUdE„ ZVdF„ ZWe@ X                     eYeZddGde[e\g¦  «        e4¦  «        Z]dH„ Z^dI„ Z_dJ„ Z`dK„ ZadL„ Zb eWdMdNe^¦  «          eWdMdOe_¦  «          eWdMdPe`¦  «          eWdMdQea¦  «          eWdMdReb¦  «         ecdSk    r+ddTldmeZe  G dU„ dVe¦  «        Zf e ef¦   «         dG¬W¦  «         dS dS )Yañ
  
Python advanced pretty printer.  This pretty printer is intended to
replace the old `pprint` python module which does not allow developers
to provide their own pretty print callbacks.

This module is based on ruby's `prettyprint.rb` library by `Tanaka Akira`.


Example Usage
-------------

To directly print the representation of an object use `pprint`::

    from pretty import pprint
    pprint(complex_object)

To get a string of the output use `pretty`::

    from pretty import pretty
    string = pretty(complex_object)


Extending
---------

The pretty library allows developers to add pretty printing rules for their
own objects.  This process is straightforward.  All you have to do is to
add a `_repr_pretty_` method to your object and call the methods on the
pretty printer passed::

    class MyObject(object):

        def _repr_pretty_(self, p, cycle):
            ...

Here's an example for a class with a simple constructor::

    class MySimpleObject:

        def __init__(self, a, b, *, c=None):
            self.a = a
            self.b = b
            self.c = c

        def _repr_pretty_(self, p, cycle):
            ctor = CallExpression.factory(self.__class__.__name__)
            if self.c is None:
                p.pretty(ctor(a, b))
            else:
                p.pretty(ctor(a, b, c=c))

Here is an example implementation of a `_repr_pretty_` method for a list
subclass::

    class MyList(list):

        def _repr_pretty_(self, p, cycle):
            if cycle:
                p.text('MyList(...)')
            else:
                with p.group(8, 'MyList([', '])'):
                    for idx, item in enumerate(self):
                        if idx:
                            p.text(',')
                            p.breakable()
                        p.pretty(item)

The `cycle` parameter is `True` if pretty detected a cycle.  You *have* to
react to that or the result is an infinite loop.  `p.text()` just adds
non breaking text to the output, `p.breakable()` either adds a whitespace
or breaks here.  If you pass it an argument it's used instead of the
default space.  `p.pretty` prettyprints another object using the pretty print
method.

The first parameter to the `group` function specifies the extra indentation
of the next line.  In this example the next item will either be on the same
line (if the items are short enough) or aligned with the right edge of the
opening bracket of `MyList`.

If you just want to indent something you can use the group function
without open / close parameters.  You can also use this code::

    with p.indent(2):
        ...

Inheritance diagram:

.. inheritance-diagram:: IPython.lib.pretty
   :parts: 3

:copyright: 2007 by Armin Ronacher.
            Portions (c) 2009 by Robert Kern.
:license: BSD License.
é    )ÚcontextmanagerN)Údeque)Ú	signature)ÚStringIO)Úwarn)Úundoc)ÚPYPY)	ÚprettyÚpprintÚPrettyPrinterÚRepresentationPrinterÚfor_typeÚfor_type_by_nameÚRawTextÚRawStringLiteralÚCallExpressioniè  Ú c                 óJ   — 	 t          | ||¦  «        S # t          $ r |cY S w xY w)zzSafe version of getattr.

    Same as getattr, but will return ``default`` on any Exception,
    rather than raising.
    )ÚgetattrÚ	Exception)ÚobjÚattrÚdefaults      ú_/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/IPython/lib/pretty.pyÚ_safe_getattrr   v   s=   € ðÝ�s˜D 'Ñ*Ô*Ð*øÝð ð ð Øˆˆˆðøøøs   ‚ “"¡"c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )Ú
CUnicodeIOc                 óh   •—  t          ¦   «         j        |i |¤Ž t          dt          d¬¦  «         d S )NzKCUnicodeIO is deprecated since IPython 6.0. Please use io.StringIO instead.é   )Ú
stacklevel)ÚsuperÚ__init__r   ÚDeprecationWarning)ÚselfÚargsÚkwargsÚ	__class__s      €r   r"   zCUnicodeIO.__init__ƒ   sJ   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ýð 0å¨Að	/ñ 	/ô 	/ð 	/ð 	/ð 	/ó    )Ú__name__Ú
__module__Ú__qualname__r"   Ú__classcell__)r'   s   @r   r   r   �   s8   ø€ € € € € ð/ð /ð /ð /ð /ð /ð /ð /ð /r(   r   c                 ó¶   — t          | ¦  «        } 	 t          | ¦  «        S # t          $ r. 	 t          | t          ¬¦  «        cY S # t          $ r | cY cY S w xY ww xY w)zº
    Sort the given items for pretty printing. Since some predictable
    sorting is better than no sorting at all, we sort on the string
    representation if normal sorting fails.
    )Úkey)ÚlistÚsortedr   Ústr)Úitemss    r   Ú_sorted_for_pprintr3   ‰   s�   € õ �‰KŒK€EðÝ�e‰}Œ}ÐøÝð ð ð ð	Ý˜%¥SÐ)Ñ)Ô)Ð)Ð)Ð)øÝð 	ð 	ð 	ØˆLˆLˆLˆLˆLð	øøøðøøøs,   ‘   
A«AÁ AÁAÁAÁAÁAFéO   ú
c                 óÀ   — t          ¦   «         }t          |||||¬¦  «        }|                     | ¦  «         |                     ¦   «          |                     ¦   «         S )z3
    Pretty print the object's representation.
    ©Úmax_seq_length)r   r   r
   ÚflushÚgetvalue)r   ÚverboseÚ	max_widthÚnewliner8   ÚstreamÚprinters          r   r
   r
   ˜   sU   € õ ‰ZŒZ€FÝ# F¨G°YÀÐXfÐgÑgÔg€GØ‡N‚N�3ÑÔÐØ‡M‚M�O„O€OØ�?Š?ÑÔÐr(   c                 ó  — t          t          j        ||||¬¦  «        }|                     | ¦  «         |                     ¦   «          t          j                             |¦  «         t          j                             ¦   «          dS )z,
    Like `pretty` but print to stdout.
    r7   N)r   ÚsysÚstdoutr
   r9   Úwrite)r   r;   r<   r=   r8   r?   s         r   r   r   £   sn   € õ $¥C¤J°¸ÀGÐ\jÐkÑkÔk€GØ‡N‚N�3ÑÔÐØ‡M‚M�O„O€OÝ„J×Ò�WÑÔÐÝ„J×ÒÑÔÐÐÐr(   c                   ó<   — e Zd Zed„ ¦   «         Zedd„¦   «         ZdS )Ú_PrettyPrinterBasec              #   ó~   K  — | xj         |z  c_         	 dV — | xj         |z  c_         dS # | xj         |z  c_         w xY w)z/with statement support for indenting/dedenting.N)Úindentation)r$   Úindents     r   rH   z_PrettyPrinterBase.indent¯   sd   è è € ð 	ÐÔ˜FÑ"ÐÔð	'ØˆEˆEˆEàÐÔ Ñ&ÐÔÐÐøˆDÐÔ Ñ&ÐÔÐÐÐÐs   ”* ª<r   r   c              #   ó¢   K  — |                       ||¦  «         	 dV — |                      ||¦  «         dS # |                      ||¦  «         w xY w)z8like begin_group / end_group but for the with statement.N)Úbegin_groupÚ	end_group)r$   rH   ÚopenÚcloses       r   Úgroupz_PrettyPrinterBase.group¸   s`   è è € ð 	×Ò˜ Ñ&Ô&Ð&ð	*ØˆEˆEˆEà�NŠN˜6 5Ñ)Ô)Ð)Ð)Ð)øˆD�NŠN˜6 5Ñ)Ô)Ð)Ð)øøøs	   š6 ¶AN)r   r   r   )r)   r*   r+   r   rH   rN   © r(   r   rE   rE   ­   sM   € € € € € àð'ð 'ñ „^ð'ð ð*ð *ð *ñ „^ð*ð *ð *r(   rE   c                   ó\   — e Zd ZdZddefd„Zd„ Zd„ Zd„ Zdd	„Z	d
„ Z
dd„Zd„ Zdd„Zd„ ZdS )r   a  
    Baseclass for the `RepresentationPrinter` prettyprinter that is used to
    generate pretty reprs of objects.  Contrary to the `RepresentationPrinter`
    this printer knows nothing about the default pprinters or the `_repr_pretty_`
    callback method.
    r4   r5   c                 óä   — || _         || _        || _        || _        d| _        d| _        t          ¦   «         | _        t          d¦  «        }|g| _	        t          |¦  «        | _        d| _        d S ©Nr   )Úoutputr<   r=   r8   Úoutput_widthÚbuffer_widthr   ÚbufferÚGroupÚgroup_stackÚ
GroupQueueÚgroup_queuerG   )r$   rS   r<   r=   r8   Ú
root_groups         r   r"   zPrettyPrinter.__init__É   sm   € ØˆŒØ"ˆŒØˆŒØ,ˆÔØˆÔØˆÔÝ‘g”gˆŒå˜1‘X”Xˆ
Ø&˜<ˆÔÝ% jÑ1Ô1ˆÔØˆÔÐÐr(   c                 ó  — |j         rZ| j                             ¦   «         }|                     | j        | j        ¦  «        | _        | xj        |j        z  c_        |j         °Z| j        rœt          | j        d         t          ¦  «        r€| j                             ¦   «         }|                     | j        | j        ¦  «        | _        | xj        |j        z  c_        | j        r$t          | j        d         t          ¦  «        °zd S d S d S d S rR   )	Ú
breakablesrV   ÚpopleftrS   rT   rU   ÚwidthÚ
isinstanceÚText)r$   rN   Úxs      r   Ú_break_one_groupzPrettyPrinter._break_one_group×   s  € ØÔð 	)Ø”×#Ò#Ñ%Ô%ˆAØ !§¢¨¬°dÔ6GÑ HÔ HˆDÔØÐÔ ¤Ñ(ÐÔð Ôð 	)ð Œkð 	)�j¨¬°Q¬½Ñ>Ô>ð 	)Ø”×#Ò#Ñ%Ô%ˆAØ !§¢¨¬°dÔ6GÑ HÔ HˆDÔØÐÔ ¤Ñ(ÐÔð Œkð 	)�j¨¬°Q¬½Ñ>Ô>ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)r(   c                 óÎ   — | j         | j        | j        z   k     rL| j                             ¦   «         }|sd S |                      |¦  «         | j         | j        | j        z   k     °Jd S d S ©N)r<   rT   rU   rZ   Údeqrc   ©r$   rN   s     r   Ú_break_outer_groupsz!PrettyPrinter._break_outer_groupsá   su   € ØŒn˜tÔ0°4Ô3DÑDÒDÐDØÔ$×(Ò(Ñ*Ô*ˆEØð Ø�Ø×!Ò! %Ñ(Ô(Ð(ð	 Œn˜tÔ0°4Ô3DÑDÒDÐDÐDÐDÐDÐDr(   c                 ó’  — t          |¦  «        }| j        r†| j        d         }t          |t          ¦  «        s(t          ¦   «         }| j                             |¦  «         |                     ||¦  «         | xj        |z  c_        |                      ¦   «          dS | j         	                    |¦  «         | xj
        |z  c_
        dS )zAdd literal text to the output.éÿÿÿÿN)ÚlenrV   r`   ra   ÚappendÚaddrU   rh   rS   rC   rT   )r$   r   r_   Útexts       r   rn   zPrettyPrinter.textè   sÃ   € å�C‘”ˆØŒ;ð 
	'Ø”;˜r”?ˆDÝ˜d¥DÑ)Ô)ð )Ý‘v”v�Ø”×"Ò" 4Ñ(Ô(Ð(Ø�HŠH�S˜%Ñ Ô Ð ØÐÔ Ñ&ÐÔØ×$Ò$Ñ&Ô&Ð&Ð&Ð&àŒK×Ò˜cÑ"Ô"Ð"ØÐÔ Ñ&ÐÔÐÐr(   ú c                 óº  — t          |¦  «        }| j        d         }|j        rj|                      ¦   «          | j                             | j        ¦  «         | j                             d| j        z  ¦  «         | j        | _        d| _	        dS | j
                             t          ||| ¦  «        ¦  «         | xj	        |z  c_	        |                      ¦   «          dS )zä
        Add a breakable separator to the output.  This does not mean that it
        will automatically break here.  If no breaking on this position takes
        place the `sep` is inserted which default to one space.
        rj   ro   r   N)rk   rX   Ú
want_breakr9   rS   rC   r=   rG   rT   rU   rV   rl   Ú	Breakablerh   )r$   Úsepr_   rN   s       r   Ú	breakablezPrettyPrinter.breakable÷   sÑ   € õ �C‘”ˆØÔ  Ô$ˆØÔð 		'Ø�JŠJ‰LŒLˆLØŒK×Ò˜dœlÑ+Ô+Ð+ØŒK×Ò˜c DÔ$4Ñ4Ñ5Ô5Ð5Ø $Ô 0ˆDÔØ !ˆDÔÐÐàŒK×Ò�y¨¨e°TÑ:Ô:Ñ;Ô;Ð;ØÐÔ Ñ&ÐÔØ×$Ò$Ñ&Ô&Ð&Ð&Ð&r(   c                 ó6  — | j                              ¦   «         }|r|                      |¦  «         |                      ¦   «          | j                             | j        ¦  «         | j                             d| j        z  ¦  «         | j        | _        d| _	        dS )z_
        Explicitly insert a newline into the output, maintaining correct indentation.
        ro   r   N)
rZ   rf   rc   r9   rS   rC   r=   rG   rT   rU   rg   s     r   Úbreak_zPrettyPrinter.break_
  s�   € ð Ô ×$Ò$Ñ&Ô&ˆØð 	)Ø×!Ò! %Ñ(Ô(Ð(Ø�
Š
‰ŒˆØŒ×Ò˜$œ,Ñ'Ô'Ð'ØŒ×Ò˜# Ô 0Ñ0Ñ1Ô1Ð1Ø Ô,ˆÔØˆÔÐÐr(   r   r   c                 ó   — |r|                       |¦  «         t          | j        d         j        dz   ¦  «        }| j                             |¦  «         | j                             |¦  «         | xj        |z  c_        dS )zÜ
        Begin a group.
        The first parameter specifies the indentation for the next line (usually
        the width of the opening text), the second the opening text.  All
        parameters are optional.
        rj   é   N)rn   rW   rX   Údepthrl   rZ   ÚenqrG   )r$   rH   rL   rN   s       r   rJ   zPrettyPrinter.begin_group  s€   € ð ð 	Ø�IŠI�d‰OŒOˆOÝ�dÔ& rÔ*Ô0°1Ñ4Ñ5Ô5ˆØÔ×Ò Ñ&Ô&Ð&ØÔ×Ò˜UÑ#Ô#Ð#ØÐÔ˜FÑ"ÐÔÐÐr(   c              #   óæ   K  — t          |¦  «        D ]^\  }}| j        rL|| j        k    rA|                      d¦  «         |                      ¦   «          |                      d¦  «          dS ||fV — Œ_dS )z>like enumerate, but with an upper limit on the number of itemsú,ú...N)Ú	enumerater8   rn   rt   )r$   ÚseqÚidxrb   s       r   Ú
_enumeratezPrettyPrinter._enumerate&  sˆ   è è € å ‘n”nð 	ð 	‰FˆC�ØÔ"ð  s¨dÔ.AÒ'AÐ'AØ—	’	˜#‘”�Ø—’Ñ Ô Ð Ø—	’	˜%Ñ Ô Ð Ø��Ø�q�&ˆLˆLˆLˆLð	ð 	r(   c                 óÌ   — | xj         |z  c_         | j                             ¦   «         }|j        s| j                             |¦  «         |r|                      |¦  «         dS dS )z0End a group. See `begin_group` for more details.N)rG   rX   Úpopr]   rZ   Úremovern   )r$   ÚdedentrM   rN   s       r   rK   zPrettyPrinter.end_group0  sv   € àÐÔ˜FÑ"ÐÔØÔ ×$Ò$Ñ&Ô&ˆØÔð 	+ØÔ×#Ò# EÑ*Ô*Ð*Øð 	Ø�IŠI�eÑÔÐÐÐð	ð 	r(   c                 ó¶   — | j         D ]0}| xj        |                     | j        | j        ¦  «        z  c_        Œ1| j                              ¦   «          d| _        dS )z&Flush data that is left in the buffer.r   N)rV   rT   rS   ÚclearrU   )r$   Údatas     r   r9   zPrettyPrinter.flush9  sa   € à”Kð 	Mð 	MˆDØÐÔ §¢¨T¬[¸$Ô:KÑ!LÔ!LÑLÐÔÐØŒ×ÒÑÔÐØˆÔÐÐr(   N)ro   )r   r   )r)   r*   r+   Ú__doc__ÚMAX_SEQ_LENGTHr"   rc   rh   rn   rt   rv   rJ   r�   rK   r9   rO   r(   r   r   r   Á   sÑ   € € € € € ðð ð *,°TÈ.ð ð ð ð ð)ð )ð )ð)ð )ð )ð'ð 'ð 'ð'ð 'ð 'ð 'ð&ð ð ð#ð #ð #ð #ðð ð ðð ð ð ðð ð ð ð r(   r   c                 ó¶   — t          | d¦  «        sA	 t          | j        | t          fi ¦  «        } | j        dd…         }n# t
          $ r | g}Y nw xY w| j        }|S )z| Get a reasonable method resolution order of a class and its superclasses
    for both old-style and new-style classes.
    Ú__mro__rx   rj   )ÚhasattrÚtyper)   ÚobjectrŒ   Ú	TypeError)Ú	obj_classÚmros     r   Ú_get_mror“   A  s‚   € õ �9˜iÑ(Ô(ð  ð	*Ý˜YÔ/°)½VÐ1DÀbÑIÔIˆIð Ô# A b DÔ)ˆCˆCøõ ð 	ð 	ð 	ð �+ˆCˆCˆCð	øøøð ÔˆØ€Js   ’? ¿AÁAc                   ó4   — e Zd ZdZddddddefd„Zd„ Zd„ ZdS )	r   a  
    Special pretty printer that has a `pretty` method that calls the pretty
    printer for a python object.

    This class stores processing data on `self` so you must *never* use
    this class in a threaded environment.  Always lock it or reinstanciate
    it.

    Instances also have a verbose flag callbacks can access to control their
    output.  For example the default instance repr prints all attributes and
    methods that are not prefixed by an underscore if the printer is in
    verbose mode.
    Fr4   r5   Nc	                 ó,  — t                                | ||||¬¦  «         || _        g | _        |€t                               ¦   «         }|| _        |€t                               ¦   «         }|| _        |€t                               ¦   «         }|| _
        d S )Nr7   )r   r"   r;   ÚstackÚ_singleton_pprintersÚcopyÚsingleton_pprintersÚ_type_pprintersÚtype_pprintersÚ_deferred_type_pprintersÚdeferred_pprinters)	r$   rS   r;   r<   r=   r™   r›   r�   r8   s	            r   r"   zRepresentationPrinter.__init__c  s—   € õ 	×Ò˜t V¨Y¸ÐP^ÐÑ_Ô_Ð_ØˆŒØˆŒ
ØÐ&Ý"6×";Ò";Ñ"=Ô"=ÐØ#6ˆÔ ØÐ!Ý,×1Ò1Ñ3Ô3ˆNØ,ˆÔØÐ%Ý!9×!>Ò!>Ñ!@Ô!@ÐØ"4ˆÔÐÐr(   c                 ór  — t          |¦  «        }|| j        v }| j                             |¦  «         |                      ¦   «          	 t	          |dd¦  «        pt          |¦  «        }	 | j        |         } ||| |¦  «        |                      ¦   «          | j                             ¦   «          S # t          t          f$ r Y nw xY wt          |¦  «        D �]q}|| j        v rG | j        |         || |¦  «        c |                      ¦   «          | j                             ¦   «          S |                      |¦  «        }|�< ||| |¦  «        c |                      ¦   «          | j                             ¦   «          S d|j        v rR|j        }t!          |¦  «        r< ||| |¦  «        c |                      ¦   «          | j                             ¦   «          S |t"          urgt!          |j                             d¦  «        ¦  «        r@t'          || |¦  «        c |                      ¦   «          | j                             ¦   «          S �Œst)          || |¦  «        |                      ¦   «          | j                             ¦   «          S # |                      ¦   «          | j                             ¦   «          w xY w)zPretty print the given object.r'   NÚ_repr_pretty_Ú__repr__)Úidr–   rl   rJ   r   rŽ   r™   rK   rƒ   r�   ÚKeyErrorr“   r›   Ú_in_deferred_typesÚ__dict__rŸ   Úcallabler�   ÚgetÚ_repr_pprintÚ_default_pprint)r$   r   Úobj_idÚcycler‘   r?   ÚclsÚmeths           r   r
   zRepresentationPrinter.prettyt  sÌ  € å�C‘”ˆØ˜$œ*Ð$ˆØŒ
×Ò˜&Ñ!Ô!Ð!Ø×ÒÑÔÐð%	Ý% c¨;¸Ñ=Ô=ÐJÅÀcÁÄˆIð1ØÔ2°6Ô:�ð �w˜s D¨%Ñ0Ô0ð8 �NŠNÑÔÐØŒJ�NŠNÑÔÐÐøõA �xÐ(ð ð ð Ø�ðøøøõ   	Ñ*Ô*ð Bñ B�Ø˜$Ô-Ð-Ð-à3˜4Ô.¨sÔ3°C¸¸uÑEÔEÐEÐEð* �NŠNÑÔÐØŒJ�NŠNÑÔÐÐð' #×5Ò5°cÑ:Ô:�GØÐ*Ø&˜w s¨D°%Ñ8Ô8Ð8Ð8ð  �NŠNÑÔÐØŒJ�NŠNÑÔÐÐð +¨c¬lÐ:Ð:Ø#&Ô#4˜DÝ'¨™~œ~ð >Ø'+ t¨C°°uÑ'=Ô'=Ð =Ð =ð �NŠNÑÔÐØŒJ�NŠNÑÔÐÐð ¥fÐ,Ð,Ý$,¨S¬\×-=Ò-=¸jÑ-IÔ-IÑ$JÔ$Jð -å#/°°T¸5Ñ#AÔ#AÐAÐAð �NŠNÑÔÐØŒJ�NŠNÑÔÐÐùõ # 3¨¨eÑ4Ô4à�NŠNÑÔÐØŒJ�NŠNÑÔÐÐøð �NŠNÑÔÐØŒJ�NŠNÑÔÐÐøøøsI   Á J Á)B0 Á6J Â0CÃJ ÃCÃ7J Ä)%J Å<-J ÇAJ ÉJ Ê/J6c                 ó°   — t          |dd¦  «        }t          |dd¦  «        }||f}d}|| j        v r$| j                             |¦  «        }|| j        |<   |S )a  
        Check if the given class is specified in the deferred type registry.

        Returns the printer from the registry if it exists, and None if the
        class is not in the registry. Successful matches will be moved to the
        regular type registry for future use.
        r*   Nr)   )r   r�   rƒ   r›   )r$   r«   ÚmodÚnamer.   r?   s         r   r£   z(RepresentationPrinter._in_deferred_types¡  sj   € õ ˜C ¨tÑ4Ô4ˆÝ˜S *¨dÑ3Ô3ˆØ�DˆkˆØˆØ�$Ô)Ð)Ð)àÔ-×1Ò1°#Ñ6Ô6ˆGØ'.ˆDÔ Ñ$Øˆr(   )r)   r*   r+   r‰   rŠ   r"   r
   r£   rO   r(   r   r   r   T  sd   € € € € € ðð ð (-¸ÀDØ °È$Ø%ð5ð 5ð 5ð 5ð"+ð +ð +ðZð ð ð ð r(   r   c                   ó   — e Zd Zd„ ZdS )Ú	Printablec                 ó   — |S re   rO   ©r$   r>   rT   s      r   rS   zPrintable.output¶  s   € ØÐr(   N)r)   r*   r+   rS   rO   r(   r   r±   r±   ´  s#   € € € € € ðð ð ð ð r(   r±   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ra   c                 ó"   — g | _         d| _        d S rR   )Úobjsr_   ©r$   s    r   r"   zText.__init__¼  s   € ØˆŒ	ØˆŒ
ˆ
ˆ
r(   c                 óT   — | j         D ]}|                     |¦  «         Œ|| j        z   S re   )r¶   rC   r_   )r$   r>   rT   r   s       r   rS   zText.outputÀ  s5   € Ø”9ð 	ð 	ˆCØ�LŠL˜ÑÔÐÐØ˜dœjÑ(Ð(r(   c                 óZ   — | j                              |¦  «         | xj        |z  c_        d S re   )r¶   rl   r_   )r$   r   r_   s      r   rm   zText.addÅ  s,   € ØŒ	×Ò˜ÑÔÐØˆ
Œ
�eÑˆ
Œ
ˆ
ˆ
r(   N)r)   r*   r+   r"   rS   rm   rO   r(   r   ra   ra   º  sA   € € € € € ðð ð ð)ð )ð )ð
ð ð ð ð r(   ra   c                   ó   — e Zd Zd„ Zd„ ZdS )rr   c                 óª   — || _         || _        || _        |j        | _        |j        d         | _        | j        j                             | ¦  «         d S )Nrj   )r   r_   r
   rG   rX   rN   r]   rl   )r$   r   r_   r
   s       r   r"   zBreakable.__init__Ì  sP   € ØˆŒØˆŒ
ØˆŒØ!Ô-ˆÔØÔ'¨Ô+ˆŒ
ØŒ
Ô×$Ò$ TÑ*Ô*Ð*Ð*Ð*r(   c                 ó„  — | j         j                             ¦   «          | j         j        rC|                     | j        j        ¦  «         |                     d| j        z  ¦  «         | j        S | j         j        s$| j        j         	                    | j         ¦  «         |                     | j
        ¦  «         || j        z   S )Nro   )rN   r]   r^   rq   rC   r
   r=   rG   rZ   r„   r   r_   r³   s      r   rS   zBreakable.outputÔ  s©   € ØŒ
Ô×%Ò%Ñ'Ô'Ð'ØŒ:Ô ð 	$Ø�LŠL˜œÔ,Ñ-Ô-Ð-Ø�LŠL˜˜tÔ/Ñ/Ñ0Ô0Ð0ØÔ#Ð#ØŒzÔ$ð 	7ØŒKÔ#×*Ò*¨4¬:Ñ6Ô6Ð6Ø�Š�T”XÑÔÐØ˜dœjÑ(Ð(r(   N)r)   r*   r+   r"   rS   rO   r(   r   rr   rr   Ê  s2   € € € € € ð+ð +ð +ð	)ð 	)ð 	)ð 	)ð 	)r(   rr   c                   ó   — e Zd Zd„ ZdS )rW   c                 óH   — || _         t          ¦   «         | _        d| _        d S )NF)ry   r   r]   rq   )r$   ry   s     r   r"   zGroup.__init__â  s   € ØˆŒ
Ý™'œ'ˆŒØˆŒˆˆr(   N)r)   r*   r+   r"   rO   r(   r   rW   rW   à  s#   € € € € € ð ð  ð  ð  ð  r(   rW   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )rY   c                 óH   — g | _         |D ]}|                      |¦  «         Œd S re   )Úqueuerz   )r$   ÚgroupsrN   s      r   r"   zGroupQueue.__init__ê  s3   € ØˆŒ
Øð 	ð 	ˆEØ�HŠH�U‰OŒOˆOˆOð	ð 	r(   c                 óô   — |j         }|t          | j        ¦  «        dz
  k    r5| j                             g ¦  «         |t          | j        ¦  «        dz
  k    °5| j        |                              |¦  «         d S )Nrx   )ry   rk   rÁ   rl   )r$   rN   ry   s      r   rz   zGroupQueue.enqï  sr   € Ø”ˆØ•c˜$œ*‘o”o¨Ñ)Ò)Ð)ØŒJ×Ò˜bÑ!Ô!Ð!ð •c˜$œ*‘o”o¨Ñ)Ò)Ð)àŒ
�5Ô× Ò  Ñ'Ô'Ð'Ð'Ð'r(   c                 ó®   — | j         D ]L}t          t          |¦  «        ¦  «        D ]\  }}|j        r||= d|_        |c c S Œ|D ]	}d|_        Œ
|d d …= ŒMd S )NT)rÁ   r~   Úreversedr]   rq   )r$   r–   r€   rN   s       r   rf   zGroupQueue.deqõ  s“   € Ø”Zð 	ð 	ˆEÝ'­°©¬Ñ8Ô8ð !ð !‘
��UØÔ#ð !Ø˜c˜
Ø'+�EÔ$Ø �L�L�L�L�Lð!ð ð (ð (�Ø#'�Ô Ð Ø�a�a�a��ð	ð 	r(   c                 ót   — 	 | j         |j                                      |¦  «         d S # t          $ r Y d S w xY wre   )rÁ   ry   r„   Ú
ValueErrorrg   s     r   r„   zGroupQueue.remove   sL   € ð	ØŒJ�u”{Ô#×*Ò*¨5Ñ1Ô1Ð1Ð1Ð1øÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚%) ©
7¶7N)r)   r*   r+   r"   rz   rf   r„   rO   r(   r   rY   rY   è  sP   € € € € € ðð ð ð
(ð (ð (ð	ð 	ð 	ðð ð ð ð r(   rY   c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   zÛ Object such that ``p.pretty(RawText(value))`` is the same as ``p.text(value)``.

    An example usage of this would be to show a list as binary numbers, using
    ``p.pretty([RawText(bin(i)) for i in integers])``.
    c                 ó   — || _         d S re   ©Úvalue©r$   rË   s     r   r"   zRawText.__init__  ó   € ØˆŒ
ˆ
ˆ
r(   c                 ó:   — |                      | j        ¦  «         d S re   )rn   rË   )r$   Úprª   s      r   rŸ   zRawText._repr_pretty_  s   € Ø	�ŠˆtŒzÑÔÐÐÐr(   N©r)   r*   r+   r‰   r"   rŸ   rO   r(   r   r   r     s<   € € € € € ðð ð
ð ð ðð ð ð ð r(   r   c                   ó4   — e Zd ZdZd„ Zed„ ¦   «         Zd„ ZdS )r   zY Object which emits a line-wrapped call expression in the form `__name(*args, **kwargs)` c                 ó4   — | }||_         ||_        ||_        d S re   )r¯   r%   r&   )Ú_CallExpression__selfÚ_CallExpression__namer%   r&   r$   s        r   r"   zCallExpression.__init__  s"   € ð ˆØˆŒ	ØˆŒ	ØˆŒˆˆr(   c                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                  ó   •—  ‰‰g| ¢R i |¤ŽS re   rO   )r%   r&   r«   r¯   s     €€r   Úinnerz%CallExpression.factory.<locals>.inner   s#   ø€ Ø�3�tÐ-˜dÐ-Ð-Ð- fÐ-Ð-Ð-r(   rO   )r«   r¯   r×   s   `` r   ÚfactoryzCallExpression.factory  s'   øø€ ð	.ð 	.ð 	.ð 	.ð 	.ð 	.àˆr(   c                 óø  ‡‡— dŠˆˆfd„}| j         dz   }‰                     t          |¦  «        |d¦  «        5  | j        D ]!} |¦   «          ‰                     |¦  «         Œ"| j                             ¦   «         D ]d\  }} |¦   «          |dz   }‰                     t          |¦  «        |¦  «        5  ‰                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œe	 d d d ¦  «         d S # 1 swxY w Y   d S )NFc                  ób   •— ‰r)‰                       d¦  «         ‰                      ¦   «          dŠd S )Nr|   T)rn   rt   )rÏ   Ústarteds   €€r   Únew_itemz.CallExpression._repr_pretty_.<locals>.new_item)  s0   ø€ àð Ø—’�s‘”�Ø—’‘”�ØˆGˆGˆGr(   ú(ú)ú=)r¯   rN   rk   r%   r
   r&   r2   )	r$   rÏ   rª   rÜ   ÚprefixÚargÚarg_nameÚ
arg_prefixrÛ   s	    `      @r   rŸ   zCallExpression._repr_pretty_$  sœ  øø€ ð ˆð	ð 	ð 	ð 	ð 	ð 	ð ”˜S‘ˆØ�WŠW•S˜‘[”[ &¨#Ñ.Ô.ð 	"ð 	"Ø”yð ð �Ø�‘
”
�
Ø—’˜‘”��Ø!%¤×!2Ò!2Ñ!4Ô!4ð "ð "‘�˜#Ø�‘
”
�
Ø%¨™^�
Ø—W’W�S ™_œ_¨jÑ9Ô9ð "ð "Ø—H’H˜S‘M”M�Mð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "øð"ð		"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s6   ¹A:C/Â3CÃ	C/ÃCÃC/ÃCÃC/Ã/C3Ã6C3N)r)   r*   r+   r‰   r"   ÚclassmethodrØ   rŸ   rO   r(   r   r   r     sS   € € € € € ØcÐcðð ð ð ðð ñ „[ðð
"ð "ð "ð "ð "r(   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   z/ Wrapper that shows a string with a `r` prefix c                 ó   — || _         d S re   rÊ   rÌ   s     r   r"   zRawStringLiteral.__init__>  rÍ   r(   c                 óÀ   — t          | j        ¦  «        }|d d…         dv r|dd …         }d}nd}||                     dd¦  «        z   }|                     |¦  «         d S )Nrx   ÚuUÚurÚrz\\ú\)ÚreprrË   Úreplacern   )r$   rÏ   rª   Ú	base_reprrà   s        r   rŸ   zRawStringLiteral._repr_pretty_A  so   € Ý˜œÑ$Ô$ˆ	Ø�R�a�RŒ=˜DÐ Ð Ø! ! " "œˆIØˆFˆFàˆFØ˜Y×.Ò.¨v°tÑ<Ô<Ñ<ˆ	Ø	�ŠˆyÑÔÐÐÐr(   NrÐ   rO   r(   r   r   r   <  s8   € € € € € Ø9Ð9ðð ð ðð ð ð ð r(   r   c                 ó¼  — t          | dd¦  «        pt          | ¦  «        }t          |dd¦  «        t          j        urt	          | ||¦  «         dS |                     dd¦  «         |                     |¦  «         |                     dt          | ¦  «        z  ¦  «         |r|                     d¦  «         �n|j	        �rd}t          | ¦  «        D ]ò}|                     d	¦  «        sÛ	 t          | |¦  «        }n# t          $ r Y Œ5w xY wt          |t          j        ¦  «        rŒT|s|                     d
¦  «         |                     ¦   «          |                     |¦  «         |                     d¦  «         t%          |¦  «        dz   }|xj        |z  c_        |                     |¦  «         |xj        |z  c_        d}Œó|                     dd¦  «         dS )zw
    The default print function.  Used if an object does not provide one and
    it's none of the builtin objects.
    r'   Nr    rx   ú<z at 0x%xz ...TÚ_r|   rß   Fú>)r   rŽ   r�   r    r§   rJ   r
   rn   r¡   r;   ÚdirÚ
startswithr   ÚAttributeErrorr`   ÚtypesÚ
MethodTypert   rk   rG   rK   )r   rÏ   rª   ÚklassÚfirstr.   rË   Ústeps           r   r¨   r¨   L  sÏ  € õ
 ˜#˜{¨DÑ1Ô1Ð>µT¸#±Y´Y€EÝ�U˜J¨Ñ-Ô-µV´_ÐDÐDå�S˜!˜UÑ#Ô#Ð#ØˆØ‡M‚M�!�SÑÔÐØ‡H‚HˆU�O„O€OØ‡F‚Fˆ:�˜3™œÑÑ Ô Ð Øð Ø	�Šˆv‰Œˆ‰Ø	
Œñ ØˆÝ�s‘8”8ð 	ð 	ˆCØ—>’> #Ñ&Ô&ð ðÝ# C¨Ñ-Ô-�E�EøÝ%ð ð ð Ø�Hðøøøå˜e¥UÔ%5Ñ6Ô6ð ØØð  Ø—F’F˜3‘K”K�KØ—’‘”�Ø—’�s‘”�Ø—’�s‘”�Ý˜3‘x”x !‘|�Ø�” Ñ%�”Ø—’˜‘”�Ø�” Ñ%�”Ø�øØ‡K‚K��3ÑÔÐÐÐs   Ã+C<Ã<
D	ÄD	c                 ó   ‡ ‡— ˆˆ fd„}|S )z|
    Factory that returns a pprint function useful for sequences.  Used by
    the default pprint for tuples and lists.
    c                 óè  •— |r|                      ‰dz   ‰z   ¦  «        S t          ‰¦  «        }|                     |‰¦  «         |                     | ¦  «        D ]E\  }}|r)|                      d¦  «         |                     ¦   «          |                     |¦  «         ŒFt          | ¦  «        dk    r*t          | t          ¦  «        r|                      d¦  «         |                     |‰¦  «         d S )Nr}   r|   rx   )	rn   rk   rJ   r�   rt   r
   r`   ÚtuplerK   )r   rÏ   rª   rú   r€   rb   ÚendÚstarts         €€r   r×   z$_seq_pprinter_factory.<locals>.innerw  sß   ø€ Øð 	/Ø—6’6˜% %™-¨#Ñ-Ñ.Ô.Ð.Ý�5‰zŒzˆØ	�Š�d˜EÑ"Ô"Ð"Ø—l’l 3Ñ'Ô'ð 	ð 	‰FˆC�Øð Ø—’�s‘”�Ø—’‘”�Ø�HŠH�Q‰KŒKˆKˆKÝˆs‰8Œ8�qŠ=ˆ=�Z¨­UÑ3Ô3ˆ=à�FŠF�3‰KŒKˆKØ	�Š�D˜#ÑÔÐÐÐr(   rO   ©rÿ   rþ   r×   s   `` r   Ú_seq_pprinter_factoryr  r  ó)   øø€ ð
ð ð ð ð ð ð €Lr(   c                 ó   ‡ ‡— ˆˆ fd„}|S )zP
    Factory that returns a pprint function useful for sets and frozensets.
    c                 óN  •— |r|                      ‰dz   ‰z   ¦  «        S t          | ¦  «        dk    r,|                      t          | ¦  «        j        dz   ¦  «         d S t          ‰¦  «        }|                     |‰¦  «         |j        rt          | ¦  «        |j        k    st          | ¦  «        }n| }|                     |¦  «        D ]E\  }}|r)|                      d¦  «         |                     ¦   «          | 	                    |¦  «         ŒF| 
                    |‰¦  «         d S )Nr}   r   z()r|   )rn   rk   rŽ   r)   rJ   r8   r3   r�   rt   r
   rK   )	r   rÏ   rª   rú   r2   r€   rb   rþ   rÿ   s	          €€r   r×   z$_set_pprinter_factory.<locals>.innerŒ  s  ø€ Øð 	/Ø—6’6˜% %™-¨#Ñ-Ñ.Ô.Ð.Ýˆs‰8Œ8�qŠ=ˆ=à�FŠF•4˜‘9”9Ô%¨Ñ,Ñ-Ô-Ð-Ð-Ð-å�u‘:”:ˆDØ�MŠM˜$ Ñ&Ô&Ð&àÔ$ð ­¨S©¬°QÔ5EÒ)EÐ)EÝ*¨3Ñ/Ô/��à�ØŸ,š, uÑ-Ô-ð ð ‘��QØð "Ø—F’F˜3‘K”K�KØ—K’K‘M”M�MØ—’˜‘”��Ø�KŠK˜˜cÑ"Ô"Ð"Ð"Ð"r(   rO   r   s   `` r   Ú_set_pprinter_factoryr  ˆ  s)   øø€ ð#ð #ð #ð #ð #ð #ð( €Lr(   c                 ó   ‡ ‡— ˆˆ fd„}|S )zj
    Factory that returns a pprint function used by the default pprint of
    dicts and dict proxies.
    c                 óê  •— |r|                      d¦  «        S t          ‰¦  «        }|                     |‰¦  «         |                      ¦   «         }|                     |¦  «        D ]u\  }}|r)|                      d¦  «         |                     ¦   «          |                     |¦  «         |                      d¦  «         |                     | |         ¦  «         Œv|                     |‰¦  «         d S )Nz{...}r|   z: )rn   rk   rJ   Úkeysr�   rt   r
   rK   )	r   rÏ   rª   rú   r  r€   r.   rþ   rÿ   s	          €€r   r×   z%_dict_pprinter_factory.<locals>.inner¨  sÛ   ø€ Øð 	#Ø—6’6˜'‘?”?Ð"Ý�5‰zŒzˆØ	�Š�d˜EÑ"Ô"Ð"Ø�xŠx‰zŒzˆØŸš TÑ*Ô*ð 	ð 	‰HˆC�Øð Ø—’�s‘”�Ø—’‘”�Ø�HŠH�S‰MŒMˆMØ�FŠF�4‰LŒLˆLØ�HŠH�S˜”XÑÔÐÐØ	�Š�D˜#ÑÔÐÐÐr(   rO   r   s   `` r   Ú_dict_pprinter_factoryr	  £  r  r(   c                 óv  — |                      dd¦  «         |                     | j        ¦  «         |                     d¦  «         |                     ¦   «          t
          r(| j        j        }|                     || u rdn|¦  «         n|                     | j        ¦  «         |                     dd¦  «         dS )zThe pprint for the super type.é   z<super: r|   Nrò   )	rJ   r
   Ú__thisclass__rn   rt   r	   r    Ú__self__rK   )r   rÏ   rª   Údselfs       r   Ú_super_pprintr  ¹  s¨   € à‡M‚M�!�ZÑ Ô Ð Ø‡H‚HˆSÔÑÔÐØ‡F‚Fˆ3�K„K€KØ‡K‚K�M„M€MÝð Ø”Ô%ˆØ	�Š˜ #˜˜��¨5Ñ1Ô1Ð1Ð1à	�Š�”ÑÔÐØ‡K‚K��3ÑÔÐÐÐr(   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú_ReFlagsc                 ó   — || _         d S re   rÊ   rÌ   s     r   r"   z_ReFlags.__init__É  rÍ   r(   c                 ó°   — d}dD ]P}| j         t          t          |¦  «        z  r1|r|                     d¦  «         |                     d|z   ¦  «         d}ŒQd S )NF)ÚTEMPLATEÚ
IGNORECASEÚLOCALEÚ	MULTILINEÚDOTALLÚUNICODEÚVERBOSEÚDEBUGú|zre.T)rË   r   Úrern   )r$   rÏ   rª   Údone_oneÚflags        r   rŸ   z_ReFlags._repr_pretty_Ì  sn   € Øˆð+ð 	 ð 	 ˆDàŒz�G¥B¨Ñ-Ô-Ñ-ð  Øð  Ø—F’F˜3‘K”K�KØ—’�u˜t‘|Ñ$Ô$Ð$Ø�øð	 ð 	 r(   N)r)   r*   r+   r"   rŸ   rO   r(   r   r  r  È  s2   € € € € € ðð ð ð ð  ð  ð  ð  r(   r  c                 ó2  — t                                d¦  «        }| j        rE|                      |t	          | j        ¦  «        t          | j        ¦  «        ¦  «        ¦  «         dS |                      |t	          | j        ¦  «        ¦  «        ¦  «         dS )z4The pprint function for regular expression patterns.z
re.compileN)r   rØ   Úflagsr
   r   Úpatternr  )r   rÏ   rª   Ú
re_compiles       r   Ú_re_pattern_pprintr$  ×  s…   € å×'Ò'¨Ñ5Ô5€JØ
„yð <Ø	�Š��Õ,¨S¬[Ñ9Ô9½8ÀCÄIÑ;NÔ;NÑOÔOÑPÔPÐPÐPÐPà	�Š��Õ,¨S¬[Ñ9Ô9Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;r(   c                 óØ   — t                                d¦  «        }|r-|                      |t          d¦  «        ¦  «        ¦  «         dS |                      |di | j        ¤Ž¦  «         dS )z.The pprint function for types.SimpleNamespace.Ú	namespacer}   NrO   )r   rØ   r
   r   r¤   )r   rÏ   rª   r&  s       r   Ú_types_simplenamespace_pprintr'  à  so   € å×&Ò& {Ñ3Ô3€IØð ,Ø	�Š���7 5™>œ>Ñ*Ô*Ñ+Ô+Ð+Ð+Ð+à	�Š��Ð*Ð*˜Sœ\Ð*Ð*Ñ+Ô+Ð+Ð+Ð+r(   c                 óà  — d„ t          t          | ¦  «        ¦  «        D ¦   «         dd…         t          gk    rt          | ||¦  «         dS t          | dd¦  «        }	 | j        }t          |t          ¦  «        st          d¦  «        ‚n.# t          $ r! | j        }t          |t          ¦  «        sd}Y nw xY w|dv r| 	                    |¦  «         dS | 	                    |dz   |z   ¦  «         dS )	z!The pprint for classes and types.c                 ó4   — g | ]}d t          |¦  «        v ¯|‘ŒS )r    )Úvars)Ú.0Úms     r   ú
<listcomp>z _type_pprint.<locals>.<listcomp>ñ  s(   € Ð@Ð@Ð@ˆa¨*½¸Q¹¼Ð*?Ð*?ˆÐ*?Ð*?Ð*?r(   Nrx   r*   zTry __name__z<unknown type>)NÚ__builtin__ÚbuiltinsÚ
exceptionsú.)
r“   rŽ   r§   r   r+   r`   r1   r   r)   rn   )r   rÏ   rª   r®   r¯   s        r   Ú_type_pprintr2  é  s  € ð AÐ@•8�D ™IœIÑ&Ô&Ð@Ñ@Ô@ÀÀ!ÀÔDÍÈÒNÐNÝ�S˜!˜UÑ#Ô#Ð#Øˆå
˜˜\¨4Ñ
0Ô
0€Cð	$ØÔˆÝ˜$¥Ñ$Ô$ð 	,õ ˜NÑ+Ô+Ð+ð	,øõ ð $ð $ð $ØŒ|ˆÝ˜$¥Ñ$Ô$ð 	$Ø#ˆDøøð$øøøð
 Ð=Ð=Ð=Ø	�Šˆt‰Œˆˆˆà	�Šˆs�S‰y˜4ÑÑ Ô Ð Ð Ð s   Á+B
 Â
(B5Â4B5c                 ó(  — t          | ¦  «        }|                     ¦   «         }|                     ¦   «         5  t          |¦  «        D ]0\  }}|r|                     ¦   «          |                     |¦  «         Œ1	 ddd¦  «         dS # 1 swxY w Y   dS )z9A pprint that just redirects to the normal repr function.N)rì   Ú
splitlinesrN   r~   rv   rn   )r   rÏ   rª   rS   Úlinesr€   Úoutput_lines          r   r§   r§     sÝ   € õ �#‰YŒY€FØ×ÒÑÔ€EØ	
�Š‰Œð  ð  Ý )¨%Ñ 0Ô 0ð 	 ð 	 ÑˆC�Øð Ø—’‘
”
�
Ø�FŠF�;ÑÔÐÐð	 ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ¸ABÂBÂBc                 óò   — t          | d| j        ¦  «        }| j        }|r|dvr|dz   |z   }	 |t          t	          | ¦  «        ¦  «        z   }n# t
          $ r |}Y nw xY w|                     d|z  ¦  «         dS )z4Base pprint for all functions and builtin functions.r+   )r.  r/  r0  r1  z<function %s>N)r   r)   r*   r1   r   rÇ   rn   )r   rÏ   rª   r¯   r®   Úfunc_defs         r   Ú_function_pprintr9    s�   € å˜˜n¨c¬lÑ;Ô;€DØ
Œ.€CØ
ð  ˆsÐCÐCÐCØ�S‰y˜4ÑˆðØ��Y s™^œ^Ñ,Ô,Ñ,€x€xøÝð ð ð Ø€x€x€xðøøøà‡F‚Fˆ?˜XÑ%Ñ&Ô&Ð&Ð&Ð&s   ­A ÁAÁAc           
      óâ   — t          | j        d| j        j        ¦  «        }| j        j        dvr| j        j        ›d|›�}|                     t          |gt          | dd¦  «        ¢R Ž ¦  «         dS )zBase pprint for all exceptions.r+   )r0  r/  r1  r%   rO   N)r   r'   r)   r*   r
   r   )r   rÏ   rª   r¯   s       r   Ú_exception_pprintr;     sv   € å�3”= .°#´-Ô2HÑIÔI€DØ
„}ÔÐ'AÐAÐAØœ-Ô2Ð2Ð2°D°DÐ9ˆà‡H‚H�^˜DÐ<¥7¨3°¸Ñ#;Ô#;Ð<Ð<Ð<Ñ=Ô=Ð=Ð=Ð=r(   rÝ   rÞ   ú[ú]Ú{Ú}zfrozenset({z})zenviron{zdict_proxy({zmappingproxy({c                 óT   — t                                | d¦  «        }|�
|t           | <   |S )z0
    Add a pretty printer for a given type.
    N)rš   r¦   )ÚtypÚfuncÚoldfuncs      r   r   r   _  s.   € õ ×!Ò! # tÑ,Ô,€GØÐà#�˜ÑØ€Nr(   c                 ó\   — | |f}t                                |d¦  «        }|�
|t           |<   |S )z|
    Add a pretty printer for a type specified by the module and name of a type
    rather than the type object itself.
    N)rœ   r¦   )Útype_moduleÚ	type_namerB  r.   rC  s        r   r   r   i  s9   € ð
 ˜	Ð
"€CÝ&×*Ò*¨3°Ñ5Ô5€GØÐà(,Õ  Ñ%Ø€Nr(   Tc                 ó  — t                                | j        j        ¦  «        }|r-|                      |t          d¦  «        ¦  «        ¦  «         d S |                      || j        t          | ¦  «        ¦  «        ¦  «         d S ©Nr}   )r   rØ   r'   r)   r
   r   Údefault_factoryÚdict©r   rÏ   rª   Úcls_ctors       r   Ú_defaultdict_pprintrM  {  sw   € Ý×%Ò% c¤mÔ&<Ñ=Ô=€HØð ;Ø	�Š���' %™.œ.Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*à	�Š��˜#Ô-­t°C©y¬yÑ9Ô9Ñ:Ô:Ð:Ð:Ð:r(   c                 ó‚  — t                                | j        j        ¦  «        }|r-|                      |t          d¦  «        ¦  «        ¦  «         d S t          | ¦  «        r?|                      |t          |                      ¦   «         ¦  «        ¦  «        ¦  «         d S |                      |¦   «         ¦  «         d S rH  )	r   rØ   r'   r)   r
   r   rk   r/   r2   rK  s       r   Ú_ordereddict_pprintrO  ‚  s¨   € Ý×%Ò% c¤mÔ&<Ñ=Ô=€HØð Ø	�Š���' %™.œ.Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*Ý	ˆS‰Œð Ø	�Š���$˜sŸyšy™{œ{Ñ+Ô+Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-à	�Š��‘”ÑÔÐÐÐr(   c                 óx  — t                                | j        j        ¦  «        }|r-|                      |t          d¦  «        ¦  «        ¦  «         d S | j        �4|                      |t          | ¦  «        | j        ¬¦  «        ¦  «         d S |                      |t          | ¦  «        ¦  «        ¦  «         d S )Nr}   )Úmaxlen)r   rØ   r'   r)   r
   r   rQ  r/   rK  s       r   Ú_deque_pprintrR  ‹  s©   € Ý×%Ò% c¤mÔ&<Ñ=Ô=€HØð &Ø	�Š���' %™.œ.Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*Ø	ŒÐ	Ø	�Š���$˜s™)œ)¨C¬JÐ7Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8à	�Š���$˜s™)œ)Ñ$Ô$Ñ%Ô%Ð%Ð%Ð%r(   c                 ó^  — t                                | j        j        ¦  «        }|r-|                      |t          d¦  «        ¦  «        ¦  «         d S t          | ¦  «        r-|                      |t          | ¦  «        ¦  «        ¦  «         d S |                      |¦   «         ¦  «         d S rH  )r   rØ   r'   r)   r
   r   rk   rJ  rK  s       r   Ú_counter_pprintrT  ”  sž   € Ý×%Ò% c¤mÔ&<Ñ=Ô=€HØð Ø	�Š���' %™.œ.Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*Ý	ˆS‰Œð Ø	�Š���$˜s™)œ)Ñ$Ô$Ñ%Ô%Ð%Ð%Ð%à	�Š��‘”ÑÔÐÐÐr(   c                 óò   — t                                | j        j        ¦  «        }|r-|                      |t          d¦  «        ¦  «        ¦  «         d S |                      || j        ¦  «        ¦  «         d S rH  )r   rØ   r'   r)   r
   r   rˆ   rK  s       r   Ú_userlist_pprintrV  ž  sn   € Ý×%Ò% c¤mÔ&<Ñ=Ô=€HØð %Ø	�Š���' %™.œ.Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*à	�Š��˜#œ(Ñ#Ô#Ñ$Ô$Ð$Ð$Ð$r(   ÚcollectionsÚdefaultdictÚOrderedDictr   ÚCounterÚUserListÚ__main__)Ú	randrangec                   ó   — e Zd Zd„ Zd„ ZdS )ÚFooc                 óÞ   — d| _         t          j        d¦  «        | _        t                               t          d¦  «        t          dd¦  «        ¦  «        | _        d| _	        dd| g| _
        d S )Nrx   z\s+é   é(   ggš°ýàÖ@ÚblubÚblah)Úfoor  ÚcompileÚbarrJ  ÚfromkeysÚranger]  rc  Úheher/   r·   s    r   r"   zFoo.__init__¯  sX   € ØˆDŒHÝ”z &Ñ)Ô)ˆDŒHÝŸš¥e¨B¡i¤iµ¸1¸bÑ1AÔ1AÑBÔBˆDŒIØ$ˆDŒIØ ¨Ð.ˆDŒIˆIˆIr(   c                 ó$   — t          d¦  «         d S )Nre  )Úprintr·   s    r   Úget_foozFoo.get_foo¶  s   € Ý�%‰LŒLˆLˆLˆLr(   N)r)   r*   r+   r"   rm  rO   r(   r   r_  r_  ®  s2   € € € € € ð	/ð 	/ð 	/ð	ð 	ð 	ð 	ð 	r(   r_  )r;   re   )gr‰   Ú
contextlibr   ÚdatetimeÚosr  rA   rö   rW  r   Úinspectr   Úior   Úwarningsr   ÚIPython.utils.decoratorsr   ÚIPython.utils.py3compatr	   Ú__all__rŠ   rŽ   rf  Ú_re_pattern_typer   r   r3   r
   r   r�   rE   r   r“   r   r±   ra   rr   rW   rY   r   r   r   r¨   r  r  r	  r  r  r$  r'  r2  r§   r9  r;  ÚBaseExceptionÚ_exception_baseÚ	NameErrorr   ÚintÚfloatr1   rý   r/   rJ  ÚsetÚ	frozensetr!   ÚFunctionTypeÚBuiltinFunctionTyper÷   ÚSimpleNamespaceÚ	timedeltarš   ÚenvironÚ	_env_typeÚ
setdefaultÚDictProxyTypeÚ	ClassTypeÚ	SliceTyperõ   ÚMappingProxyTypeÚsliceri  Úbytesrœ   r   r   rh  Úmapr¡   ÚEllipsisÚNotImplementedr—   rM  rO  rR  rT  rV  r)   Úrandomr]  r_  rO   r(   r   ú<module>r�     s#  ðð]ð ]ð~ &Ð %Ð %Ð %Ð %Ð %Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (ðUð Uð U€ð €Ø�4˜
˜œ
 2™œÑ'Ô'Ð ð	ð 	ð 	ð 	ð ð/ð /ð /ð /ð /�ñ /ô /ñ „ð/ðð ð ð ¨°TÈ.ð ð ð ð ð ¨°TÈ.ð ð ð ð ð*ð *ð *ð *ð *˜ñ *ô *ð *ð(}ð }ð }ð }ð }Ð&ñ }ô }ð }ð@ð ð ð&]ð ]ð ]ð ]ð ]˜Mñ ]ô ]ð ]ð@ð ð ð ð �ñ ô ð ðð ð ð ð ˆ9ñ ô ð ð )ð )ð )ð )ð )�	ñ )ô )ð )ð, ð  ð  ð  ð  ˆIñ  ô  ð  ðð ð ð ð �ñ ô ð ð>
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð%"ð %"ð %"ð %"ð %"ñ %"ô %"ð %"ðPð ð ð ð ñ ô ð ð #ð #ð #ðLð ð ð,ð ð ð6ð ð ð,ð ð ð ð  ð  ð  ð  ñ  ô  ð  ð<ð <ð <ð,ð ,ð ,ð!ð !ð !ð<	 ð 	 ð 	 ð
'ð 
'ð 
'ð>ð >ð >ð Ø#€O€OøØð  ð  ð  Ø€O€O€Oð øøøð
Ø ðà	 ðð  ðð 
Ð 5Ð 5°c¸3Ñ ?Ô ?ð	ð
 	Ð 5Ð 5°c¸3Ñ ?Ô ?ðð 	Ð 6Ð 6°s¸CÑ @Ô @ðð Ð 5Ð 5°c¸3Ñ ?Ô ?ðð Ð 5Ð 5°mÀTÑ JÔ Jðð 
 ðð Ð 2ðð 	 ðð 
ÔÐ 0ðð 
ÔÐ 0ðð 
Ô ðð 
ÔÐ =ðð  Ô ð!ð" Ô ð#ð$ Ð 1ð%ð €ð, ˆD�”ÑÔ€	à�DÐÐØ!7Ð!7¸
ÀCÑ!HÔ!H€O�IÑð
*ð ×Ò˜uÔ2Ø5Ð5°nÀdÑKÔKñMô Mð Mà'3€O�E”OÑ$Ø'3€O�E”OÑ$Ð$øØð *ð *ð *àÐÐ/°Ñ6Ô6ð �EÔ*Ñ+à)€O�EÑÐÐð*øøøð
 &€�Ñ Ø%€�Ñ ðÐ ðð ð ð
ð 
ð 
ð —}’} S S¨¨d°D¸%ÀØ&4ð.6ñ &7ô &7Ø8DñFô FÐ ð;ð ;ð ;ðð ð ð&ð &ð &ðð ð ð%ð %ð %ð Ð � Ð/BÑ CÔ CÐ CØ Ð � Ð/BÑ CÔ CÐ CØ Ð � ¨Ñ 7Ô 7Ð 7Ø Ð � 	¨?Ñ ;Ô ;Ð ;Ø Ð � 
Ð,<Ñ =Ô =Ð =àˆzÒÐØ Ð Ð Ð Ð Ð ð	ð 	ð 	ð 	ð 	ˆfñ 	ô 	ð 	ð €Fˆ3ˆ3‰5Œ5˜$ÐÑÔÐÐÐð Ðs$   ÅE ÅE#Å"E#È9I ÉI.É-I.