o
    b;                     @   s   d dl mZ d dlmZmZmZ d dl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 eeef ZedZeG d	d
 d
ee ZdS )    )	dataclass)IteratorTypeVarUnion)NodeLeaf	type_repr)token)Visitor)out)lib2to3_parseTc                   @   sP   e Zd ZU dZeed< dedee fddZ	e
deeeef ddfd	d
ZdS )DebugVisitorr   
tree_depthnodereturnc                 c   s    dd| j   }t|trFt|j}t| | dd |  j d7  _ |jD ]
}| |E d H  q&|  j d8  _ t| d| ddd d S tj	
|jt|j}t| | d	dd
 |jrktd|jdddd td|jd	dd d S )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)selfr   indent_typechild r)   J/var/www/secure340b-portal/env/lib/python3.10/site-packages/black/debug.pyvisit_default   s   


zDebugVisitor.visit_defaultcodeNc                 C   s*   t  }t|trt|}t|| dS )zmPretty-print the lib2to3 AST of a given string of `code`.

        Convenience method for debugging.
        N)r   r   r"   r   listr   )clsr,   vr)   r)   r*   show'   s   
zDebugVisitor.show)__name__
__module____qualname__r   int__annotations__LNr   r   r+   classmethodr   r"   r   r   r0   r)   r)   r)   r*   r      s
   
 "r   N)dataclassesr   typingr   r   r   Zblib2to3.pytreer   r   r   Zblib2to3.pgen2r	   Zblack.nodesr
   Zblack.outputr   Zblack.parsingr   r6   r   r   r)   r)   r)   r*   <module>   s    