zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
U
H=®d“ã@s”dZddlZddlZddlZddlmZddlmZddlm    Z    m
Z
ddl m Z ddl mZerxddlmZmZmZmZd    d
„Zd d „Zd d„ZdS)zBLogic that powers autocompletion installed by ``pip completion``.
éN)Úchain)Úcreate_main_parser)Ú commands_dictÚcreate_command)Úget_installed_distributions)ÚMYPY_CHECK_RUNNING)ÚAnyÚIterableÚListÚOptionalcsÐdtjkrdStjd ¡dd…}ttjdƒ}z||d‰Wntk
rZd‰YnXtƒ}ttƒ}g}d}|D]}||krv|}qŒqv|dk    r(|dkr¨t     d¡|dkoºˆ 
d    ¡ }|r,g}ˆ  ¡}    t d
d D].}
|
j  
|    ¡rØ|
j |dd…krØ| |
j ¡qØ|r,|D]}
t|
ƒqt     d¡t|ƒ} | jjD]8} | jtjkr<| j| jD]} | | | jf¡qZq<d d „|d|d…Dƒ‰‡fdd „|Dƒ}‡fdd „|Dƒ}t||| jjƒ}|râtˆ|ƒ}dd „|Dƒ}|D]>}|d}|dr|ddd…dkr|d7}t|ƒqænšdd „|jDƒ}| |j¡t |¡}ˆ 
d    ¡r†|D]$} | jtjkr^|| j| j7}q^n 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Ú    uninstallú-T)Ú
local_onlycSsg|]}| d¡d‘qS)ú=r)Úsplit©Ú.0Úx©rúWD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/cli/autocompletion.pyÚ
<listcomp>Hsz autocomplete.<locals>.<listcomp>cs g|]\}}|ˆkr||f‘qSrr)rrÚv)Ú    prev_optsrrrIscs"g|]\}}| ˆ¡r||f‘qSr©Ú
startswith)rÚkr©ÚcurrentrrrKs
cSsg|] }|df‘qS)rr)rÚpathrrrrTsréz--rcSsg|]
}|j‘qSr)Ú option_list)rÚirrrr^sú csg|]}| ˆ¡r|‘qSrr rr#rrrms
) ÚosÚenvironrÚintÚ
IndexErrorrÚlistrÚsysÚexitr!ÚlowerrÚkeyÚappendÚprintrÚparserÚoption_list_allrÚoptparseÚ SUPPRESS_HELPÚ
_long_optsÚ _short_optsÚnargsÚget_path_completion_typeÚauto_complete_pathsÚ option_groupsr'rÚ from_iterableÚjoin)ÚcwordsÚcwordr5Ú subcommandsÚoptionsÚsubcommand_nameÚwordÚshould_list_installedÚ    installedÚlcÚdistÚ
subcommandÚoptÚopt_strÚcompletion_typeÚpathsÚoptionÚ    opt_labelÚoptsÚflattened_optsr)r$rrÚ autocompletesŠ
 
 
 
 
þ 
 ÿ
  
 ÿÿrTcCs–|dks||d d¡sdS|D]n}|jtjkr4q"t|ƒ d¡D]L}||d d¡d|krB|jr€tdd„|j d¡DƒƒrB|jSqBq"dS)    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ú/rrcss|]}|dkVqdS))r%ÚfileÚdirNrrrrrÚ    <genexpr>sÿz+get_path_completion_type.<locals>.<genexpr>)r!rr7r8ÚstrrÚmetavarÚany)rArBrRrLÚorrrr<qs     
þr<c#s¼tj |¡\}‰tj |¡}t |tj¡s.dStj ˆ¡‰‡fdd„t |¡Dƒ}|D]`}tj ||¡}tj tj ||¡¡}|dkrštj     |¡rš|VqVtj 
|¡rVtj |d¡VqVdS)aoIf ``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`)i
    :return: A generator of regular files and/or directories
    Nc3s$|]}tj |¡ ˆ¡r|VqdS)N)r*r%Únormcaser!r©ÚfilenamerrrX™sÿz&auto_complete_paths.<locals>.<genexpr>rWr) r*r%rÚabspathÚaccessÚR_OKr]Úlistdirr@ÚisfileÚisdir)r$rNÚ    directoryÚ current_pathÚ    file_listÚfrLÚ    comp_filerr^rr=ˆs
   r=)Ú__doc__r7r*r/Ú    itertoolsrÚpip._internal.cli.main_parserrÚpip._internal.commandsrrÚpip._internal.utils.miscrÚpip._internal.utils.typingrÚtypingrr    r
r rTr<r=rrrrÚ<module>s    _