
    eg"              	           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y)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yt         j                  d   j                         dd } t        t         j                  d         }	 | |dz
     }t               }t        t              }g }d}| D ]
  }||v s|} n |j|dk(  rt        j                  d       |j                  d       xr |d	v }|rt               }	|j                         }
|	j                  d
      D cg c]:  }|j                  j                  |
      r|j                  | dd vr|j                  < }}|r'|D ]  }t        |        t        j                  d       |j                  d       xr |dk(  }|r1t!        |d      D ]  }t        |        t        j                  d       t#        |      }|j$                  j&                  D ]V  }|j(                  t*        j,                  k7  s!||j.                  |j0                  z   D cg c]  }||j2                  f c}z  }X | d|dz
   D cg c]  }|j                  d      d    }}|D cg c]  \  }}||vs||f }}}|D cg c]  \  }}|j                  |      s||f }}}t5        | ||j$                  j&                        }|rt!        ||      }|D cg c]  }|df }}|D ]'  }|d   }|d   r|d   dd dk(  r|dz  }t        |       ) n|j6                  D cg c]  }|j8                   }}|j;                  |j8                         t=        j>                  |      }|j                  d      rB|D ]<  }|j(                  t*        j,                  k7  s!||j.                  |j0                  z   z  }> n$t5        | ||      }|rt        t!        ||            }t        djA                  |D cg c]  }|j                  |      s| c}             t        j                  d       y# t        $ r d}Y w xY wc c}w c c}w c c}w c c}}w c c}}w c c}w c c}w c c}w )z:Entry Point for completion of main and subcommand options.PIP_AUTO_COMPLETEN
COMP_WORDS   
COMP_CWORD help-)show	uninstallT)
local_onlyinstallpath=r      z-- )!osenvironsplitint
IndexErrorr   listr	   sysexit
startswithr   loweriter_installed_distributionscanonical_nameprintauto_complete_pathsr
   parseroption_list_allr   optparseSUPPRESS_HELP
_long_opts_short_optsnargsget_path_completion_typeoption_groupsoption_listappendr   from_iterablejoin)cwordscwordcurrentr+   subcommandsoptionssubcommand_namewordshould_list_installedenvlcdist	installedshould_list_installablesr   
subcommandoptopt_strx	prev_optsvkcompletion_typepathsoption	opt_labelioptsflattened_optss                                }/var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.pyautocompleterT      sC    "**,ZZ%++-ab1F

<()E#  !F}%KG &*O ;"O
 "f$HHQK$+$6$6s$; ; !
 T
 A
 !)+CB  <<<M&&11"5''vabz9 ##I  %  D$K  ""3''HOy,H 	! $+GV< dHHQK#O4
$$44 	Cxx81118;8X-4Wcii( 	 /5Q.CDQWWS\!_D	D(/Ffq!1I3EAq6FF&-Gdag1FAq6GG2--
 'AE-23Tay3G3 	Fq	IayVAYr]d2S 	)	 (.';';<!<<F&&',,T2c"% D88x5553>>COO#CCKD
 7vunUO"#6w#PQchh;Ha!,,w2GHIJHHQK{  40
 EFG 4 = IsT   P .?P"P'(P,
P1P1%P7?P7;P=QQ+QPPr8   r9   rQ   c                    |dk  s| |dz
     j                  d      sy|D ]  }|j                  t        j                  k(  r!t	        |      j                  d      D ]g  }| |dz
     j                  d      d   |k(  s!|j                  r,t        d |j                  j                  d      D              sY|j                  c c S   y)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)
    r   r   N/r   r   c              3   $   K   | ]  }|d v  
 yw))r   filedirN ).0rH   s     rS   	<genexpr>z+get_path_completion_type.<locals>.<genexpr>   s      *56A00*s   )r%   r   r-   r.   strr   metavarany)r8   r9   rQ   rF   os        rS   r2   r2   x   s     qyuqy)44S9 '88x---S$ 	'Aeai &&s+A.!3{{c *:=++:K:KC:P* ' ;;&	''     r:   rL   c              #     K   t         j                  j                  |       \  }t         j                  j                  |      }t        j                  |t         j
                        syt         j                  j                        fdt        j                  |      D        }|D ]  }t         j                  j                  ||      }t         j                  j                  t         j                  j                  ||            }|dk7  r$t         j                  j                  |      r| t         j                  j                  |      st         j                  j                  |d        yw)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   | ]5  }t         j                  j                  |      j                        s2| 7 y w)N)r   r   normcaser%   )r[   rH   filenames     rS   r\   z&auto_complete_paths.<locals>.<genexpr>   s2      rww/?/?/B/M/Mh/Ws   3>>rY   r   )r   r   r   abspathaccessR_OKrd   listdirr7   isfileisdir)	r:   rL   	directorycurrent_path	file_listfrF   	comp_filere   s	           @rS   r*   r*      s      ''--0Ix77??9-L99\277+ww)H::l+I  	.ggll<+GG$$RWW\\)Q%?@	 e#s(;OWW]]3'',,y"--	.s   EE7%E7)r   N)__doc__r-   r   r#   	itertoolsr   typingr   r   r   r   pip._internal.cli.main_parserr   pip._internal.commandsr	   r
   pip._internal.metadatar   rT   r]   r    r2   r*   rZ   ra   rS   <module>rw      s}     	 
  0 0 < @ :fRI!)1#c]0. .s .x} .ra   