
    ^j                         d Z ddlmZ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 ddlmZmZmZmZmZmZ erdd	lmZ  G d
 d      Z G d de      Z G d de      Zy)z"Terminal input and output prompts.    )
_TokenTypeTokenN)DisplayHook)fragment_list_widthPygmentsTokens)print_formatted_text)EditingMode)TYPE_CHECKINGAnyDictListOptionalTuple)TerminalInteractiveShellc            	           e Zd ZddZd ZdefdZd Zd Z	 ddddd	edz  d
edz  dedz  fdZ	d Z
deeeef      fdZy)Promptsc                     || _         y N)shell)selfr   s     Q/opt/ringagent/.cad-venv/lib/python3.12/site-packages/IPython/terminal/prompts.py__init__zPrompts.__init__   s	    
    c                    t        | j                  j                  dd       t        j                  k(  r| j                  j
                  rt        | j                  j                  j                  j                  j                        }|j                  d      r|dd j                         }n|j                  d      r|dd }d|z   d	z   S y
)Nediting_modez
InputMode.
      zvi-      [z]  )getattrr   pt_appr	   VIprompt_includes_vi_modestrappvi_state
input_mode
startswithlower)r   modes     r   vi_modezPrompts.vi_mode   s    DJJ%%~t<NJJ66tzz((,,55@@AD|,Br{((*'Aayt8D= r   returnc                     | j                   j                  8| j                   j                  j                  j                  j                  xs dS y)Nr   )r   r#   default_bufferdocumentcursor_position_rowr   s    r   current_linezPrompts.current_line    s=    ::(::$$33<<PPUTUUr   c                    t         j                  j                  | j                         ft         j                  j                  | j
                  j                  j                  d| j                                ft         j                  dft         j                  t        | j
                  j                        ft         j                  dfgS )N   linerel_linezIn []: )r   PromptModer-   
LineNumberr   prompt_line_number_formatformatr4   	PromptNumr&   execution_countr3   s    r   in_prompt_tokenszPrompts.in_prompt_tokens%   s    \\/''

44;;d&7&7&9%9 <  \\6"__c$**"<"<=>\\5!
 	
r   c                 4    t        | j                               S r   )r   rB   r3   s    r   _widthzPrompts._width3   s    "4#8#8#:;;r   N)lineno
wrap_countwidthrE   rF   c                   || j                         }||dz   nd}|r&t        j                  j                  d|dz
  z  dz   fgS dt	        | j                               z  | j                  j                  j                  ||| j                         z
  dz
        z   }t        t        j                  j                  d|       |d|t	        |      z
  dz
  z  z   d	z   ft        j                  j                  dfgS )
Nr6   r       u   ⋮ r7   L   z...:)rD   r   r;   Wraplenr-   r   r>   r?   r4   r"   ContinuationPadding)r   rG   rE   rF   r8   prefixs         r   continuation_prompt_tokensz"Prompts.continuation_prompt_tokens6   s    =KKME#/vzQ LL%%EAI&*BB  sLLN
 
JJ0077t'8'8': :Q > 8 

 11Qvh<@#V!4q!89:VC \\!!3'
 	
r   c                 Z    | j                         }t        j                  d|dz
  z  dz   fgS )N-rJ   z> )rD   r   r;   r   rG   s     r   rewrite_prompt_tokenszPrompts.rewrite_prompt_tokensU   s1    \\C519-56
 	
r   c                     t         j                  dft         j                  t        | j                  j
                  dz
        ft         j                  dfgS )NzOut[r6   r:   )r   	OutPromptOutPromptNumr&   r   rA   r3   s    r   out_prompt_tokenszPrompts.out_prompt_tokens[   sF    __f%TZZ%?%?!%C!DE__e$
 	
r   )r   r   r   )__name__
__module____qualname__r   r-   intr4   rB   rD   rR   rV   r   r   r   r&   rZ    r   r   r   r      s    	c 

<
 !
 "!%
Tz
 d
	

 $J
>

4j#o(>#? 
r   r   c                   &    e Zd Zd ZddZd Zd Zy)ClassicPromptsc                 (    t         j                  dfgS )Nz>>> )r   r;   r3   s    r   rB   zClassicPrompts.in_prompt_tokensc   s    \\6"
 	
r   Nc                 <    t         j                  j                  dfgS )Nz... )r   r;   rO   rU   s     r   rR   z)ClassicPrompts.continuation_prompt_tokensh   s    **F344r   c                     g S r   r_   r3   s    r   rV   z$ClassicPrompts.rewrite_prompt_tokensk       	r   c                     g S r   r_   r3   s    r   rZ   z ClassicPrompts.out_prompt_tokensn   re   r   r   )r[   r\   r]   rB   rR   rV   rZ   r_   r   r   ra   ra   b   s    

5r   ra   c                   R     e Zd ZdZd Zddeeef   deeeef      ddf fdZ	 xZ
S )	RichPromptDisplayHookz3Subclass of base display hook using coloured promptc                 (   t         j                  j                  | j                  j                         d| _        | j                  r| j                  j                  j                         }dj                  d |D              }|r|j                  d      sd| _        | j                  j                  r@t        t        |      | j                  j                  j                  j                  d       y t         j                  j                  |       y y )NTr!   c              3   &   K   | ]	  \  }}|  y wr   r_   ).0_ss      r   	<genexpr>z<RichPromptDisplayHook.write_output_prompt.<locals>.<genexpr>{   s      6tq! 6s   
F)styleend)sysstdoutwriter   separate_outprompt_end_newlinedo_full_cachepromptsrZ   joinendswithr#   r   r   r'   rp   )r   tokens
prompt_txts      r   write_output_promptz)RichPromptDisplayHook.write_output_prompts   s    

001 #'ZZ''99;F 6v 66J*"5"5d";*/'zz  $^F%;**++//552 

  , r   Nformat_dictmd_dictr.   c                     | j                   J | j                   j                  r>| j                   j                  j                         D ]  \  }}||v s |||   d         y  t        |   ||       y r   )r   mime_renderersitemssuperwrite_format_data)r   r~   r   mimehandler	__class__s        r   r   z'RichPromptDisplayHook.write_format_data   sq    zz%%%::$$!%!:!:!@!@!B g;&K-t4
 	!+w7r   r   )r[   r\   r]   __doc__r}   r   r&   r   r   r   __classcell__)r   s   @r   rh   rh   q   sC    =-(	8T#s(^ 	8htTWY\T\~F^ 	8hl 	8 	8r   rh   )r   pygments.tokenr   r   rr   IPython.core.displayhookr   prompt_toolkit.formatted_textr   r   prompt_toolkit.shortcutsr   prompt_toolkit.enumsr	   typingr
   r   r   r   r   r   !IPython.terminal.interactiveshellr   r   ra   rh   r_   r   r   <module>r      sK    ( , 
 0 M 9 , B BJO
 O
bW 8K 8r   