Ë
    äØjj"  ã            	       ó¸   — 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 }|r˜t        «       }	|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                                úb/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.pyÚautocompleterT      sC  € ð ¤"§*¡*Ñ,ØÜ�Z‰Z˜Ñ%×+Ñ+Ó-¨a¨bÐ1€FÜ”—
‘
˜<Ñ(Ó)€EðØ˜ ™Ñ#ˆô  Ó!€FÜ”}Ó%€KØ€Gð &*€OØò ˆØ�;ÒØ"ˆOÙðð
 Ñ"à˜fÒ$Ü�H‰H�QŒKà$+×$6Ñ$6°sÓ$;Ð ;ò !
Àð T
ð A
Ðñ !Ü)Ó+ˆCØ—‘“ˆBð  ×<Ñ<ÈÐ<ÓMöàØ×&Ñ&×1Ñ1°"Ô5Ø×'Ñ'¨v°a°b¨zÑ9ð ×#Ó#ðˆIð ñ Ø%ò  �DÜ˜$•Kð ä—‘˜”ð ×"Ñ" 3Ó'Ð'ÒH¨O¸yÑ,Hð 	!ñ $Ü+¨G°VÓ<ò �Ü�d•ðä�H‰H�QŒKä# OÓ4ˆ
à×$Ñ$×4Ñ4ò 	ˆCØ�x‰xœ8×1Ñ1Ó1ØØ8;¿¹ÈÏÉÑ8XöØ-4�W˜cŸi™iÒ(òñ ‘ð	ð /5°Q¸À¹Ð.CÖD¨�Q—W‘W˜S“\ !“_ÐDˆ	ÐDØ(/×F™f˜q !°1¸IÒ3E�A�q’6ÐFˆÑFà&-×G™d˜a °·±¸gÕ1F�A�q’6ÐGˆÑGä2ØØØ×Ñ×-Ñ-ó
ˆñ Ü'¨°ÓAˆEØ-2Ö3 T˜˜a’yÐ3ˆGÐ3Øò 	ˆFØ˜q™	ˆIà�aŠy˜V A™Y r¨˜]¨dÒ2Ø˜SÑ �	Ü�)Õò	ð (.×';Ñ';Ö< !�—“Ð<ˆÐ<Ø�‰�F×&Ñ&Ô'Ü×,Ñ,¨TÓ2ˆØ×Ñ˜cÔ"Ø%ò D�Ø—8‘8œx×5Ñ5Ó5Ø 3§>¡>°C·O±OÑ#CÑC‘KñDô
 7°v¸uÀnÓUˆOÙÜ"Ô#6°wÀÓ#PÓQ�äˆc�h‰h ;ÖH˜a°!·,±,¸wÕ2GšÒHÓIÔJÜ‡H�HˆQ…Køô{ ò Ø‹ðüò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   è ø€ ò *Ø56�AÐ0Ô0ñ*ùs   ‚)r%   r   r-   r.   Ústrr   ÚmetavarÚany)r8   r9   rQ   rF   Úos        rS   r2   r2   x   sÀ   € ð ˆq‚y˜˜u q™yÑ)×4Ñ4°SÔ9ØØò 'ˆØ�8‰8”x×-Ñ-Ò-ØÜ�S“—‘ Ó$ò 	'ˆAØ�e˜a‘iÑ ×&Ñ& sÓ+¨AÑ.°!Ó3Ø—{’{¤cñ *Ø:=¿+¹+×:KÑ:KÈCÓ: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   øè ø€ ò Ø¬r¯w©w×/?Ñ/?ÀÓ/B×/MÑ/MÈhÕ/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Ñ€IˆxÜ—7‘7—?‘? 9Ó-€Lä�9‰9�\¤2§7¡7Ô+ØÜ�w‰w×Ñ Ó)€HóÜ—:‘:˜lÓ+ô€Ið ò 	.ˆÜ�g‰g�l‰l˜<¨Ó+ˆÜ—G‘G×$Ñ$¤R§W¡W§\¡\°)¸QÓ%?Ó@ˆ	ð ˜eÒ#¬¯©¯©°sÔ(;Ø‹OÜ�W‰W�]‰]˜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   