U .‘cy ã@s¦ddlZddlZddlZddlmZmZddlmZGdd„deƒZ Gdd„deƒZ Gdd „d eƒZ d d „Z e d kr¢dd lmZeddddddlmZee ƒdS)éN)Ú ModuleBrowserÚModuleBrowserTreeItem)ÚTreeItemc@s,eZdZdddœdd„Zdd„Zdd„Zd S) Ú PathBrowserF)Ú_htestÚ_utestcCs||_||_||_| ¡dS)zG _htest - bool, change box location when running htest N)ÚmasterrrÚinit)Úselfrrr©r ú8/opt/alt/python38/lib64/python3.8/idlelib/pathbrowser.pyÚ__init__ szPathBrowser.__init__cCs|j d¡|j d¡dS)zSet window titles.z Path BrowserN)ÚtopZwm_titleZ wm_iconname©r r r r Úsettitles zPathBrowser.settitlecCstƒS©N)ÚPathBrowserTreeItemrr r r ÚrootnodeszPathBrowser.rootnodeN)Ú__name__Ú __module__Ú __qualname__r rrr r r r r s rc@seZdZdd„Zdd„ZdS)rcCsdS)Nzsys.pathr rr r r ÚGetTextszPathBrowserTreeItem.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 rr r r r r ,szDirBrowserTreeItem.__init__cCs|js |jS|jddSdS)Néÿÿÿÿz : package)r rrr r r r0szDirBrowserTreeItem.GetTextcCsâzt |jptj¡}Wntk r.gYSXg}|D]:}tj |j|¡}| |¡r8tj |¡}|  |||f¡q8|  ¡g}|D]&\}}}t ||j |gƒ}|  |¡q„|  |¡D]&\}}ttj |j|¡ƒ}|  |¡q¶|Sr)ÚosÚlistdirrÚcurdirÚOSErrorrÚjoinÚ ispackagedirÚnormcaserÚsortrr Ú listmodulesr)r Únamesr ÚnameÚfileZnnrrr r r r6s&     zDirBrowserTreeItem.GetSubListcCs*tj |¡sdStj |d¡}tj |¡S)z/ Return true for directories that are packages.Fz __init__.py)r"rÚisdirr&Úexists)r r-r r r r r'Ks zDirBrowserTreeItem.ispackagedirc Cs²i}tjjdd…}|tjj7}|tjj7}g}|D]p}t|ƒ }|dd…D]T}tj |¡}||d…|krN|d|…} | |krNd|| <|  ||f¡|  |¡qNq4|  ¡|Sr) Ú importlibÚ machineryÚEXTENSION_SUFFIXESÚSOURCE_SUFFIXESÚBYTECODE_SUFFIXESÚlenr"rr(rÚremover)) r ZallnamesÚmodulesÚsuffixesÚsortedZsuffÚir,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)Úparentr r r Ú _path_browserfs r<Ú__main__)Úmainz"idlelib.idle_test.test_pathbrowseréF)Ú verbosityÚexit)Úrun)Úimportlib.machineryr0r"rZidlelib.browserrrZ idlelib.treerrrrr<rZunittestr>Zidlelib.idle_test.htestrBr r r r Ús  <