
    er                         d dl mZmZ d dlmZmZmZmZ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mZmZ eeef   Z ed      Ze G d	 d
e
e                Zy)    )	dataclassfield)AnyIteratorListTypeVarUnion)Visitor)out)lib2to3_parse)token)LeafNode	type_reprTc                       e Zd ZU dZeed<    ee      Ze	e
   ed<   dZeed<   de
ded	ed
dfdZded
ee   fdZedee
eef   d
dfd       Zy)DebugVisitorr   
tree_depth)default_factorylist_outputTprint_outputmessageargskwargsreturnNc                 r    | j                   j                  |       | j                  rt        |g|i | y y )N)r   appendr   r   )selfr   r   r   s       -/usr/lib/python3/dist-packages/black/debug.pyr   zDebugVisitor.out   s6    ()$)&)     nodec              #     K   dd| j                   z  z  }t        |t              rt        |j                        }| j                  | | d       | xj                   dz  c_         |j                  D ]  }| j                  |      E d {     | xj                   dz  c_         | j                  | d| dd       y t        j                  j                  |j                  t        |j                              }| j                  | | d	d
       |j                  r"| j                  d|j                  ddd       | j                  d|j                  d	d       y 7 ڭw)N    yellow)fg   /F)r&   boldblue)r&   nlgreen)r&   r)   r+   )r   
isinstancer   r   typer   childrenvisitr   tok_namegetstrprefixvalue)r   r!   indent_typechilds        r   visit_defaultzDebugVisitor.visit_default   s1    DOO+,dD!dii(EHHxw'HH5OOq O -::e,,,- OOq OHHxq(XEHBNN&&tyy#dii.AEHHxw'FuH={{ 1T[[O,uOHHq'FH? -s   BE&	E$
CE&codec                     t               }t        |t              rt        |      }t	        |j                  |             y)zmPretty-print the lib2to3 AST of a given string of `code`.

        Convenience method for debugging.
        N)r   r-   r3   r   listr0   )clsr:   vs      r   showzDebugVisitor.show-   s/     !-dC  &DQWWT]r    )__name__
__module____qualname__r   int__annotations__r   r<   r   r   r3   r   boolr   r   LNr   r   r9   classmethodr	   r   r   r?    r    r   r   r      s    J"48Kc8L$*3 *s *c *d *
@" @! @( c4o. 4  r    r   N)dataclassesr   r   typingr   r   r   r   r	   black.nodesr
   black.outputr   black.parsingr   blib2to3.pgen2r   blib2to3.pytreer   r   r   rF   r   r   rH   r    r   <module>rP      sV    ( 6 6   '   1 1
4:CL '71: ' 'r    