o
    IAf8                     @   s>   	 d dl Z G dd deZG dd deZG dd deZdS )    Nc                   @   s&   e Zd Zdd Zdd ZdddZdS )	Quitterc                 C   s   || _ || _d S Nnameeof)selfr   r    r   $/usr/lib/python3.10/_sitebuiltins.py__init__   s   
zQuitter.__init__c                 C   s   d| j | jf S )NzUse %s() or %s to exitr   r   r   r   r	   __repr__   s   zQuitter.__repr__Nc                 C   s&   z
t j  W t|   Y t|r   )sysstdinclose
SystemExit)r   coder   r   r	   __call__   s   zQuitter.__call__r   )__name__
__module____qualname__r
   r   r   r   r   r   r	   r      s    r   c                   @   s4   e Zd Z	 dZdddZdd Zdd Zd	d
 ZdS )_Printer   r   c                    s4   dd l || _|| _d | _ fdd|D | _d S )Nr   c                    s$   g | ]} D ]	}j ||qqS r   )pathjoin).0dirfilenamefilesosr   r	   
<listcomp>(   s    z%_Printer.__init__.<locals>.<listcomp>)r   _Printer__name_Printer__data_Printer__lines_Printer__filenames)r   r   datar   dirsr   r   r	   r
   #   s   z_Printer.__init__c              	   C   s   | j rd S d }| jD ](}zt|dd}| }W d    n1 s"w   Y  W  n	 ty2   Y q
w |s8| j}|d| _ t| j | _d S )Nzutf-8)encoding
)	r#   r$   openreadOSErrorr"   splitlen_Printer__linecnt)r   r%   r   fpr   r   r	   __setup,   s    

z_Printer.__setupc                 C   s4   |    t| j| jkrd| jS d| jfd  S )Nr(   z!Type %s() to see the full %s text   )_Printer__setupr-   r#   MAXLINESr   r!   r   r   r   r	   r   <   s   z_Printer.__repr__c                 C   s   |    d}d}	 zt||| j D ]	}t| j|  qW n
 ty'   Y d S w || j7 }d }|d u rAt|}|dvr=d }|d u s3|dkrGd S q	)Nz0Hit Return for more, or q (and Return) to quit: r      ) qr6   )r2   ranger3   printr#   
IndexErrorinput)r   promptlinenoikeyr   r   r	   r   C   s*   
z_Printer.__call__N)r   r   )r   r   r   r3   r
   r2   r   r   r   r   r   r	   r      s    
	r   c                   @   s   e Zd Z	 dd Zdd ZdS )_Helperc                 C   s   dS )NzHType help() for interactive help, or help(object) for help about object.r   r   r   r   r	   r   b   s   z_Helper.__repr__c                 O   s   dd l }|j|i |S )Nr   )pydochelp)r   argskwdsr@   r   r   r	   r   e   s   z_Helper.__call__N)r   r   r   r   r   r   r   r   r	   r?   X   s    	r?   )r   objectr   r   r?   r   r   r   r	   <module>   s
    
;