
    Xf                         d dl mZ d dlZd dlZd dlmZ d dlmZ ddlm	Z	 ddl
mZ ddl
mZmZmZ dd	lmZ g d
Z	 ddZi ddfdZddZdS )    )with_statementN)PromptSession)InMemoryHistory   )ClickCompleter)	ClickExit)CommandLineParserErrorExitReplExceptionInvalidGroupFormat)_execute_internal_and_sys_cmds)bootstrap_promptregister_replreplc                 r    t                      t          | |          dd}|                    |           |S )z
    Bootstrap prompt_toolkit kwargs or use user defined values.

    :param group: click Group
    :param prompt_kwargs: The user specified prompt kwargs.
    )ctxz> )history	completermessage)r   r   update)groupprompt_kwargsr   defaultss       B/var/www/html/env/lib/python3.11/site-packages/click_repl/_repl.pyr   r      sE     #$$#Es333 H OOM"""O    Tc           	         | }| j         &t          | j        t          j                  s| j         }|j        }|j        D ]i}t          |t          j                  rM|j        |j                 ;|j        s4t          t          |          j         d|j         d|j         d          jt          j                                        }| j        j        }t          |j        t          j                  rd |j        j        D             }	n|j        j        }	|	                    |d          }
|r#t'          |||          }t)          di |fd}nt          j        j        }	 	  |            }n# t,          $ r Y t.          $ r Y nw xY w|s|r-n	 t1          |||          }|Cn# t2          $ r Y Pt4          $ r Y nw xY w	 |j        }	 ||_        |                    |           ||_        n# ||_        w xY wnM# t          j        $ r}|                                 Y d}~n%d}~wt>          t@          f$ r Y nt4          $ r Y nw xY w|
|
|	|<   dS dS )	a8  
    Start an interactive shell. All subcommands are available in it.

    :param old_ctx: The current Click context.
    :param prompt_kwargs: Parameters passed to
        :py:func:`prompt_toolkit.PromptSession`.

    If stdin is not a TTY, no prompt will be printed, but only commands read
    from stdin.
    Nz 'z+' requires value for an optional argument 'z' in REPL modec                 R    i | ]$}|j                                         D ]\  }}||	%S  )commandsitems).0sourcecmd_namecmd_objs       r   
<dictcomp>zrepl.<locals>.<dictcomp>S   sS     
 
 
%+_%:%:%<%<
 
 "' g
 
 
 
r   c                  ,                                      S N)prompt)sessions   r   get_commandzrepl.<locals>.get_commanda   s    >>###r   Tr   )!parent
isinstancecommandclickGroupparamsArgumentnamerequiredr   type__name__sysstdinisattyCommandCollectionsourcesr   popr   r   readlineKeyboardInterruptEOFErrorr   r	   r
   protected_argsinvokeClickExceptionshowr   
SystemExit)old_ctxr   allow_system_commandsallow_internal_commands	group_ctxr   paramr7   repl_command_nameavailable_commandsoriginal_commandr)   r,   argsold_protected_argser(   s                   @r   r   r   '   sX    I ~!*W_ek*R*R!N	E  	 	uen--	 ,4N 5 %;;' D D5: D D).D D D  
 YF
  ,)#U%<== 8
 
#+3
 
 
 '.7)--.?FF )(yII00-00	$ 	$ 	$ 	$ 	$ 	$ i()	!kmmGG  	 	 	H 	 	 	E	  	 	102G D |  & 	 	 	H  	 	 	E		!*!9>+/	(Y'''+=	((+=	(====(# 	 	 	FFHHHHHHHH:& 	 	 	D  	 	 	E	Q)V #0@,--- $#sl   #
E. .
F:	FFF% %
F=1	F=<F=G: 	G- %G: -	G66G: :I	H""I8	IIr   c                 r     |                      |          t          j        t                               dS )z9Register :func:`repl()` as sub-command *name* of *group*.)r1   N)r,   r-   pass_contextr   )r   r1   s     r   r   r      s1    EMMtMU/5566666r   r&   )r   )
__future__r   r-   r5   prompt_toolkitr   prompt_toolkit.historyr   
_completerr   
exceptionsr   r	   r
   r   utilsr   __all__r   r   r   r   r   r   <module>rW      s   % % % % % %  



 ( ( ( ( ( ( 2 2 2 2 2 2 & & & & & & ! ! ! ! ! ! U U U U U U U U U U 1 1 1 1 1 1 8
7
7 	   . TSWlA lA lA lA^7 7 7 7 7 7r   