3 Õì2a_;ã@sÔddlZddlZddlZddlZddlmZmZmZddddgZ iZ Gdd„dƒZ Gd d„de ƒZ Gd d„de ƒZ d d „Zdd d„Zddd„Zddd„Zddd„Zdd„Zdd„Zdd„Zdd„ZedkrÐeƒdS) éN)ÚNAMEÚDEDENTÚOPÚ readmoduleÚ readmodule_exÚClassÚFunctionc@seZdZdd„Zdd„ZdS)Ú_ObjectcCs(||_||_||_||_||_i|_dS)N)ÚmoduleÚnameÚfileÚlinenoÚparentÚchildren)Úselfr r r r r©rú,/opt/alt/python36/lib64/python3.6/_pyclbr.pyÚ__init__7s z_Object.__init__cCs||j|<dS)N)r)rr ÚobjrrrÚ _addchild?sz_Object._addchildN)Ú__name__Ú __module__Ú __qualname__rrrrrrr 5sr c@seZdZddd„ZdS)rNcCstj||||||ƒdS)N)r r)rr r r r rrrrrEszFunction.__init__)N)rrrrrrrrrCscs&eZdZd‡fdd„ Zdd„Z‡ZS)rNcs0tj||||||ƒ|dkr gn||_i|_dS)N)r rÚsuperÚmethods)rr r rr r r)Ú __class__rrrKszClass.__init__cCs||j|<dS)N)r)rr r rrrÚ _addmethodPszClass._addmethod)N)rrrrrÚ __classcell__rr)rrrIscCs:t|j||j||ƒ}|j||ƒt|tƒr6|j||ƒ|S)N)rr r rÚ isinstancerr)ÚobÚ func_namer ZnewfuncrrrÚ_nest_functionTs    r!cCs&t|j|||j||ƒ}|j||ƒ|S)N)rr r r)rÚ class_namer rZnewclassrrrÚ _nest_class\s r#cCs:i}x0t||pgƒjƒD]\}}t|tƒr|||<qW|S)N)Ú _readmoduleÚitemsrr)r ÚpathÚresÚkeyÚvaluerrrrbs   cCst||p gƒS)N)r$)r r&rrrrnscCs`|dk rd||f}n|}|tkr*t|Si}|tjkrL|dkrL|t|<|S|jdƒ}|dkrÀ|d|…}||dd…}t|||ƒ}|dk ršd||f}d|kr°tdj|ƒƒ‚t||d|ƒSd} |dk rÒ|} n |tj} tj j || ƒ} |t|<| j dk �r| j |d<y| j j |ƒ} | dk�r$|SWnttfk �r@|SX| j j|ƒ} t||| | ||ƒS)Nz%s.%sÚ.réÚ__path__zNo package named {})Ú_modulesÚsysÚbuiltin_module_namesÚrfindr$Ú ImportErrorÚformatr&Ú importlibÚutilÚ_find_spec_from_pathÚsubmodule_search_locationsÚloaderÚ get_sourceÚAttributeErrorÚ get_filenameÚ _create_tree)r r&Ú inpackageÚ fullmoduleÚtreeÚiÚpackageZ submodulerÚfZ search_pathÚspecÚsourceÚfnamerrrr$wsF           r$c!Csltj|ƒ}g}tj|jƒ}�y,�x$|D�]\} } } } } | tkrh| \}}x|rd|dd|krd|d=qHWq&| dk�r| \}}x|r˜|dd|kr˜|d=q|Wt|ƒdd…\} }} | tkrºq&d}|rÜ|dd}t|||ƒ}nt ||||ƒ}|||<|j ||fƒq&| dk�rò| \}}x$|�r8|dd|k�r8|d=�qWt|ƒdd…\} }} | tk�r\q&t|ƒdd…\} } } d}| dk�r¨g}d}g}�xt|ƒdd…\} } } | dk�r2|dk�r2d j |ƒ}||k�rØ||}nL|j d ƒ}t |ƒdk�r$|d}|d}|tk�r$t|}||k�r$||}|j |ƒg}| dk�rF|d7}nX| dk�rf|d8}|dk�ržPn8| dk�r||dk�r|n"| ttfk�r�|dk�r�|j | ƒ�q�W|}|�rÊ|dd}t||||ƒ}nt|||||ƒ}|||<|j ||fƒq&| d k�r‚| ddk�r‚t|ƒ}xl|D]d\}}yL|dk�r8t||ƒn2yt|||ƒWn tk �rht|gƒYnXWn YnX�qWq&| d kr&| ddkr&t|ƒ\}} | s&| d k�r´q&t|ƒ}yt|||ƒ}Wnw&YnXxd|D]\\}} ||k�r|||| �p|<n4|dk�râx(|D] }|ddk�r||||<�qW�qâWq&WWntk �r^YnX|jƒ|S)Nr+ÚdefréÚclassú(ú)ú,Úr*éÚimportÚfromÚ*Ú_éÿÿÿÿrQrQrQrQrQrQ)rIrJéþÿÿÿrQrQ)ÚioÚStringIOÚtokenizeÚgenerate_tokensÚreadlinerÚnextrr!rÚappendÚjoinÚsplitÚlenr-rr#rÚ _getnamelistr$r1Ú_getnameÚ StopIterationÚclose)!r=r&rDrCr>r<rAÚstackÚgÚ tokentypeÚtokenÚstartZ_endÚ_liner Z thisindentr Zcur_funcZcur_objr"ZinheritÚnamesÚlevelrÚnÚcÚmÚdZ cur_classÚmodulesÚmodZ_mod2Zn2rrrr;´sÎ                             r;cCstg}xjt|ƒ\}}|sP|dkr.t|ƒ\}}nd}|j||fƒx |dkr`d|kr`t|ƒd}qBW|dkrPqW|S)NÚasrJÚ r+)r^rYrX)rbrgr rdZname2rrrr]Cs r]cCs”g}t|ƒdd…\}}|tkr0|dkr0d|fS|j|ƒxJt|ƒdd…\}}|dkrZPt|ƒdd…\}}|tkrxP|j|ƒqzsz_main..T)r(ÚreverserLÚindentz{}class {} {} {}ú z {}def {} {}éýÿÿÿ)Úosr.ÚargvÚ__file__r&ÚexistsÚdirnameÚbasenameÚlowerÚendswithrÚsortedÚvaluesÚpoprÚlistÚhasattrrvr rÚextendrÚprintr2r rr r) ryrnr&r>Z lineno_keyZobjsZ indent_levelrZnew_objsrrrrÚ_mainks@             rˆÚ__main__)N)N)N)N)rSr.Úimportlib.utilr3rUrdrrrÚ__all__r-r rrr!r#rrr$r;r]r^rˆrrrrrÚ*s*    =&