o ?Og,@s ddlZddlZddlZgdZiZGdddZGdddeZGdddeZdd d Z dd d Z dddZ dddZ dddZ GdddejZddZddZedkr]edSdS)N) readmodule readmodule_exClassFunctionc@seZdZ ddZdS)_ObjectcCsD||_||_||_||_||_||_i|_|dur ||j|<dSdSN)modulenamefilelineno end_linenoparentchildren)selfrr r r r r r-/opt/alt/python310/lib64/python3.10/pyclbr.py__init__7sz_Object.__init__N)__name__ __module__ __qualname__rrrrrr5s rcs(eZdZ dddfdd ZZS)rNFr cs8t||||||||_t|tr||j|<dSdSr)superris_async isinstancermethods)rrr r r r rr  __class__rrrFs  zFunction.__init__)NFrrrr __classcell__rrrrrD rcs(eZdZ dddfdd ZZS)rNrcs*t|||||||pg|_i|_dSr)rrr)rrr Zsuper_r r r r rrrrPs  zClass.__init__rrrrrrrNrrFc Cs t|j||j||||dS)N)r rr )rrr )obZ func_namer r rrrr_nest_functionYsr!c Cs t|j|||j|||dS)Nr r )rrr )r class_namer r rrrr _nest_class^sr$cCs8 i}t||pgD] \}}t|tr|||<q |Sr) _readmoduleitemsrr)rpathreskeyvaluerrrrds rcCs t||pgSr)r%)rr'rrrrpsrc Csx |dur d||f}n|}|tvrt|Si}|tjvr'|dur'|t|<|S|d}|dkra|d|}||dd}t|||}|durNd||f}d|vrYtd|t||d|Sd} |durj|} n|tj} tj || } | durt d||d|t|<| j dur| j |d<z| j |} Wn ttfy|YSw| dur|S| j |} t||| | ||S) Nz%s.%s.r__path__zNo package named {}zno module named )r )_modulessysbuiltin_module_namesrfindr% ImportErrorformatr' importlibutil_find_spec_from_pathModuleNotFoundErrorsubmodule_search_locationsloader get_sourceAttributeError get_filename _create_tree)rr' inpackage fullmoduletreeipackageZ submoduler fZ search_pathspecsourcefnamerrrr%zsN        r%c@sBeZdZddZddZddddZd d Zd d Zd dZdS)_ModuleBrowsercCs(||_||_||_||_||_g|_dSr)r'r@r rr>stack)rrr'r r@r>rrrrs  z_ModuleBrowser.__init__c Csg}|jD];}t|}||jvr||j|qt|d}dkr;|^}}}|tvr:|t|||q||q|j rI|j dnd} t |j |j ||j |j| |jd}| dure||j|j <|j ||||j dS)Nr+r,r")basesastZunparser@appendlensplitr.getrHrrr r r r generic_visitpop) rnoderJbaser names_rZclass_r rrrvisit_ClassDefs(        z_ModuleBrowser.visit_ClassDefFrc Csl|jr|jdnd}t|j|j|j|j|||jd}|dur$||j|j<|j|| ||j dS)NrIr) rHrrr r r r r@rLrPrQ)rrRrr Zfunctionrrrvisit_FunctionDefs   z _ModuleBrowser.visit_FunctionDefcCs|j|dddS)NTrW)rX)rrRrrrvisit_AsyncFunctionDefsz%_ModuleBrowser.visit_AsyncFunctionDefc Csn|jdkrdS|jD]*}zz t|j|j|jWnty't|jgYnwWq ttfy4Yq wdS)Nr) col_offsetrTr%r r'r>r2 SyntaxError)rrRrrrr visit_Imports   z_ModuleBrowser.visit_Importc Cs|jdkrdSzd|j}|jr||j7}t||j|j}Wn ttfy*YdSw|jD]-}|j |vrB||j |j |j p@|j <q.|j dkr[| D]\}}| drUqK||j |<qKq.dS)Nrr+*rU)rZlevelrr%r'r>r2r[rTr r@asnamer& startswith)rrRrr Z import_nameZ import_valuerrrvisit_ImportFroms(        z_ModuleBrowser.visit_ImportFromN) rrrrrVrXrYr\rarrrrrGs  rGcCs&t|||||}|t||jSr)rGZvisitrKparser@)r?r'rFrEr@r>Zmbrowserrrrr= sr=c CsX ddl}ztjd}Wnt}Y|j|r4|j|g}|j|}| dr3|dd}ng}t ||}dd}t | |dd}d }|r| }t|trVqJt|d s^d|_t|tr}t |j |dd}|D]} |j|| _qo||t|trtd d |j|j|j|jnt|trtd d |j|j|j|sLdSdS)Nrr,z.pycSs t|ddS)Nr r)getattr)arrr"s z_main..T)r)reverseindentz{}class {} {} {} z {}def {} {})osr/argv__file__r'existsdirnamebasenamelowerendswithrsortedvaluesrQrlisthasattrrirrextendrprintr3r rr r) rkmodr'r@Z lineno_keyZobjsZ indent_levelobjZnew_objsr rrr_mainsJ            r{__main__)Fr)rKr/importlib.utilr4__all__r.rrrr!r$rrr%Z NodeVisitorrGr=r{rrrrrs(+   @S&