o =?hy @sddlZddlZddlZddlmZmZddlmZGdddeZ GdddeZ Gdd d eZ d d Z e d krSdd lmZeddddddlmZee dSdS)N) ModuleBrowserModuleBrowserTreeItem)TreeItemc@s,eZdZdddddZddZddZd S) PathBrowserF)_htest_utestcCs||_||_||_|dS)zG _htest - bool, change box location when running htest N)masterrrinit)selfrrrr :/opt/alt/python310/lib64/python3.10/idlelib/pathbrowser.py__init__ s zPathBrowser.__init__cCs|jd|jddS)zSet window titles.z Path BrowserN)topZwm_titleZ wm_iconnamer r r r settitles zPathBrowser.settitlecCstSN)PathBrowserTreeItemrr r r rootnodeszPathBrowser.rootnodeN)__name__ __module__ __qualname__r rrr r r r r s rc@seZdZddZddZdS)rcCsdS)Nzsys.pathr rr r r GetTextszPathBrowserTreeItem.GetTextcCs&g}tjD] }t|}||q|Sr)syspathDirBrowserTreeItemappend)r sublistdiritemr r r GetSubList"s   zPathBrowserTreeItem.GetSubListN)rrrrrr r r r rs rc@s8eZdZgfddZddZddZddZd d Zd S) rcCs||_||_dSr)rpackages)r rr r r r r ,s zDirBrowserTreeItem.__init__cCs|js|jS|jddS)Nz : package)r rrr r r r0szDirBrowserTreeItem.GetTextcCsz t|jptj}Wn tygYSwg}|D]}tj|j|}||r8tj|}| |||fq| g}|D]\}}}t ||j |g}| |qA| |D]\}}ttj|j|}| |qZ|Sr)oslistdirrcurdirOSErrorrjoin ispackagedirnormcasersortrr listmodulesr)r namesr namefileZnnrrr r r r6s*     zDirBrowserTreeItem.GetSubListcCs*tj|sdStj|d}tj|S)z/ Return true for directories that are packages.Fz __init__.py)r"risdirr&exists)r r-r r r r r'Ks  zDirBrowserTreeItem.ispackagedirc Csi}tjjdd}|tjj7}|tjj7}g}|D]8}t| }|ddD]*}tj|}||d|krQ|d|} | |vrQd|| <| ||f| |q'q| |Sr) 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|dS)NT)r)rZmainloop)parentr r r _path_browserfs  r<__main__)mainz"idlelib.idle_test.test_pathbrowserF) verbosityexit)run)importlib.machineryr0r"rZidlelib.browserrrZ idlelib.treerrrrr<rZunittestr>Zidlelib.idle_test.htestrBr r r r s  <