
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a—;  ã                   @   sÔ   d dl Z d dlZd dlZd dlZd dlmZmZmZ ddddgZ	i Z
G dd„ dƒZG d	d„ deƒZG d
d„ deƒZdd„ Zddd„Zddd„Zddd„Zddd„Zdd„ Zdd„ Zdd„ Zdd„ ZedkrÐeƒ  dS ) é    N)ÚNAMEÚDEDENTÚOPÚ
readmoduleÚreadmodule_exÚClassÚFunctionc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_Objectc                 C   s(   || _ || _|| _|| _|| _i | _d S ©N)ÚmoduleÚnameÚfileÚlinenoÚparentÚchildren©Úselfr   r   r   r   r   © r   ú+/opt/alt/python38/lib64/python3.8/pyclbr.pyÚ__init__6   s    z_Object.__init__c                 C   s   || j |< d S r
   )r   )r   r   Úobjr   r   r   Ú	_addchild>   s    z_Object._addchildN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r	   4   s   r	   c                   @   s   e Zd Zddd„ZdS )r   Nc                 C   s   t  | |||||¡ d S r
   )r	   r   r   r   r   r   r   D   s    zFunction.__init__)N)r   r   r   r   r   r   r   r   r   B   s   c                       s&   e Zd Zd‡ fdd„	Zdd„ Z‡  ZS )r   Nc                    s0   t  | |||||¡ |d kr g n|| _i | _d S r
   )r	   r   ÚsuperÚmethods)r   r   r   r   r   r   r   ©Ú	__class__r   r   r   J   s    zClass.__init__c                 C   s   || j |< d S r
   )r   )r   r   r   r   r   r   Ú
_addmethodO   s    zClass._addmethod)N)r   r   r   r   r   Ú__classcell__r   r   r   r   r   H   s   c                 C   s:   t | j|| j|| ƒ}|  ||¡ t| tƒr6|  ||¡ |S r
   )r   r   r   r   Ú
isinstancer   r   )ÚobÚ	func_namer   Znewfuncr   r   r   Ú_nest_functionS   s
    
r$   c                 C   s&   t | j||| j|| ƒ}|  ||¡ |S r
   )r   r   r   r   )r"   Ú
class_namer   r   Znewclassr   r   r   Ú_nest_class[   s    r&   c                 C   s6   i }t | |pg ƒ ¡ D ]\}}t|tƒr|||< q|S r
   )Ú_readmoduleÚitemsr!   r   )r   ÚpathÚresÚkeyÚvaluer   r   r   r   a   s
    

c                 C   s   t | |p
g ƒS r
   )r'   )r   r)   r   r   r   r   m   s    c              	   C   s€  |d k	rd|| f }n| }|t kr*t | S i }| tjkrL|d krL|t | < |S |  d¡}|dkrÀ| d |… }| |d d … }t|||ƒ}|d k	ršd||f }d|kr°td |¡ƒ‚t||d |ƒS d }	|d k	rÒ|}
n
|tj }
tj	 
||
¡}|d k�rtd|›�|d�‚|t |< |jd k	�r$|j|d< z|j |¡}W n ttfk
�rR   | Y S X |d k�rb|S |j |¡}t||||||ƒS )	Nz%s.%sÚ.r   é   Ú__path__zNo package named {}zno module named )r   )Ú_modulesÚsysÚbuiltin_module_namesÚrfindr'   ÚImportErrorÚformatr)   Ú	importlibÚutilÚ_find_spec_from_pathÚModuleNotFoundErrorÚsubmodule_search_locationsÚloaderÚ
get_sourceÚAttributeErrorÚget_filenameÚ_create_tree)r   r)   Ú	inpackageÚ
fullmoduleÚtreeÚiÚpackageZ	submoduler   ÚfZsearch_pathÚspecÚsourceÚfnamer   r   r   r'   v   sJ    	





r'   c           !   
   C   sH  t  |¡}g }t |j¡}�z|D �]ü\}	}
}}}|	tkr`|\}}|r^|d d |kr^|d= qBq"|
dkrô|\}}|rŒ|d d |krŒ|d= qpt|ƒdd… \}	}}|	tkr¬q"d }|rÎ|d d }t|||ƒ}nt	| |||ƒ}|||< | 
||f¡ q"|
dk�rÜ|\}}|�r(|d d |k�r(|d= �qt|ƒdd… \}	}}|	tk�rJq"t|ƒdd… \}	}
}d }|
dk�r’g }d}g }t|ƒdd… \}	}
}|
dk�r|dk�rd	 |¡}||k�rÂ|| }nL| d
¡}t|ƒdk�r|d }|d }|tk�rt| }||k�r|| }| 
|¡ g }|
dk�r0|d7 }nZ|
dk�rR|d8 }|dk�rŠ�qŽn8|
dk�rh|dk�rhn"|	ttfk�rz|dk�rz| 
|
¡ �qz|}|�r´|d d }t||||ƒ}nt| ||||ƒ}|||< | 
||f¡ q"|
dk�rh|d dk�rht|ƒ}|D ]d\}}zL|d k�r t||ƒ n2zt|||ƒ W n  tk
�rP   t|g ƒ Y nX W n   Y nX �q q"|
dkr"|d dkr"t|ƒ\}}
|r"|
dk�r˜q"t|ƒ}zt|||ƒ}W n   Y q"Y nX |D ]X\}} ||k�rì|| || �pè|< n0|dk�rÆ|D ] }|d dk�rú|| ||< �qú�qÆq"W n tk
�r:   Y nX | ¡  |S )Néÿÿÿÿr.   Údefr   é   Úclassú()ú)ú,Ú r-   éþÿÿÿrN   rO   ÚimportÚfromÚ*Ú_)ÚioÚStringIOÚtokenizeÚgenerate_tokensÚreadliner   Únextr   r$   r   ÚappendÚjoinÚsplitÚlenr0   r   r&   r   Ú_getnamelistr'   r4   Ú_getnameÚStopIterationÚclose)!rA   r)   rH   rG   rB   r@   rE   ÚstackÚgÚ	tokentypeÚtokenÚstartZ_endÚ_liner   Z
thisindentr#   Zcur_funcZcur_objr%   ZinheritÚnamesÚlevelr   ÚnÚcÚmÚdZ	cur_classÚmodulesÚmodZ_mod2Zn2r   r   r   r?   ¶   sØ    
















   ÿ ÿ



r?   c                 C   sl   g }t | ƒ\}}|sqh|dkr,t | ƒ\}}nd }| ||f¡ |dkr\d|kr\t| ƒd }q>|dkrqhq|S )NÚasrO   Ú
r.   )ra   r\   r[   )re   rj   r   rg   Zname2r   r   r   r`   E  s    r`   c                 C   s�   g }t | ƒdd… \}}|tkr0|dkr0d |fS | |¡ t | ƒdd… \}}|dkrXq‚t | ƒdd… \}}|tkrvq‚| |¡ q:d |¡|fS )Nr   é   rT   r-   )r[   r   r\   r]   )re   Úpartsrf   rg   r   r   r   ra   [  s    
ra   c            
      C   sX  dd l } ztjd }W n   t}Y nX | j |¡rj| j |¡g}| j |¡}| ¡  	d¡rn|d d… }ng }t
||ƒ}dd„ }t| ¡ |dd�}d	}|�rT| ¡ }t|tƒr°q–t|d
ƒsÀd|_t|tƒrþt|j ¡ |dd�}|D ]}	|j| |	_qâ| |¡ t|tƒ�r,td d|j |j|j|j¡ƒ q–t|tƒr–td d|j |j|j¡ƒ q–d S )Nr   r.   z.pyéýÿÿÿc                 S   s   t | ddƒS )Nr   r   )Úgetattr)Úar   r   r   Ú<lambda>|  ó    z_main.<locals>.<lambda>T)r+   Úreversert   Úindentz{}class {} {} {}ú z{}def {} {})Úosr1   ÚargvÚ__file__r)   ÚexistsÚdirnameÚbasenameÚlowerÚendswithr   ÚsortedÚvaluesÚpopr!   ÚlistÚhasattrr|   r	   r   Úextendr   Úprintr5   r   r   r   r   )
r~   rq   r)   rB   Z
lineno_keyZobjsZindent_levelr   Znew_objsr"   r   r   r   Ú_mainm  sL    





 ÿ
   ÿ
r�   Ú__main__)N)N)N)N)rV   r1   Úimportlib.utilr6   rX   rg   r   r   r   Ú__all__r0   r	   r   r   r$   r&   r   r   r'   r?   r`   ra   r�   r   r   r   r   r   Ú<module>)   s*   


	
@ &