a
    g	g:                     @   s   d dl 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 d dlmZmZmZ eeef ZedZeG d	d
 d
ee ZdS )    )	dataclass)IteratorTypeVarUnion)Visitor)out)lib2to3_parse)token)LeafNode	type_reprTc                   @   sL   e Zd ZU dZeed< eee dddZ	e
eeeef dddd	ZdS )
DebugVisitorr   
tree_depth)nodereturnc                 c   s   dd| j   }t|trt|j}t| | dd |  j d7  _ |jD ]}| |E d H  qJ|  j d8  _ t| d| ddd n`tj	
|jt|j}t| | d	dd
 |jrtd|jdddd td|jd	dd d S )N    Zyellow)fg   /F)r   boldZblue)r   nlZgreen)r   r   r   )r   
isinstancer   r   typer   childrenvisitr	   tok_namegetstrprefixvalue)selfr   indent_typechild r&   N/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/black/debug.pyvisit_default   s    


zDebugVisitor.visit_defaultN)coder   c                 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   r-   r&   r&   r&   r'   r      s   
r   N)Zdataclassesr   typingr   r   r   Zblack.nodesr   Zblack.outputr   Zblack.parsingr   Zblib2to3.pgen2r	   Zblib2to3.pytreer
   r   r   r3   r   r   r&   r&   r&   r'   <module>   s   