o
    Œ¨Êh &  ã                	   @   s°   d dl mZ d dlZd dlmZ d dlZd dlmZmZ ddl	m
Z
mZ dgZejdkZz
d dlZd	Zd
ZW n eefyI   d dlZdZdZY nw dd„ ZG dd„ deƒZdS )é    )Úunicode_literalsN)Úiglob)Ú
CompletionÚ	Completeré   )Ú_resolve_contextÚsplit_arg_stringÚClickCompleterÚntTÚshell_completeFÚautocompletionc                 C   s
   d  | ¡S )Nz{})Úformat)Útext© r   úG/var/www/html/env/lib/python3.10/site-packages/click_repl/_completer.pyÚ	text_type   s   
r   c                   @   sR   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
ddd„ZdS )r	   )ÚcliÚctxÚparsed_argsÚ
parsed_ctxÚctx_commandc                 C   s$   || _ || _g | _|| _|j| _d S ©N)r   r   r   r   Úcommandr   )Úselfr   r   r   r   r   Ú__init__$   s
   zClickCompleter.__init__c                 C   s®   g }t r| ||¡}n| |||¡}|D ]@}t|tƒr/| tt|d ƒt|ƒ |d d�¡ qt rGt|t	j
jƒrG| tt|jƒt|ƒ ƒ¡ q| tt|ƒt|ƒ ƒ¡ q|S )Nr   r   ©Údisplay_meta)ÚHAS_CLICK_V8r   r   Ú
isinstanceÚtupleÚappendr   r   ÚlenÚclickÚshell_completionÚCompletionItemÚvalue)r   ÚparamÚautocomplete_ctxÚargsÚ
incompleteÚparam_choicesÚautocompletionsÚautocompleter   r   r   Ú-_get_completion_from_autocompletion_functions+   s2   ÿ

ýÿÿÿÿz<ClickCompleter._get_completion_from_autocompletion_functionsc                    sB   t |jddƒsˆ  ¡ ‰ ‡ fdd„|jjD ƒS ‡ fdd„|jjD ƒS )NÚcase_sensitiveTc                    sF   g | ]}|  ¡  ˆ ¡rtt|ƒtˆ ƒ td |v rt|ƒn|ƒd�‘qS ©ú ©Údisplay)ÚlowerÚ
startswithr   r   r!   Úrepr©Ú.0Úchoice©r)   r   r   Ú
<listcomp>V   s    ùýÿzJClickCompleter._get_completion_from_choices_click_le_7.<locals>.<listcomp>c                    sB   g | ]}|  ˆ ¡rtt|ƒtˆ ƒ td |v rt|ƒn|ƒd�‘qS r/   )r4   r   r   r!   r5   r6   r9   r   r   r:   a   s    ùýÿ)ÚgetattrÚtyper3   Úchoices©r   r&   r)   r   r9   r   Ú'_get_completion_from_choices_click_le_7S   s   
ú
úz6ClickCompleter._get_completion_from_choices_click_le_7c           
      C   sÖ   d|v rg S g }t j |¡}| d¡ dd¡d }d}d|v r,|D ]
}|dv r+|} nq!t|ƒD ]8}	d|	v rH|r=||	 }	ntrGt|	ƒ dd¡}	ntrP|	 dd¡}	| t	t
|	ƒt|ƒ t
t j |	 d¡¡ƒd	�¡ q0|S )
NÚ*z'"	
 z\\ú\Ú r0   )ú'ú"z'"r1   )ÚosÚpathÚ
expandvarsÚstripÚreplacer   Ú
IS_WINDOWSr5   r    r   r   r!   Úbasename)
r   r&   r(   r)   r=   Ú_incompleteÚsearch_patternÚquoteÚirF   r   r   r   Ú_get_completion_for_Path_typesk   s:   þ
€ýÿz-ClickCompleter._get_completion_for_Path_typesc                    s   ‡ fdd„dddœ  ¡ D ƒS )Nc              	      sH   g | ] \}}t ‡ fd d„|D ƒƒrtt|ƒtˆ ƒ td |¡ƒd�‘qS )c                 3   s   � | ]}|  ˆ ¡V  qd S r   )r4   )r7   rO   r9   r   r   Ú	<genexpr>˜   s   € zMClickCompleter._get_completion_for_Boolean_type.<locals>.<listcomp>.<genexpr>ú/r   )Úanyr   r   r!   Újoin)r7   ÚkÚvr9   r   r   r:   �   s    øÿÿzCClickCompleter._get_completion_for_Boolean_type.<locals>.<listcomp>)Ú1ÚtrueÚtÚyesÚyÚon)Ú0ÚfalseÚfÚnoÚnÚoff)rX   r^   )Úitemsr>   r   r9   r   Ú _get_completion_for_Boolean_type�   s   
þùz/ClickCompleter._get_completion_for_Boolean_typec                 C   s¨   g }|j }tst|tjƒr| |  ||¡¡ |S t|tjjƒr*| |  	||¡¡ |S t|tj
tjfƒr?| |  |||¡¡ |S t|td ƒd urR| |  ||||¡¡ |S r   )r<   r   r   r"   ÚChoiceÚextendr?   ÚtypesÚBoolParamTyperd   ÚPathÚFilerP   r;   ÚAUTO_COMPLETION_PARAMr-   )r   r'   r(   r&   r)   r=   Ú
param_typer   r   r   Ú_get_completion_from_params›   s.   
ÿðóöüÿ	z*ClickCompleter._get_completion_from_paramsc           	   	   C   sä   g }d}|j D ]h}t|jtjjƒrg   S t|ddƒrqt|tjƒr^|j|j	 D ]*}|||j
d d … v r9d} n| |¡rR| tt|ƒt|ƒ t|jpMdƒd�¡ q(|r]|  ||||¡}qt|tjƒro| |  ||||¡¡ q|S )NFÚhiddenéÿÿÿÿTrB   r   )Úparamsr   r<   r"   rg   ÚUnprocessedParamTyper;   ÚOptionÚoptsÚsecondary_optsÚnargsr4   r    r   r   r!   Úhelprm   ÚArgumentrf   )	r   r   r)   r'   r(   r=   Úparam_calledr&   Úoptionr   r   r   Ú_get_completion_for_cmd_args¸   sD   

ýÿ€ÿ€ÿÿ€z+ClickCompleter._get_completion_for_cmd_argsNc              
   c   st  � t |jdd�}g }|j ¡ |jk}|j d¡rd S |r#|r#| ¡ }nd}| j|kr9|| _t|| jƒ| _| jj	| _
t| j
ddƒrBd S zM| |  | j
|| j|¡¡ t| j
tjƒrŽ| ¡ }| j
 | j¡D ]+}| j
 | j|¡}	t|	ddƒrsqb| ¡  |¡r�| tt|ƒt|ƒ t|	ddƒd�¡ qbW n  ty¯ }
 zt d t|
ƒjt|
ƒ¡¡ W Y d }
~
nd }
~
ww |D ]}|V  q²d S )	NF)Úposix)ú!ú:rB   rn   Ú
short_helpr   z{}: {})r   Útext_before_cursorÚrstripr4   Úpopr   r   r   r   r   r   r;   rf   rz   r   r"   ÚMultiCommandr3   Úlist_commandsÚget_commandr    r   r   r!   Ú	ExceptionÚechor   r<   Ú__name__Ústr)r   ÚdocumentÚcomplete_eventr(   r=   Úcursor_within_commandr)   Úincomplete_lowerÚnamer   ÚeÚitemr   r   r   Úget_completionsé   sX   €ÿ


ÿÿ
ýÿ€(€ÿÿzClickCompleter.get_completionsr   )r‡   Ú
__module__Ú__qualname__Ú	__slots__r   r-   r?   rP   rd   rm   rz   r�   r   r   r   r   r	   !   s    ($1)Ú
__future__r   rE   Úglobr   r"   Úprompt_toolkit.completionr   r   Úutilsr   r   Ú__all__r�   rJ   Úclick.shell_completionr   rk   ÚImportErrorÚModuleNotFoundErrorÚclick._bashcompleter   r	   r   r   r   r   Ú<module>   s&    
ü