o
    ^i                     @   s   d dl mZ d dl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 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 )    )Iterator)	dataclassfield)AnyTypeVarUnion)Visitor)out)lib2to3_parse)token)LeafNode	type_reprTc                   @   s   e Zd ZU dZeed< eedZee	 ed< dZ
eed< de	ded	ed
dfddZ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)default_factorylist_outputTprint_outputmessageargskwargsreturnNc                 O   s0   | j | | jrt|g|R i | d S d S )N)r   appendr   r	   )selfr   r   r    r   P/var/www/html/stock_analysis/be/venv/lib/python3.10/site-packages/black/debug.pyr	      s   zDebugVisitor.outnodec                 c   s    dd| j   }t|trHt|j}| j| | dd |  j d7  _ |jD ]
}| |E d H  q'|  j d8  _ | j| d| ddd d S tj	
|jt|j}| j| | d	dd
 |jro| jd|jdddd | j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)r   r   indent_typechildr   r   r   visit_default   s   


zDebugVisitor.visit_defaultcodec                 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+   )clsr5   vr   r   r   show.   s   
zDebugVisitor.show)__name__
__module____qualname__r   int__annotations__r   r6   r   r.   r   boolr   r	   LNr   r   r4   classmethodr   r   r   r9   r   r   r   r   r      s   
 "r   N)collections.abcr   dataclassesr   r   typingr   r   r   black.nodesr   black.outputr	   black.parsingr
   blib2to3.pgen2r   blib2to3.pytreer   r   r   r@   r   r   r   r   r   r   <module>   s    