£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
 fy                 @   s   d dl Zd dlZd dlZd dlmZmZ d dlmZ G dd deZ	G dd deZ
G dd	 d	eZd
d Zedkrd dlmZ edddd d dlmZ ee dS )    N)ModuleBrowserModuleBrowserTreeItem)TreeItemc               @   s,   e Zd ZdddddZdd Zdd Zd	S )
PathBrowserF)_htest_utestc            C   s   || _ || _|| _| j  dS )zG
        _htest - bool, change box location when running htest
        N)masterr   r   init)selfr   r   r    r   8/opt/alt/python36/lib64/python3.6/idlelib/pathbrowser.py__init__   s    zPathBrowser.__init__c             C   s   | j jd | j jd dS )zSet window titles.zPath BrowserN)topZwm_titleZwm_iconname)r
   r   r   r   settitle   s    zPathBrowser.settitlec             C   s   t  S )N)PathBrowserTreeItem)r
   r   r   r   rootnode   s    zPathBrowser.rootnodeN)__name__
__module____qualname__r   r   r   r   r   r   r   r   	   s   	r   c               @   s   e Zd Zdd Zdd ZdS )r   c             C   s   dS )Nzsys.pathr   )r
   r   r   r   GetText   s    zPathBrowserTreeItem.GetTextc             C   s*   g }x t jD ]}t|}|j| qW |S )N)syspathDirBrowserTreeItemappend)r
   sublistdiritemr   r   r   
GetSubList"   s
    zPathBrowserTreeItem.GetSubListN)r   r   r   r   r   r   r   r   r   r      s   r   c               @   s8   e Zd Zg fddZdd Zdd Zdd Zd	d
 ZdS )r   c             C   s   || _ || _d S )N)r   packages)r
   r   r   r   r   r   r   ,   s    zDirBrowserTreeItem.__init__c             C   s   | j s| jS | j d d S d S )N   z	: package)r   r   )r
   r   r   r   r   0   s    zDirBrowserTreeItem.GetTextc             C   s   yt j| jpt j}W n tk
r*   g S X g }xB|D ]:}t jj| j|}| j|r6t jj|}|j	|||f q6W |j
  g }x.|D ]&\}}}t|| j|g }|j	| qW x4| j|D ]&\}}tt jj| j|}|j	| qW |S )N)oslistdirr   curdirOSErrorr   joinispackagedirnormcaser   sortr   r   listmodulesr   )r
   namesr   namefileZnnr   r   r   r   r   r   6   s&    

zDirBrowserTreeItem.GetSubListc             C   s*   t jj|sdS t jj|d}t jj|S )z/ Return true for directories that are packages.Fz__init__.py)r!   r   isdirr%   exists)r
   r,   r	   r   r   r   r&   K   s    zDirBrowserTreeItem.ispackagedirc       
      C   s   i }t jjd d  }|t jj7 }|t jj7 }g }x||D ]t}t| }xd|d d  D ]T}tjj|}||d  |krR|d | }	|	|krRd ||	< |j	||f |j
| qRW q6W |j  |S )N)	importlib	machineryEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXESlenr!   r   r'   r   remover(   )
r
   ZallnamesmodulessuffixessortedZsuffir+   Znormed_nameZmod_namer   r   r   r)   R   s"    

zDirBrowserTreeItem.listmodulesN)r   r   r   r   r   r   r&   r)   r   r   r   r   r   *   s
   r   c             C   s   t | dd | j  d S )NT)r   )r   Zmainloop)parentr   r   r   _path_browserf   s    r;   __main__)mainz"idlelib.idle_test.test_pathbrowser   F)	verbosityexit)run)importlib.machineryr/   r!   r   Zidlelib.browserr   r   Zidlelib.treer   r   r   r   r;   r   Zunittestr=   Zidlelib.idle_test.htestrA   r   r   r   r   <module>   s   <