
    Wh                        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	l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)get_default_environment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 }|rot                      }                                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             }t3          | |j        j                  }|rt!          |          }d |D             }|D ]:}|d         }|d         r|d         dd         dk    r|dz  }t          |           ;t5          fd|                                D                       s;|                                D ]&}|                              rt          |           'nd |j        D             }|                    |j                   t?          j         |          }                    d          r-|D ])j        t*          j        k    r|j        j        z   z  }*n0t3          | |          }|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	uninstallc                t    g | ]4}|j                                       r|j         d d         v-|j         5S )r   N)canonical_name
startswith).0distcwordslcs     r/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/pip/_internal/cli/autocompletion.py
<listcomp>z autocomplete.<locals>.<listcomp>8   sY       &11"55 'vabbz99 # :99    T)
local_onlyinstallpathc                "    g | ]}|j         fS  )nargs)r   opt_stropts     r   r   z autocomplete.<locals>.<listcomp>P   s-       -4Wci(  r    c                D    g | ]}|                     d           d         S )=r   )splitr   xs     r   r   z autocomplete.<locals>.<listcomp>U   s&    DDDQWWS\\!_DDDr    c                &    g | ]\  }}|v	||fS r%   r%   )r   r-   v	prev_optss      r   r   z autocomplete.<locals>.<listcomp>V   s+    FFFfq!1I3E3EAq63E3E3Er    c                H    g | ]\  }}|                               ||fS r%   r   )r   kr/   currents      r   r   z autocomplete.<locals>.<listcomp>X   s2    GGGdag1F1FGAq6GGGr    c                    g | ]}|d fS )r   r%   )r   r#   s     r   r   z autocomplete.<locals>.<listcomp>c   s    333Tay333r    r      z--r*   c              3      K   | ]}|v V  	d S Nr%   )r   namer   s     r   	<genexpr>zautocomplete.<locals>.<genexpr>l   s'      GGd46>GGGGGGr    c                    g | ]	}|j         
S r%   )option_list)r   is     r   r   z autocomplete.<locals>.<listcomp>s   s    <<<!<<<r     c                >    g | ]}|                               |S r%   r2   )r   r-   r4   s     r   r   z autocomplete.<locals>.<listcomp>   s*    HHHa!,,w2G2GHHHHr    )"osenvirongetr+   int
IndexErrorr   listr   sysexitr   r
   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)cwordrL   subcommandsoptionssubcommand_namewordshould_list_installedenv	installedr   should_list_installablesr#   
subcommandcompletion_typepathsoption	opt_labelhandler_nameoptsflattened_optsr4   r   r   r(   r0   s                       @@@@@r   autocompleterj      s     "*,, :>>,'' rz~~l/K/K Z%++--abb1F
<())E#     !!F}%%KG #'O  ;"OE  "f$$HQKKK$+$6$6s$;$; ; !
 T
 A
 ! 	)++CB    <<<MM  I  %    D$KKKK ""3'''HOy,H 	! $ 	+GV<<  dHQKKK#O44
$4 	 	Cx8111    8;8X   
 EDfQ].CDDD	FFFFFFFGGGGgGGG2-
 
  	4'AAE33U333G 	 	Fq	Iay !VAYrr]d22S 	) GGGGj.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8x5553>CO#CCKD
 7vunUUO R"#6w#P#PQQchhHHHH;HHHIIJJJHQKKKKKs   "B. .B=<B=r   	list[str]rY   rC   rh   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 nd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       * *56A00* * * * * *r    )r   r   rN   rO   strr+   metavarrS   )r   rY   rh   r(   os        r   rR   rR      s    qyyuqy)44S99yt ' '8x---S$$ 	' 	'Aeai &&s++A.!33{ 'c * *:=+:K:KC:P:P* * * ' ' ' ;&&&&&	' 4r    r4   rs   rc   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        rw/?/?/B/B/M/Mh/W/W	     r    rr   r   )r@   r#   r+   abspathaccessR_OKry   listdirrX   isfileisdir)	r4   rc   	directorycurrent_path	file_listfr(   	comp_filerz   s	           @r   rK   rK      sI      '--00Ix7??9--L9\27++ w))H   :l++  I  	. 	.gll<++G$$RW\\)Q%?%?@@	 e##s(;(;#OOOOW]]3 	.',,y"-----	. 	.r    )r   r   )r   rk   rY   rC   rh   rl   r   rm   )r4   rs   rc   rs   r   rv   )__doc__
__future__r   rN   r@   rF   collections.abcr   	itertoolsr   typingr   pip._internal.cli.main_parserr   pip._internal.commandsr   r	   pip._internal.metadatar
   rj   rR   rK   r%   r    r   <module>r      s    G G " " " " " "  				 



 $ $ $ $ $ $             < < < < < < @ @ @ @ @ @ @ @ : : : : : :p p p pf   0. . . . . .r    