o
    i?                     @   s   U d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZmZmZmZ i Zeeef ed< dd Zdd Zdd
dZG dd de	ZdS )    )ONE_OR_MOREOPTIONALPARSER	REMAINDERSUPPRESSZERO_OR_MOREActionArgumentErrorArgumentParser_get_action_name_SubParsersAction)gettext)DictListSetTuple_num_consumed_argsc                 C   sv   t | d}| jtttfv rdS | jtkr|dkS | jtkr dS | jdu r)|dkS t| jt	s6J d| j || jkS )znReturns False if the parse would raise an error if no more arguments are given to this action, True otherwise.r   T   FN+failed to handle a possible nargs value: %r)
r   getnargsr   r   r   r   r   
isinstanceintactionnum_consumed_args r   d/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/argcomplete/packages/_argparse.pyaction_is_satisfied   s   



r   c                 C   sb   t | d}| jttttfv rdS | jtks| jdu r|dkS t| jt	s,J d| j || jk S )zPReturns True if action could consume more arguments (i.e., its pattern is open).r   TNr   )
r   r   r   r   r   r   r   r   r   r   r   r   r   r   action_is_open.   s   
r   Fc                 C   s>   t | d}| jr|st| sdS | jtkS | jtko|dkS )zReturns True if action will necessarily consume the next argument.
    isoptional indicates whether the argument is an optional (starts with -).
    r   Tr   )r   r   option_stringsr   r   r   )r   
isoptionalr   r   r   r   action_is_greedy;   s   
r"   c                   @   s   e Zd ZdZdddZdS )IntrospectiveArgumentParserzThe following is a verbatim copy of ArgumentParser._parse_known_args (Python 2.7.3),
    except for the lines that contain the string "Added by argcomplete".
    Fc                    s  t   	_g 	_	jd ur	i   	_	jD ])}|j}t	|jD ]\}} 
|g }	|	|d |  |	||d d   q&qi g }
t}t	|D ]/\}}|dkrj|
d |D ]}|
d qaqR	|}|d u rvd}n||< d}|
| qRd|
t t 	_d 	fdd		fd	d
}	 	fdd}g d
rt}nd}
|krt
fddD }
|kr|
}|
kr|
q|

vr
| }| |
|


|ks|
}|d   r	jd  	td 	jD ]}|jr4|vr4t|}	td|  q	jD ]+}|jrc|jD ]
}|v rK nqBdd |jD }td}	|d|  q9fS )Nr   z---AO c           
         s    |  | |}|| jur1 |   | g D ]}|v r0td}t|}t| || q|tus:t| t	rkz
| || W d S  t
yj   t| t	ri| j|d  j}t| D ]
\}}	t||	 q^ w d S )Nznot allowed with argument %sr   )add_get_valuesdefaultr   r   r   r	   r   r   r   BaseException_name_parser_map_argcomplete_namespacevarsitemssetattr)
r   argument_stringsoption_stringargument_valuesconflict_actionmsgaction_namesubnamespacekeyvalue)action_conflicts	namespaceseen_actionsseen_non_default_actionsselfr   r   take_action   s*   



zBIntrospectiveArgumentParser._parse_known_args.<locals>.take_actionc                    s  |  }t |tr|d }t|dkr|\}}}n|\}}}}j}g }	 |d u r4 |   | d S |d ur||d}j}	|dkr}|d |	vr}||g |f |d }
|
|d  }|dd  pcd }j}||v rr|| }|}ndtd}t||| |dkr| d }|g}||||f nFtd}t||| | d }|d  }|g_	dt
|< |||}|| } || }t|t
|< t|s͈j	| ||||f nq%|sJ |D ]\}}}||| q|S )Nr      Tr   r%   zignored explicit argument %r)r   listlen_match_argumentappendprefix_chars_option_string_actionsr   r	   active_actionsr   r   remove)start_indexoption_tupler   r2   explicit_arg_match_argumentaction_tuples	arg_countcharscharnew_explicit_argoptionals_mapr5   stopargsstartselected_patterns)arg_stringsarg_strings_patternextrasoption_string_indicesr>   r?   r   r   consume_optional   sd   


CzGIntrospectiveArgumentParser._parse_known_args.<locals>.consume_optionalc                    s   j }| d  }||}t|D ]
\}}j| qt|D ]\}} | | |  }| |7 } t|t|< || q#t|d  d d < | S N)_match_arguments_partialziprG   rD   rB   r   )rI   match_partialselected_pattern
arg_countsr   rO   rU   )rX   rY   positionalsr>   r?   r   r   consume_positionals   s   
zJIntrospectiveArgumentParser._parse_known_args.<locals>.consume_positionalsr   c                    s   g | ]}| kr|qS r   r   ).0index)rI   r   r   
<listcomp>  s    zAIntrospectiveArgumentParser._parse_known_args.<locals>.<listcomp>ztoo few argumentszargument %s is requiredc                 S   s"   g | ]}|j turtt|qS r   )helpr   strr   )rf   r   r   r   r   rh   O  s    z#one of the arguments %s is required r]   )r   clearr-   rG   fromfile_prefix_chars_read_args_from_files_action_conflicts_mutually_exclusive_groups_group_actions	enumerate
setdefaultextenditerrD   _parse_optionaljoinset_seen_non_default_actions_get_positional_actionsmaxminerrorr   _actionsrequiredr   )r>   rX   r;   
intermixedkwargsmutex_groupgroup_actionsimutex_action	conflictsarg_string_pattern_partsarg_strings_iter
arg_stringrJ   patternr\   rd   max_option_string_indexnext_option_string_indexpositionals_end_indexstrings
stop_indexr   namegroupnamesr5   r   )r:   rX   rY   rZ   r;   r[   rc   r<   r=   r>   rI   r?   r   _parse_known_argsN   s   





!X






z-IntrospectiveArgumentParser._parse_known_argsNF)__name__
__module____qualname____doc__r   r   r   r   r   r#   I   s    r#   Nr   )argparser   r   r   r   r   r   r   r	   r
   r   r   r   typingr   r   r   r   r   r   __annotations__r   r   r"   r#   r   r   r   r   <module>   s   6
