;]TddlZddlZddlZddlmZmZddlmZGddeZ GddeZ Gdd eZ e d k(r dd l mZed d dddlmZee yy)N) ModuleBrowserModuleBrowserTreeItem)TreeItemc&eZdZddddZdZdZy) PathBrowserF)_htest_utestcN||_||_||_|jy)zG _htest - bool, change box location when running htest N)masterrr init)selfr rr s :/opt/alt/python312/lib64/python3.12/idlelib/pathbrowser.py__init__zPathBrowser.__init__ s"    cp|jjd|jjdy)zSet window titles.z Path BrowserN)topwm_title wm_iconnamer s rsettitlezPathBrowser.settitles& .) ^,rctSN)PathBrowserTreeItemrs rrootnodezPathBrowser.rootnodes "$$rN)__name__ __module__ __qualname__rrrrrrr s).u- %rrceZdZdZdZy)rcy)Nzsys.pathrrs rGetTextzPathBrowserTreeItem.GetTextsrclg}tjD]}t|}|j| |Sr)syspathDirBrowserTreeItemappend)r sublistdiritems r GetSubListzPathBrowserTreeItem.GetSubList"s288C%c*D NN4 rN)rrrr!r*rrrrrs rrc.eZdZgfdZdZdZdZdZy)r%c ||_||_yr)r(packages)r r(r-s rrzDirBrowserTreeItem.__init__,s  rcV|js |jS|jddzS)Nz : package)r-r(rs rr!zDirBrowserTreeItem.GetText0s&}}88O==${2 2rc tj|jxstj}g}|D]q}tj j |j|}|j|s?tj j|}|j|||fs|jg}|D]1\}}}t||j|gz}|j|3|j|D]I\}}ttj j |j|}|j|K|S#t$rgcYSwxYwr)oslistdirr(curdirOSErrorr$join ispackagedirnormcaser&sortr%r- listmodulesr)r namesr-namefilennr'r)s rr*zDirBrowserTreeItem.GetSubList6s$ JJtxx42995ED77<<$/D  &WW%%d+T4 01   &NBd%dDMMTF,BCD NN4 '((/HB(dhh)EFD NN4 0! I s1E E E ctjj|sytjj|d}tjj |S)z/ Return true for directories that are packages.Fz __init__.py)r1r$isdirr5exists)r r<r s rr6zDirBrowserTreeItem.ispackagedirKs<ww}}T"ww||D-0ww~~d##rci}tjjdd}|tjjz }|tjjz }g}|D]s}t | }|ddD]]}t jj|}||d|k(s+|d|} | |vs5d|| <|j||f|j|_u|j|Sr) importlib machineryEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXESlenr1r$r7r&remover8) r allnamesmodulessuffixessortedsuffir; normed_namemod_names rr9zDirBrowserTreeItem.listmodulesRs&&99!<I''777I''999DT A   gg..t4 qr?d*#BQxHw.,0) {D&9: -$   rN)rrrrr!r*r6r9rrrr%r%*s%'!3 *$rr%__main__)mainz"idlelib.idle_test.test_pathbrowserF) verbosityexit)run)importlib.machineryrBr1r#idlelib.browserrr idlelib.treerrrr%runittestrRidlelib.idle_test.htestrVrrrr\sc @!%-%( ( 99x z -G+  r