a ZÚß^y c@s¦ddlZddlZddlZddlmZmZddlmZGdd„deƒZ Gdd„deƒZ Gdd „d eƒZ d d „Z e d kr¢dd lmZeddddddlmZee ƒdS)iN)Ú ModuleBrowserÚModuleBrowserTreeItem)ÚTreeItemc@s,eZdZdddœdd„Zdd„Zdd„Zd S) Ú PathBrowserF)Ú_htestÚ_utestcCs||_||_||_| ¡dS©N)ÚmasterrrÚinit)Úselfrrr©r ú+/usr/lib64/python3.9/idlelib/pathbrowser.pyÚ__init__ szPathBrowser.__init__cCs|j d¡|j d¡dS)Nz Path Browser)ZtopZwm_titleZ wm_iconname©r r r r Úsettitles zPathBrowser.settitlecCstƒSr)ÚPathBrowserTreeItemr r r r ÚrootnodeózPathBrowser.rootnodeN)Ú__name__Ú __module__Ú __qualname__r rrr r r r r s rc@seZdZdd„Zdd„ZdS)rcCsdS)Nzsys.pathr r r r r ÚGetTextrzPathBrowserTreeItem.GetTextcCs&g}tjD]}t|ƒ}| |¡q |Sr)ÚsysÚpathÚDirBrowserTreeItemÚappend)r ÚsublistÚdirÚitemr r r Ú GetSubList"s   zPathBrowserTreeItem.GetSubListN)rrrrrr r r r rsrc@s8eZdZgfdd„Zdd„Zdd„Zdd„Zd d „Zd S) rcCs||_||_dSr)rÚpackages)r rrr r r r ,szDirBrowserTreeItem.__init__cCs|js |jS|jddSdS)Niÿÿÿÿz : package)rrr r r r r0szDirBrowserTreeItem.GetTextcCsàzt |jptj¡}Wnty,gYS0g}|D]:}tj |j|¡}| |¡r6tj |¡}|  |||f¡q6|  ¡g}|D]&\}}}t ||j |gƒ}|  |¡q‚|  |¡D]&\}}ttj |j|¡ƒ}|  |¡q´|Sr)ÚosZlistdirrZcurdirZOSErrorrÚjoinÚ ispackagedirÚnormcaserÚsortrrÚ listmodulesr)r ZnamesrÚnameÚfileZnnrrr r r r6s&      zDirBrowserTreeItem.GetSubListcCs*tj |¡sdStj |d¡}tj |¡S)NFz __init__.py)rrZisdirr Zexists)r r&rr r r r!Ks zDirBrowserTreeItem.ispackagedirc Cs²i}tjjdd…}|tjj7}|tjj7}g}|D]p}t|ƒ }|dd…D]T}tj |¡}||d…|krN|d|…} | |vrNd|| <|  ||f¡|  |¡qNq4|  ¡|Sr) Ú importlibZ machineryZEXTENSION_SUFFIXESZSOURCE_SUFFIXESZBYTECODE_SUFFIXESZlenrrr"rZremover#) r ZallnamesZmodulesZsuffixesZsortedZsuffZir%Z normed_nameZmod_namer r r r$Rs"     zDirBrowserTreeItem.listmodulesN)rrrr rrr!r$r r r r r*s  rcCst|dd| ¡dS)NT)r)rZmainloop)Zparentr r r Ú _path_browserfs r(Z__main__)Úmainz"idlelib.idle_test.test_pathbrowseriF)Z verbosityZexit)Úrun)Zimportlib.machineryr'rrZidlelib.browserrrZ idlelib.treerrrrr(rZunittestr)Zidlelib.idle_test.htestr*r r r r Zs  <