§
    �’jt  ã                  ó†   — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZmZ dd„Zdd„Zdd„ZdS )zALogic that powers autocompletion installed by ``pip completion``.é    )ÚannotationsN)ÚIterable)Úchain)ÚAny)Úcreate_main_parser)Úcommands_dictÚcreate_commandÚreturnÚNonec                 ó’  ‡‡‡‡‡— dt           j        vrdS t           j                             d¦  «        rt           j                             d¦  «        sdS t           j        d                              ¦   «         dd…         Št	          t           j        d         ¦  «        } 	 ‰| dz
           Šn# t
          $ r dŠY nw xY wt          ¦   «         }t          t          ¦  «        }g }d}‰D ]
}||v r|} nŒ|��^|dk    rt          j
        d¦  «         ‰                     d¦  «         o|d	v }|rqd
dlm}  |¦   «         }‰                     ¦   «         Šˆˆfd„|                     d¬¦  «        D ¦   «         }	|	r(|	D ]}
t!          |
¦  «         Œt          j
        d¦  «         ‰                     d¦  «         o|dk    }|r6t#          ‰d¦  «        D ]}t!          |¦  «         Œt          j
        d¦  «         t%          |¦  «        }|j        j        D ]5Š‰j        t,          j        k    r|ˆfd„‰j        ‰j        z   D ¦   «         z  }Œ6d„ ‰d| dz
  …         D ¦   «         Šˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t5          ‰| |j        j        ¦  «        }|rt#          ‰|¦  «        }d„ |D ¦   «         }|D ]:}|d
         }|d         r|d
         dd…         dk    r|dz  }t!          |¦  «         Œ;t7          ˆfd„|                     ¦   «         D ¦   «         ¦  «        s;|                     ¦   «         D ]&}|                     ‰¦  «        rt!          |¦  «         Œ'nßd„ |j        D ¦   «         }|                     |j        ¦  «         tA          j!        |¦  «        }‰                     d¦  «        r-|D ])Š‰j        t,          j        k    r|‰j        ‰j        z   z  }Œ*n0t5          ‰| |¦  «        }|rt          t#          ‰|¦  «        ¦  «        }t!          d "                    ˆfd„|D ¦   «         ¦  «        ¦  «         t          j
        d¦  «         dS )z:Entry Point for completion of main and subcommand options.ÚPIP_AUTO_COMPLETENÚ
COMP_WORDSÚ
COMP_CWORDé   Ú Úhelpú-)ÚshowÚ	uninstallr   )Úget_default_environmentc                ót   •— g | ]4}|j                              ‰¦  «        r|j         ‰d d…         v¯-|j         ‘Œ5S )r   N)Úcanonical_nameÚ
startswith)Ú.0ÚdistÚcwordsÚlcs     €€úNC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\cli\autocompletion.pyú
<listcomp>z autocomplete.<locals>.<listcomp>;   sY   ø€ ð ð ð àØÔ&×1Ò1°"Ñ5Ô5ðð Ô'¨v°a°b°b¬zÐ9Ð9ð Ô#ð :Ð9Ð9ó    T)Ú
local_onlyÚinstallÚpathc                ó"   •— g | ]}|‰j         f‘ŒS © )Únargs)r   Úopt_strÚopts     €r   r   z autocomplete.<locals>.<listcomp>S   s-   ø€ ð ð ð Ø-4�W˜cœiÐ(ðð ð r    c                óD   — g | ]}|                      d ¦  «        d         ‘ŒS )ú=r   )Úsplit©r   Úxs     r   r   z autocomplete.<locals>.<listcomp>X   s&   € ÐDÐDÐD¨�Q—W’W˜S‘\”\ !”_ÐDÐDÐDr    c                ó&   •— g | ]\  }}|‰v¯	||f‘ŒS r%   r%   )r   r-   ÚvÚ	prev_optss      €r   r   z autocomplete.<locals>.<listcomp>Y   s+   ø€ ÐFÐFÐF™f˜q !°1¸IÐ3EÐ3E�A�q�6Ð3EÐ3EÐ3Er    c                óH   •— g | ]\  }}|                      ‰¦  «        ¯||f‘ŒS r%   ©r   )r   Úkr/   Úcurrents      €r   r   z autocomplete.<locals>.<listcomp>[   s2   ø€ ÐGÐGÐG™d˜a °·²¸gÑ1FÔ1FÐG�A�q�6ÐGÐGÐGr    c                ó   — g | ]}|d f‘ŒS )r   r%   )r   r#   s     r   r   z autocomplete.<locals>.<listcomp>f   s   € Ð3Ð3Ð3 T˜˜a�yÐ3Ð3Ð3r    é   z--r*   c              3  ó    •K  — | ]}|‰v V — Œ	d S ©Nr%   )r   Únamer   s     €r   ú	<genexpr>zautocomplete.<locals>.<genexpr>o   s'   øè è € ÐGÐG d�4˜6�>ÐGÐGÐGÐGÐGÐGr    c                ó   — g | ]	}|j         ‘Œ
S r%   )Úoption_list)r   Úis     r   r   z autocomplete.<locals>.<listcomp>v   s   € Ð<Ð<Ð< !�”Ð<Ð<Ð<r    ú c                ó>   •— g | ]}|                      ‰¦  «        ¯|‘ŒS r%   r2   )r   r-   r4   s     €r   r   z autocomplete.<locals>.<listcomp>ƒ   s*   ø€ ÐHÐHÐH˜a°!·,²,¸wÑ2GÔ2GÐH˜ÐHÐHÐHr    )#ÚosÚenvironÚgetr+   ÚintÚ
IndexErrorr   Úlistr   ÚsysÚexitr   Úpip._internal.metadatar   ÚlowerÚiter_installed_distributionsÚprintÚauto_complete_pathsr	   ÚparserÚoption_list_allr   ÚoptparseÚSUPPRESS_HELPÚ
_long_optsÚ_short_optsÚget_path_completion_typeÚanyÚhandler_mapÚoption_groupsÚappendr<   r   Úfrom_iterableÚjoin)ÚcwordrM   ÚsubcommandsÚoptionsÚsubcommand_nameÚwordÚshould_list_installedr   ÚenvÚ	installedr   Úshould_list_installablesr#   Ú
subcommandÚcompletion_typeÚpathsÚoptionÚ	opt_labelÚhandler_nameÚoptsÚflattened_optsr4   r   r   r(   r0   s                        @@@@@r   Úautocompleterk      s8  øøøøø€ ð ¥"¤*Ð,Ð,Øˆõ Œ:�>Š>˜,Ñ'Ô'ð ­r¬z¯~ª~¸lÑ/KÔ/Kð ØˆÝŒZ˜Ô%×+Ò+Ñ-Ô-¨a¨b¨bÔ1€FÝ•”
˜<Ô(Ñ)Ô)€EðØ˜ ™Ô#ˆˆøÝð ð ð Øˆˆˆðøøøõ  Ñ!Ô!€FÝ•}Ñ%Ô%€KØ€Gð #'€OØð ð ˆØ�;ÐÐØ"ˆOØˆEð ð Ñ"à˜fÒ$Ð$ÝŒH�Q‰KŒKˆKà$+×$6Ò$6°sÑ$;Ô$;Ð ;ð !
Àð T
ð A
Ðð !ð 	ð GÐFÐFÐFÐFÐFà)Ð)Ñ+Ô+ˆCØ—’‘”ˆBðð ð ð ð à×<Ò<ÈÐ<ÑMÔMðñ ô ˆIð ð Ø%ð  ð  �DÝ˜$‘K”K�K�KÝ”˜‘”�ð ×"Ò" 3Ñ'Ô'Ð'ÐH¨O¸yÒ,Hð 	!ð $ð 	Ý+¨G°VÑ<Ô<ð ð �Ý�d‘”��ÝŒH�Q‰KŒKˆKå# OÑ4Ô4ˆ
àÔ$Ô4ð 	ð 	ˆCØŒx�8Ô1Ò1Ð1Øð ð ð ð Ø8;¼ÈÌÑ8Xðñ ô ñ �øð
 EÐD¨f°Q¸À¹°]Ô.CÐDÑDÔDˆ	ØFÐFÐFÐF¨ÐFÑFÔFˆàGÐGÐGÐG gÐGÑGÔGˆå2ØØØÔÔ-ñ
ô 
ˆð ð 	4Ý'¨°ÑAÔAˆEØ3Ð3¨UÐ3Ñ3Ô3ˆGØð 	ð 	ˆFØ˜qœ	ˆIà�aŒyð !˜V AœY r¨ rœ]¨dÒ2Ð2Ø˜SÑ �	Ý�)ÑÔÐÐõ ÐGÐGÐGÐG¨j×.DÒ.DÑ.FÔ.FÐGÑGÔGÑGÔGð 	(Ø *× 6Ò 6Ñ 8Ô 8ð (ð (�Ø×*Ò*¨7Ñ3Ô3ð (Ý˜,Ñ'Ô'Ð'øøð =Ð< vÔ';Ð<Ñ<Ô<ˆØ�Š�FÔ&Ñ'Ô'Ð'ÝÔ,¨TÑ2Ô2ˆØ×Ò˜cÑ"Ô"ð 	RØ%ð Dð D�Ø”8�xÔ5Ò5Ð5Ø 3¤>°C´OÑ#CÑC�KøðDõ
 7°v¸uÀnÑUÔUˆOØð RÝ"Õ#6°wÀÑ#PÔ#PÑQÔQ�åˆc�hŠhÐHÐHÐHÐH ;ÐHÑHÔHÑIÔIÑJÔJÐJÝ„HˆQ�K„K€K€K€Ks   Â"B. Â.B=Â<B=r   ú	list[str]rZ   rC   ri   úIterable[Any]ú
str | Nonec                ó¨  — |dk     s| |dz
                                 d¦  «        sdS |D ]¨}|j        t          j        k    rŒt	          |¦  «                             d¦  «        D ]m}| |dz
                                d¦  «        d         |k    rC|j        r1t          d„ |j                             d¦  «        D ¦   «         ¦  «        r|j        c c S ŒnŒ©dS )aL  Get 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)
    r6   r   Nú/r*   r   c              3  ó   K  — | ]}|d v V — Œ	dS ))r#   ÚfileÚdirNr%   r,   s     r   r:   z+get_path_completion_type.<locals>.<genexpr>˜   s9   è è € ð *ð *Ø56�AÐ0Ð0ð*ð *ð *ð *ð *ð *r    )r   r   rO   rP   Ústrr+   ÚmetavarrT   )r   rZ   ri   r(   Úos        r   rS   rS   ‡   s  € ð ˆq‚y€y˜˜u q™yÔ)×4Ò4°SÑ9Ô9€yØˆtØð 'ð 'ˆØŒ8•xÔ-Ò-Ð-ØÝ�S‘”—’ Ñ$Ô$ð 	'ð 	'ˆAØ�e˜a‘iÔ ×&Ò& sÑ+Ô+¨AÔ.°!Ò3Ð3Ø”{ð '¥cð *ð *Ø:=¼+×:KÒ:KÈCÑ:PÔ:Pð*ñ *ô *ñ 'ô 'ð 'ð œ;Ð&Ð&Ð&Ð&Ð&øð	'ð ˆ4r    r4   rt   rd   úIterable[str]c              #  óè  ‡K  — t           j                             | ¦  «        \  }Št           j                             |¦  «        }t          j        |t           j        ¦  «        sdS t           j                             ‰¦  «        Šˆfd„t          j        |¦  «        D ¦   «         }|D ]Ê}t           j                             ||¦  «        }t           j                             t           j                             ||¦  «        ¦  «        }|dk    r$t           j         	                    |¦  «        r|V — Œ‰t           j         
                    |¦  «        r"t           j                             |d¦  «        V — ŒËdS )at  If ``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
    Nc              3  ó€   •K  — | ]8}t           j                             |¦  «                             ‰¦  «        ¯4|V — Œ9d S r8   )r@   r#   Únormcaser   )r   r-   Úfilenames     €r   r:   z&auto_complete_paths.<locals>.<genexpr>¯   sZ   øè è € ð ð Ø­r¬w×/?Ò/?ÀÑ/BÔ/B×/MÒ/MÈhÑ/WÔ/WðØ	ðð ð ð ð ð r    rs   r   )r@   r#   r+   ÚabspathÚaccessÚR_OKrz   ÚlistdirrY   ÚisfileÚisdir)	r4   rd   Ú	directoryÚcurrent_pathÚ	file_listÚfr(   Ú	comp_filer{   s	           @r   rL   rL   Ÿ   sI  øè è € õ œ'Ÿ-š-¨Ñ0Ô0Ñ€IˆxÝ”7—?’? 9Ñ-Ô-€LåŒ9�\¥2¤7Ñ+Ô+ð ØˆÝŒw×Ò Ñ)Ô)€Hðð ð ð Ý”:˜lÑ+Ô+ðñ ô €Ið ð 	.ð 	.ˆÝŒg�lŠl˜<¨Ñ+Ô+ˆÝ”G×$Ò$¥R¤W§\¢\°)¸QÑ%?Ô%?Ñ@Ô@ˆ	ð ˜eÒ#Ð#­¬¯ª°sÑ(;Ô(;Ð#ØˆOˆOˆOˆOÝŒW�]Š]˜3ÑÔð 	.Ý”'—,’,˜y¨"Ñ-Ô-Ð-Ð-Ð-øð	.ð 	.r    )r
   r   )r   rl   rZ   rC   ri   rm   r
   rn   )r4   rt   rd   rt   r
   rw   )Ú__doc__Ú
__future__r   rO   r@   rF   Úcollections.abcr   Ú	itertoolsr   Útypingr   Úpip._internal.cli.main_parserr   Úpip._internal.commandsr   r	   rk   rS   rL   r%   r    r   ú<module>rŽ      sã   ðØ GÐ Gà "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ðtð tð tð tðnð ð ð ð0.ð .ð .ð .ð .ð .r    