HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-37.pyc
B

L��g"�@s�dZddlZddlZddlZddlmZddlmZmZm	Z	m
Z
ddlmZddl
mZmZddlmZdd�d	d
�Ze	eeeee
ed�dd
�Zeeeed�dd�ZdS)zBLogic that powers autocompletion installed by ``pip completion``.
�N)�chain)�Any�Iterable�List�Optional)�create_main_parser)�
commands_dict�create_command)�get_default_environment)�returncsdtjkrdStjd��dd��ttjd�}y�|d�Wntk
rZd�YnXt�}tt�}g}d}x�D]}||krx|}PqxW|dk	�rV|dkr�t�	d���
d�o�|d	k}|�rt�}������fd
d�|j
dd
�D�}|�rx|D]}	t|	�q�Wt�	d���
d��o(|dk}
|
�rXxt�d�D]}t|��q<Wt�	d�t|�}x>|jjD]2��jtjk�rj|�fdd��j�jD�7}�qjWdd��d|d�D���fdd�|D�}�fdd�|D�}t�||jj�}
|
�rt�|
�}dd�|D�}x�|D]>}|d}|d�rF|ddd�dk�rF|d7}t|��qWn�dd�|jD�}|�|j�t�|�}��
d��r�xN|D]$��jtjk�r�|�j�j7}�q�Wn t�||�}
|
�r�tt�|
��}td��fdd�|D���t�	d�dS)z:Entry Point for completion of main and subcommand options.�PIP_AUTO_COMPLETEN�
COMP_WORDS��
COMP_CWORD��help�-)�show�	uninstallcs0g|](}|j���r|j�dd�kr|j�qS)rN)�canonical_name�
startswith)�.0�dist)�cwords�lc��D/tmp/pip-unpacked-wheel-hv55ucu3/pip/_internal/cli/autocompletion.py�
<listcomp>3sz autocomplete.<locals>.<listcomp>T)�
local_only�install�pathcsg|]}|�jf�qSr)�nargs)r�opt_str)�optrrrKscSsg|]}|�d�d�qS)�=r)�split)r�xrrrrOscs g|]\}}|�kr||f�qSrr)rr&�v)�	prev_optsrrrPscs"g|]\}}|���r||f�qSr)r)r�kr')�currentrrrRscSsg|]}|df�qS)rr)rr rrrr]sr�z--r$cSsg|]
}|j�qSr)�option_list)r�irrrrgs� csg|]}|���r|�qSr)r)rr&)r*rrrts)�os�environr%�int�
IndexErrorr�listr�sys�exitrr
�lowerZiter_installed_distributions�print�auto_complete_pathsr	�parser�option_list_allr�optparse�
SUPPRESS_HELP�
_long_opts�_short_opts�get_path_completion_type�
option_groups�appendr,r�
from_iterable�join)�cwordr9�subcommands�options�subcommand_name�word�should_list_installed�env�	installedrZshould_list_installablesr �
subcommand�completion_type�paths�option�	opt_label�opts�flattened_optsr)r*rrr#r(r�autocompletes�







"


 

rS)rrDrQrcCs�|dks||d�d�sdSxr|D]j}|jtjkr6q$xVt|��d�D]D}||d�d�d|krF|jr�tdd�|j�d�D��rF|jSqFWq$WdS)	aLGet the type of path completion (``file``, ``dir``, ``path`` or None)

    :param cwords: same as the environmental variable ``COMP_WORDS``
    :param cword: same as the environmental variable ``COMP_CWORD``
    :param opts: The available options to check
    :return: path completion type (``file``, ``dir``, ``path`` or None)
    r+rN�/r$rcss|]}|dkVqdS))r �file�dirNr)rr&rrr�	<genexpr>�sz+get_path_completion_type.<locals>.<genexpr>)rrr;r<�strr%�metavar�any)rrDrQr#�orrrr?xs

r?)r*rMrc#s�tj�|�\}�tj�|�}t�|tj�s.dStj�����fdd�t�|�D�}xh|D]`}tj�||�}tj�tj�||��}|dkr�tj�	|�r�|VqXtj�
|�rXtj�|d�VqXWdS)atIf ``completion_type`` is ``file`` or ``path``, list all regular files
    and directories starting with ``current``; otherwise only list directories
    starting with ``current``.

    :param current: The word to be completed
    :param completion_type: path completion type(``file``, ``path`` or ``dir``)
    :return: A generator of regular files and/or directories
    Nc3s$|]}tj�|����r|VqdS)N)r/r �normcaser)rr&)�filenamerrrW�sz&auto_complete_paths.<locals>.<genexpr>rVr)r/r r%�abspath�access�R_OKr\�listdirrC�isfile�isdir)r*rM�	directory�current_path�	file_list�fr#�	comp_filer)r]rr8�s	
r8)�__doc__r;r/r4�	itertoolsr�typingrrrr�pip._internal.cli.main_parserr�pip._internal.commandsrr	Zpip._internal.metadatar
rSrXr1r?r8rrrr�<module>sj