<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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   <