3 2ay @sddlZddlZddlZddlmZmZddlmZGdddeZ GdddeZ Gdd d eZ d d Z e d krdd lmZeddddddlmZee dS)N) ModuleBrowserModuleBrowserTreeItem)TreeItemc@s,eZdZdddddZddZddZd S) PathBrowserF)_htest_utestcCs||_||_||_|jdS)N)masterrrinit)selfrrrr 0/opt/alt/python36/lib64/python3.6/pathbrowser.py__init__ szPathBrowser.__init__cCs|jjd|jjddS)Nz Path Browser)topZwm_titleZ wm_iconname)r r r r settitles zPathBrowser.settitlecCstS)N)PathBrowserTreeItem)r r r r rootnodeszPathBrowser.rootnodeN)__name__ __module__ __qualname__r rrr r r r r s rc@seZdZddZddZdS)rcCsdS)Nzsys.pathr )r r r r GetTextszPathBrowserTreeItem.GetTextcCs*g}x tjD]}t|}|j|q W|S)N)syspathDirBrowserTreeItemappend)r sublistdiritemr r r GetSubList"s  zPathBrowserTreeItem.GetSubListN)rrrrrr r r r rsrc@s8eZdZgfddZddZddZddZd d Zd S) rcCs||_||_dS)N)rpackages)r rrr r r r ,szDirBrowserTreeItem.__init__cCs|js |jS|jddSdS)Nz : package)rr)r r r r r0szDirBrowserTreeItem.GetTextc Csytj|jptj}Wntk r*gSXg}xB|D]:}tjj|j|}|j|r6tjj|}|j |||fq6W|j g}x.|D]&\}}}t ||j |g}|j |qWx4|j |D]&\}}ttjj|j|}|j |qW|S)N)oslistdirrcurdirOSErrorrjoin ispackagedirnormcasersortrr listmodulesr)r namesrnamefilennrrr r r r6s&   zDirBrowserTreeItem.GetSubListcCs*tjj|sdStjj|d}tjj|S)NFz __init__.py)r!risdirr%exists)r r,r r r r r&Ks zDirBrowserTreeItem.ispackagedirc Csi}tjjdd}|tjj7}|tjj7}g}x||D]t}t| }xd|ddD]T}tjj|}||d|krR|d|} | |krRd|| <|j ||f|j |qRWq6W|j |S)N) importlib machineryEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXESlenr!rr'rremover() r ZallnamesmodulessuffixessortedZsuffir+Z normed_nameZmod_namer r r r)Rs"      zDirBrowserTreeItem.listmodulesN)rrrr rrr&r)r r r r r*s  rcCst|dd|jdS)NT)r)rZmainloop)parentr r r _path_browserfs r<__main__)mainz"idlelib.idle_test.test_pathbrowserF) verbosityexit)run)Zimportlib.machineryr0r!rZidlelib.browserrrZ idlelib.treerrrrr<rZunittestr>Zidlelib.idle_test.htestrBr r r r s  <