o
    Df &                  	   @   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   N/home/ubuntu/webapp/venv/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hiddenTrB   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  qd 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&    
