U
    ýÇ-e   ã                   @   s€   d Z ddlmZ ddlZddlmZ ddlmZmZ ddl	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S )z"Terminal input and output prompts.é    )ÚTokenN)ÚDisplayHook)Úfragment_list_widthÚPygmentsTokens)Úprint_formatted_text)ÚEditingModec                   @   sF   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zdd
d„Zdd„ Zdd„ Z	d	S )ÚPromptsc                 C   s
   || _ d S ©N)Úshell)Úselfr
   © r   úY/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/IPython/terminal/prompts.pyÚ__init__   s    zPrompts.__init__c                 C   sr   t | jjdd ƒtjkrn| jjrnt| jjjjj	ƒ}| 
d¡rL|dd…  ¡ }n| 
d¡rb|dd… }d| d	 S d
S )NZediting_modez
InputMode.é
   é   zvi-é   é   ú[z] Ú )Úgetattrr
   Úpt_appr   ZVIZprompt_includes_vi_modeÚstrÚappZvi_stateZ
input_modeÚ
startswithÚlower)r   Úmoder   r   r   Úvi_mode   s    ÿ

zPrompts.vi_modec                 C   s0   t j|  ¡ ft jdft jt| jjƒft jdfgS )NzIn [ú]: )r   ÚPromptr   Z	PromptNumr   r
   Úexecution_count©r   r   r   r   Úin_prompt_tokens   s
    üzPrompts.in_prompt_tokensc                 C   s   t |  ¡ ƒS r	   )r   r!   r    r   r   r   Ú_width%   s    zPrompts._widthNc                 C   s(   |d kr|   ¡ }tjd|d  d fgS )Nú é   z...: ©r"   r   r   ©r   Úwidthr   r   r   Úcontinuation_prompt_tokens(   s    ÿz"Prompts.continuation_prompt_tokensc                 C   s    |   ¡ }tjd|d  d fgS )Nú-é   z> r%   r&   r   r   r   Úrewrite_prompt_tokens/   s    ÿzPrompts.rewrite_prompt_tokensc                 C   s$   t jdft jt| jjƒft jdfgS )NzOut[r   )r   Z	OutPromptZOutPromptNumr   r
   r   r    r   r   r   Úout_prompt_tokens5   s    ýzPrompts.out_prompt_tokens)N)
Ú__name__Ú
__module__Ú__qualname__r   r   r!   r"   r(   r+   r,   r   r   r   r   r      s   
r   c                   @   s.   e Zd Zdd„ Zd
dd„Zdd„ Zdd	„ ZdS )ÚClassicPromptsc                 C   s   t jdfgS )Nz>>> ©r   r   r    r   r   r   r!   =   s    ÿzClassicPrompts.in_prompt_tokensNc                 C   s   t jdfgS )Nz... r1   r&   r   r   r   r(   B   s    ÿz)ClassicPrompts.continuation_prompt_tokensc                 C   s   g S r	   r   r    r   r   r   r+   G   s    z$ClassicPrompts.rewrite_prompt_tokensc                 C   s   g S r	   r   r    r   r   r   r,   J   s    z ClassicPrompts.out_prompt_tokens)N)r-   r.   r/   r!   r(   r+   r,   r   r   r   r   r0   <   s   
r0   c                       s0   e Zd ZdZdd„ Zdddœ‡ fdd„Z‡  ZS )	ÚRichPromptDisplayHookz3Subclass of base display hook using coloured promptc                 C   s„   t j | jj¡ d| _| jr€| jj ¡ }d 	dd„ |D ƒ¡}|rP| 
d¡sPd| _| jjrttt|ƒ| jjjjdd nt j |¡ d S )NTr   c                 s   s   | ]\}}|V  qd S r	   r   )Ú.0ÚtÚsr   r   r   Ú	<genexpr>W   s     z<RichPromptDisplayHook.write_output_prompt.<locals>.<genexpr>Ú
F)ÚstyleÚend)ÚsysÚstdoutÚwriter
   Zseparate_outZprompt_end_newlineZdo_full_cacheZpromptsr,   ÚjoinÚendswithr   r   r   r   r8   )r   ÚtokensZ
prompt_txtr   r   r   Úwrite_output_promptO   s    
 ÿz)RichPromptDisplayHook.write_output_promptN)Úreturnc                    sL   | j jr:| j j ¡ D ]$\}}||kr||| d ƒ  d S qtƒ  ||¡ d S r	   )r
   Zmime_renderersÚitemsÚsuperÚwrite_format_data)r   Zformat_dictZmd_dictÚmimeÚhandler©Ú	__class__r   r   rD   c   s    z'RichPromptDisplayHook.write_format_data)N)r-   r.   r/   Ú__doc__r@   rD   Ú__classcell__r   r   rG   r   r2   M   s   r2   )rI   Zpygments.tokenr   r:   ZIPython.core.displayhookr   Zprompt_toolkit.formatted_textr   r   Zprompt_toolkit.shortcutsr   Zprompt_toolkit.enumsr   Úobjectr   r0   r2   r   r   r   r   Ú<module>   s   /