
    жvg              	           d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ dd	Zd
e	e         dedee         de
e         fdZdededee         fdZdS )zBLogic that powers autocompletion installed by ``pip completion``.
    N)chain)AnyIterableListOptional)create_main_parser)commands_dictcreate_command)get_default_environmentreturnc                     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          |           ;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     ]/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/cli/autocompletion.py
<listcomp>z autocomplete.<locals>.<listcomp>6   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>N   s-       -4Wci(  r    c                 D    g | ]}|                     d           d         S )=r   )splitr   xs     r   r   z autocomplete.<locals>.<listcomp>S   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>T   s+    FFFfq!1I3E3EAq63E3E3Er    c                 H    g | ]\  }}|                               ||fS r%   r   )r   kr/   currents      r   r   z autocomplete.<locals>.<listcomp>V   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>a   s    333Tay333r    r      z--r*   c                     g | ]	}|j         
S r%   )option_list)r   is     r   r   z autocomplete.<locals>.<listcomp>k   s    <<<!<<<r     c                 >    g | ]}|                               |S r%   r2   )r   r-   r4   s     r   r   z autocomplete.<locals>.<listcomp>x   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option_groupsappendr8   r   from_iterablejoin)cwordrH   subcommandsoptionssubcommand_namewordshould_list_installedenv	installedr   should_list_installablesr#   
subcommandcompletion_typepathsoption	opt_labeloptsflattened_optsr4   r   r   r(   r0   s                      @@@@@r   autocompleterc      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 	)	 =<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   rS   ra   c                    |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   	<genexpr>z+get_path_completion_type.<locals>.<genexpr>   s9       * *56A00* * * * * *r    )r   r   rJ   rK   strr+   metavarany)r   rS   ra   r(   os        r   rN   rN   |   s    qyyuqy)44S99yt ' '8x---S$$ 	' 	'Aeai &&s++A.!33{ 'c * *:=+:K:KC:P:P* * * ' ' ' ;&&&&&	' 4r    r4   r]   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 )N)r<   r#   normcaser   )r   r-   filenames     r   ri   z&auto_complete_paths.<locals>.<genexpr>   sZ        rw/?/?/B/B/M/Mh/W/W	     r    rh   r   )r<   r#   r+   abspathaccessR_OKrp   listdirrR   isfileisdir)	r4   r]   	directorycurrent_path	file_listfr(   	comp_filerq   s	           @r   rG   rG      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   N)__doc__rJ   r<   rB   	itertoolsr   typingr   r   r   r   pip._internal.cli.main_parserr   pip._internal.commandsr	   r
   pip._internal.metadatar   rc   rj   r?   rN   rG   r%   r    r   <module>r      s.     				 



       0 0 0 0 0 0 0 0 0 0 0 0 < < < < < < @ @ @ @ @ @ @ @ : : : : : :j j j jZI!)1#c]   0. .s .x} . . . . . .r    