Ë
    »ÿæi  ã                  ó    — 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y)zALogic that powers autocompletion installed by ``pip completion``.é    )ÚannotationsN)ÚIterable)Úchain)ÚAny)Úcreate_main_parser)Úcommands_dictÚcreate_command)Úget_default_environmentc            
     óÂ	  ‡— dt         j                  vryt         j                  j                  d«      rt         j                  j                  d«      syt         j                  d   j                  «       dd Št	        t         j                  d   «      } 	 ‰| dz
     }t        «       }t        t        «      }g }d}‰D ]
  }||v sŒ|} n |��¿|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Œ!||j0                  |j2                  z   D �cg c]  }||j4                  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‘Œ }}}t7        ‰| |j&                  j(                  «      }|rt#        ||«      }|D �cg c]  }|df‘Œ }}|D ]'  }|d   }|d   r|d   dd dk(  r|dz  }t!        |«       Œ) t9        ˆfd„|j;                  «       D «       «      �s8|j;                  «       D ]  }|j                  |«      sŒt!        |«       Œ! �n|j<                  D �cg c]  }|j>                  ‘Œ }}|jA                  |j>                  «       tC        jD                  |«      }|j                  d«      rB|D ]<  }|j*                  t,        j.                  k7  sŒ!||j0                  |j2                  z   z  }Œ> n$t7        ‰| |«      }|rt        t#        ||«      «      }t!        djG                  |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--c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©N© )Ú.0ÚnameÚcwordss     €úu/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.pyÚ	<genexpr>zautocomplete.<locals>.<genexpr>l   s   øè ø€ ÐGÑ.F d�4˜6”>Ñ.Fùs   ƒÚ )$ÚosÚenvironÚgetÚ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ÚanyÚhandler_mapÚoption_groupsÚoption_listÚappendr   Úfrom_iterableÚjoin)ÚcwordÚcurrentr2   Ú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Úhandler_nameÚiÚoptsÚflattened_optsr   s                                @r    Úautocompleter\      sŸ  ø€ ð ¤"§*¡*Ñ,Øô �:‰:�>‰>˜,Ô'¬r¯z©z¯~©~¸lÔ/KØÜ�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óáM�DØ×&Ñ&×1Ñ1°"Ô5Ø×'Ñ'¨v°a°b¨zÑ9ð ×#Ó#ØMð ð ñ Û%�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óÙ8X¨W�W˜cŸi™iÒ(Ð8Xññ ‘ð 5ð /5°Q¸À¹Ñ.CÓDÑ.C¨�Q—W‘W˜S“\ !“_Ð.Cˆ	ÐDÙ(/ÔF©™f˜q !°1¸IÒ3E�A�q’6¨ˆÑFá&-ÔG¡g™d˜a °·±¸gÕ1F�A�q’6 gˆÑGä2ØØØ×Ñ×-Ñ-ó
ˆñ Ü'¨°ÓAˆEÙ-2Ó3©U T˜˜a’y¨UˆGÐ3ÛˆFØ˜q™	ˆIà�aŠy˜V A™Y r¨˜]¨dÒ2Ø˜SÑ �	Ü�)Õð ô ÓG¨j×.DÑ.DÔ.FÓGÕGØ *× 6Ñ 6Ö 8�Ø×*Ñ*¨7Õ3Ü˜,Õ'ò !9ð (.×';Ò';Ó<Ñ'; !�—“Ð';ˆÐ<Ø�‰�F×&Ñ&Ô'Ü×,Ñ,¨TÓ2ˆØ×Ñ˜cÔ"Û%�Ø—8‘8œx×5Ñ5Ó5Ø 3§>¡>°C·O±OÑ#CÑC‘Kñ &ô
 7°v¸uÀnÓUˆOÙÜ"Ô#6°wÀÓ#PÓQ�äˆc�h‰h¡;ÓH¡;˜a°!·,±,¸wÕ2Gš ;ÑHÓIÔJÜ‡H�HˆQ…KøôG ò Ø‹ðüò4ùò0ùò
 EùÛFùãGùò 4ùò  =ùò IsT   ÂR% Ä.?R7ÉR<É(SÊ
SÊSÊ%SÊ?SË;SÎSÑ)SÒ SÒ%R4Ò3R4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ÚdirNr   )r   rP   s     r    r!   z+get_path_completion_type.<locals>.<genexpr>•   s   è ø€ ð *Ù:P°Q�AÐ0Ô0Ñ:Pùs   ‚)r,   r   r4   r5   Ústrr&   Úmetavarr:   )r   rA   rZ   rN   Úos        r    r9   r9   „   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ó*õ 'ð Ÿ;™;Ô&ñ %ð ð ó    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r   )r#   r   Únormcaser,   )r   rP   Úfilenames     €r    r!   z&auto_complete_paths.<locals>.<genexpr>¬   s2   øè ø€ ð Ù+ˆa¬r¯w©w×/?Ñ/?ÀÓ/B×/MÑ/MÈhÕ/WŒÑ+ùs   ƒ3>·>ra   r   )r#   r   r&   ÚabspathÚaccessÚR_OKrh   Úlistdirr@   ÚisfileÚisdir)	rB   rT   Ú	directoryÚcurrent_pathÚ	file_listÚfrN   Ú	comp_fileri   s	           @r    r1   r1   œ   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)ÚreturnÚNone)r   z	list[str]rA   r'   rZ   zIterable[Any]ru   z
str | None)rB   rb   rT   rb   ru   zIterable[str])Ú__doc__Ú
__future__r   r4   r#   r*   Úcollections.abcr   Ú	itertoolsr   Útypingr   Úpip._internal.cli.main_parserr   Úpip._internal.commandsr   r	   Úpip._internal.metadatar
   r\   r9   r1   r   re   r    Ú<module>r      sW   ðÙ Gå "ã Û 	Û 
Ý $Ý Ý å <ß @Ý :ópðfØðØ!ðØ)6ðàóô0.re   