B
    .zf                 @   s  U 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
 d dlmZ d d	lmZ erd d
lmZ d dlmZ eejejejf ZejfZe	e
e df ed< ejfZe	e
e df ed< yd d
lmZ d dlmZ W n ek
r    dZY n&X eejejf7 Zeejejf7 ZdZeedddZdedddZd(dee	edf dddZd)deedddZd*eddef eeef eeeddd Zeedd!d"d#Zd+eee  ed$d%d&Ze d'kr e!e  dS ),    N)Any)	Generator)Optional)Sequence)Tuple)Type)TYPE_CHECKING)Union)ast27)ast3.ASTexpr_contextFT)nodereturnc             C   s   t | tot | t S )N)
isinstancer   r   )r    r   L/home/ankuromar296_gmail_com/.local/lib/python3.7/site-packages/astpretty.py_is_sub_node    s    r   ASTTypec             C   sV   xP| j D ]B}t| |}t|r"dS t|ttfrx|D ]}t|r6dS q6W qW dS d S )NFT)_fieldsgetattrr   r   listtuple)r   fieldattrvalr   r   r   _is_leaf$   s    

r   )nshow_offsetsr   c             C   s   |r| j | j S | jS d S )N)_attributesr   )r   r   r   r   r   r   1   s    r   )r   r   r   c          
      sn   t  tr:dt jd fddt dD S t  trbddfdd D S t S d S )Nz{}({})z, c             3   s(   | ] }d  |tt |dV  qdS )z{}={})r   N)format_leafr   ).0r   )r   r   r   r   	<genexpr>=   s   z_leaf.<locals>.<genexpr>)r   z[{}]c             3   s   | ]}t | d V  qdS ))r   N)r!   )r"   x)r   r   r   r#   F   s    )	r   r   r    type__name__joinr   r   repr)r   r   r   )r   r   r   r!   8   s    

r!       )r   indentr   _indentr   c                s  | d krt | S t| tr"t | S t| r6t| dS ttrJd nG  fdddtjtd dfdd}tdfd	d
}dt	dd tf ttdfdd}t
| jd }|   xt| dD ]}t| |}	|	g k rd}
nt|	trJt|	dkrJt|	d trJt|	d rJd||	d  d}
n~t|	trd}
| 0 x(|	D ] }|
d| ||j7 }
qhW W d Q R X |
| d 7 }
n"t|	tr||	j}
nt |	}
||  | d|
 d7 }qW W d Q R X || d 7 }|S d S )N)r    c                   s   e Zd Z ZdS )zpformat.<locals>.stateN)r&   
__module____qualname__r*   r   )r+   r   r   state^   s   r/   )NNN)r   c               3   s&     j d7  _ d V    j d8  _ d S )N   )r*   r   )r/   r   r   indenteda   s    zpformat.<locals>.indentedc                  s
   j   S )N)r*   r   )indent_sr/   r   r   	indentstrg   s    zpformat.<locals>.indentstrr   r   )elr+   r   c                s   t |  |dS )N)r*   r   r+   )pformat)r4   r+   )r*   r   r   r   _pformatj   s    zpformat.<locals>._pformatz(
z[]r0   []z[
z{}{},
=z,
))r   )r(   r   strr   r!   int
contextlibcontextmanagerr   r	   r%   r&   r   r   r   lenr   r    r*   )r   r*   r   r+   r1   r3   r6   outr   r   Zrepresentationr4   r   )r+   r*   r2   r   r/   r   r5   L   sL    


$



$(r5   )argskwargsr   c              O   s   t t| | d S )N)printr5   )rA   rB   r   r   r   pprint   s    rD   )argvr   c          	   C   s   t  }|d |jdddd | }|jdtjddtjd	d
 trt|jdddtjdd |jdddtjdd |	| }|j
tjkotjdk}|rddi}ni }t|jd}| }W d Q R X t|j
|f||jd dS )Nfilenamez--no-show-offsetsr   store_false)destactionz	--untyped
parse_funcstore_constz&(default) Use the stdlib `ast` parser.)defaultrH   rI   consthelpz
--typed-27z%Use typed_ast.ast27 to parse the ast.)rH   rI   rM   rN   z	--typed-3z$Use typed_ast.ast3 to parse the ast.)      type_commentsTrb)r   r   )argparseArgumentParseradd_argumentadd_mutually_exclusive_groupastparsetyped_supportr
   r   
parse_argsrJ   sysversion_infoopenrF   readrD   r   )rE   parsergrprA   rQ   rB   fcontentsr   r   r   main   s8    


rc   __main__)T)T)r)   Tr   )N)"rS   rW   r=   r[   typingr   r   r   r   r   r   r   r	   Z	typed_astr
   r   r   r   __annotations__r   ImportErrorrY   boolr   r   r;   r   r!   r<   r5   rD   rc   r&   exitr   r   r   r   <module>   sL    
  =&
