Ë
    ‹¤ëji  ã                  óˆ   — 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mZ dd„Z	 	 	 	 	 	 	 	 dd	„Zdd
„Zy)zALogic that powers autocompletion installed by ``pip completion``.é    )ÚannotationsN)ÚIterable)Úchain)Úcreate_main_parser)Úcommands_dictÚcreate_commandc            
     óÈ	  ‡— 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›d
dlm}  |«       }	|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.        j0                  k7  sŒ!||j2                  |j4                  z   D �cg c]  }||j6                  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‘Œ }}}t9        ‰| |j(                  j*                  «      }|rt%        ||«      }|D �cg c]  }|d
f‘Œ }}|D ]'  }|d
   }|d   r|d
   dd dk(  r|dz  }t#        |«       Œ) t;        ˆfd„|j=                  «       D «       «      �s8|j=                  «       D ]  }|j                  |«      sŒt#        |«       Œ! �n|j>                  D �cg c]  }|j@                  ‘Œ }}|jC                  |j@                  «       tE        jF                  |«      }|j                  d«      rB|D ]<  }|j,                  t.        j0                  k7  sŒ!||j2                  |j4                  z   z  }Œ> n$t9        ‰| |«      }|rt        t%        ||«      «      }t#        djI                  |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Ú	uninstallr   )Úget_default_environmentT)Ú
local_onlyÚinstallÚpathú=é   z--c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©N© )Ú.0ÚnameÚcwordss     €úm/home/oem/CyberBrain26-unified/dev-env/.venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.pyú	<genexpr>zautocomplete.<locals>.<genexpr>n   s   øè ø€ ÒG d�4˜6”>ÑGùs   ƒú )%ÚosÚenvironÚgetÚsplitÚintÚ
IndexErrorr   Úlistr   ÚsysÚexitÚ
startswithÚpip._internal.metadatar   Ú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_installedr   Ú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
Ðñ !õ Gá)Ó+ˆ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Ñ �	Ü�)Õð	ô ÓG¨j×.DÑ.DÓ.FÔGÕGØ *× 6Ñ 6Ó 8ò (�Ø×*Ñ*¨7Õ3Ü˜,Õ'ò(ð (.×';Ñ';Ö< !�—“Ð<ˆÐ<Ø�‰�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øôO ò Ø‹ðüò<ùò0ùò
 EùÛFùãGùò 4ùò  =ùò IsT   ÂR( Ä1?R:ÉR?É+SÊS	ÊS	Ê(SËSË>SÎSÑ,SÒSÒ(R7Ò6R7c                óv  — |dk  ry| |dz
     j                  dd«      d   }|j                  d«      sy|D ]�  }|j                  t        j                  k(  s|j
                  €Œ-||j                  |j                  z   vrŒIt        d„ |j
                  j                  d«      D «       «      sŒu|j
                  c S  y)	aP  Get the type of path completion (``file``, ``dir``, ``path`` or None)

    :param cwords: Words from ``COMP_WORDS``, excluding the executable
    :param cword: Index from ``COMP_CWORD``, including the executable
    :param opts: The available options to check
    :return: path completion type (``file``, ``dir``, ``path`` or None)
    r   Nr   r   r   r   c              3  ó$   K  — | ]  }|d v –— Œ
 y­w))r   ÚfileÚdirNr   )r   Úparts     r   r    z+get_path_completion_type.<locals>.<genexpr>Ÿ   s   è ø€ ÒR°4ˆtÐ.Ô.ÑRùs   ‚ú/)	r%   r+   r   r4   r5   Úmetavarr6   r7   r:   )r   rA   rZ   Úprevious_optionrN   s        r   r9   r9   †   s´   € ð ˆq‚yØð ˜U Q™YÑ'×-Ñ-¨c°1Ó5°aÑ8€OØ×%Ñ% cÔ*Øàò ˆØ�8‰8”x×-Ñ-Ò-°·±Ð1DØØ #§.¡.°3·?±?Ñ"BÑBØô ÑR¸3¿;¹;×;LÑ;LÈSÓ;QÔRÕRØ—;‘;Òðð ó    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   øè ø€ ò Ø¬r¯w©w×/?Ñ/?ÀÓ/B×/MÑ/MÈhÕ/WŒñùs   ƒ3>·>r`   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[optparse.Option]ru   z
str | None)rB   ÚstrrT   rw   ru   zIterable[str])Ú__doc__Ú
__future__r   r4   r"   r)   Úcollections.abcr   Ú	itertoolsr   Úpip._internal.cli.main_parserr   Úpip._internal.commandsr   r   r\   r9   r1   r   re   r   ú<module>r~      sQ   ðÙ Gå "ã Û 	Û 
Ý $Ý å <ß @ótðnØðØ!ðØ)Bðàóô>.re   